All files / branch optional-chaining.js

100% Statements 7/7
100% Branches 0/0
100% Functions 2/2
100% Lines 7/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35              1x                         1x     1x     1x   1x     1x 1x    
/**
 * Currently, The `Optional chaining` will be counted as:
 * ✅ bytes coverage
 * ✅ lines coverage
 * ❌ not branches coverage
 */
 
const adventurer = {
    name: 'Alice',
    cat: {
        name: 'Dinah'
    }
};
 
// obj.val?.prop
// obj.val?.[expr]
// obj.func?.(args)
 
function OptionalChaining() {
 
    console.log(adventurer.cat?.name);
 
    // Expected output: undefined
    console.log(adventurer.dog?.name);
 
    // Expected output: undefined
    console.log(adventurer.someNonExistentMethod?.());
 
    console.log(adventurer.cat?.first?.second);
}
 
module.exports = () => {
    OptionalChaining();
};