Learn TDD With Mocha

Red to Green II

Now that we have tests that cover more than one condition, it is time to program the actual behavior that we want our .initials method to execute.

Let's think about the current state of Phrase.initials(). We have one passing test and one failing test that raises the following error when you run the test suite:

1) Phrase .initials should return the first letter of each word in a phrase:

1) AssertionError: 'JMS' == 'NM'
+ expected - actual
   - 'NM'
   + 'JMS'

This is not surprising, considering our current implementation always returns 'NM.'

To write a more complete implementation, that could get us back into the green, we could write something like this:

const Phrase = {
  initials(inputName) {
    // Create an empty array for initials
    const initials = [];
    // Create an array of strings 
    const words = inputName.split(" ");
    // Iterate through the array of strings and push the first character of each to array
    words.forEach((word) => {
    // Return the initials as one string
    return initials.join("");

This implementation will successfully pass the tests we have written. Each additional test pushes us to build a complete implementation of the .initials method.

Community Forums
Get help and ask questions in the Codecademy Forums
Report a Bug
If you see a bug or any other issue with this page, please report it here.