test(accumulate): add test suite for accumulate function (#15159)

* refactor(typo): remove typo 'be'

* test(accumulate): add test suite for accumulate function
This commit is contained in:
Jeffrey Berry
2019-04-25 12:12:25 +01:00
committed by Christoph Nakazawa
parent a187e9b5e4
commit d61da93878
2 changed files with 50 additions and 1 deletions
@@ -0,0 +1,49 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @emails react-core
*/
'use strict';
let accumulate;
describe('accumulate', () => {
beforeEach(() => {
accumulate = require('events/accumulate').default;
});
it('throws if the second item is null', () => {
expect(function() {
accumulate([], null);
}).toThrowError(
'accumulate(...): Accumulated items must not be null or undefined.',
);
});
it('return second item if first item is null', () => {
const a = [];
expect(accumulate(null, a)).toBe(a);
});
it('return concatenation of items if first item is an array', () => {
const a = ['hello'];
const b = 'world';
expect(accumulate(a, b)).toEqual(['hello', 'world']);
});
it('return concatenation of items if second item is an array', () => {
const a = 'hello';
const b = ['world'];
expect(accumulate(a, b)).toEqual(['hello', 'world']);
});
it('return an array containing both items if neither item is an array', () => {
const a = 'hello';
const b = 'world';
expect(accumulate(a, b)).toEqual(['hello', 'world']);
});
});
+1 -1
View File
@@ -22,7 +22,7 @@ function accumulate<T>(
): T | Array<T> {
invariant(
next != null,
'accumulate(...): Accumulated items must be not be null or undefined.',
'accumulate(...): Accumulated items must not be null or undefined.',
);
if (current == null) {