Ad
  • Custom User Avatar

    Well, in your first example, you aren't calling the functions, so the result is incorrect. (I'm not sure why you are assigning variables in the second example.)

    In your test case above, it will always fail if your code is correct. This is because you are passing false into the _if function, which will mean the second function is evaluated. However, your second function is returning false, which means the final value returned to Test.expect is false.

    // note: I labeled the functions to make it easier to see them
    Test.expect(
        _if(
            false,                // false -> means run fnFalse
            function fnTrue() {   // ignored
              return true;
            },
            function fnFalse() {  // run
              return false;       // returns false
            }
       )                          // returns result of fnFalse, which is false
       
                                  // effectively this becomes Test.expect( false )
    );
    

    This is why your test case failed, while the submission passed.

    So, why did the first attempt succeed? It's because you were returning the functions themselves, rather than their result, which looks like this:

    Test.expect(
        _if(
            false,                // false -> means run fnFalse
            function fnTrue() {   // ignored
              return true;
            },
            function fnFalse() {  // *returned*, but never run
              return false;
            }
       )                          // returns fnFalse itself, which is a Function object
       
                                  // effectively this becomes Test.expect( function(){} )
                                  // Test.expect passes if it is passed a truthy value. 
                                  // As it turns out, all Objects are truthy.
                                  // So, the end result of this becomes Test.expect( true )
    );
    

    Now that you've solved the kata, you can go back and see the other solutions from other users. Hopefully this helps you! If that all makes sense, feel free to mark this issue as resolved.

  • Custom User Avatar

    What language are you testing, and do you mind posting your code?

  • Custom User Avatar

    @matt6frey, Were you ever able to get the solution to submit?

  • Custom User Avatar

    It might be a one-off quirk. If you can, copy your solution as it is, reload the page, paste your solution back in and try again.

    Sometimes this fixes the issue for me. (Copying your solution ensures that you won't lose your work if something goes wrong.)