describe('jasmine.NestedResults', function() { it('#addResult increments counters', function() { // Leaf case var results = new jasmine.NestedResults(); results.addResult(new jasmine.ExpectationResult({ matcherName: "foo", passed: true, message: 'Passed.', actual: 'bar', expected: 'bar'} )); expect(results.getItems().length).toEqual(1); expect(results.totalCount).toEqual(1); expect(results.passedCount).toEqual(1); expect(results.failedCount).toEqual(0); results.addResult(new jasmine.ExpectationResult({ matcherName: "baz", passed: false, message: 'FAIL.', actual: "corge", expected: "quux" })); expect(results.getItems().length).toEqual(2); expect(results.totalCount).toEqual(2); expect(results.passedCount).toEqual(1); expect(results.failedCount).toEqual(1); }); it('should roll up counts for nested results', function() { // Branch case var leafResultsOne = new jasmine.NestedResults(); leafResultsOne.addResult(new jasmine.ExpectationResult({ matcherName: "toSomething", passed: true, message: 'message', actual: '', expected:'' })); leafResultsOne.addResult(new jasmine.ExpectationResult({ matcherName: "toSomethingElse", passed: false, message: 'message', actual: 'a', expected: 'b' })); var leafResultsTwo = new jasmine.NestedResults(); leafResultsTwo.addResult(new jasmine.ExpectationResult({ matcherName: "toSomething", passed: true, message: 'message', actual: '', expected: '' })); leafResultsTwo.addResult(new jasmine.ExpectationResult({ matcherName: "toSomethineElse", passed: false, message: 'message', actual: 'c', expected: 'd' })); var branchResults = new jasmine.NestedResults(); branchResults.addResult(leafResultsOne); branchResults.addResult(leafResultsTwo); expect(branchResults.getItems().length).toEqual(2); expect(branchResults.totalCount).toEqual(4); expect(branchResults.passedCount).toEqual(2); expect(branchResults.failedCount).toEqual(2); }); });