55 lines
1.8 KiB
JavaScript
55 lines
1.8 KiB
JavaScript
import { getLineItemsFlattened } from '@/helpers/line-items-helper';
|
|
|
|
describe('getLineItemsFlattened', () => {
|
|
describe('getLineItemsFlattened', () => {
|
|
it('Returns empty array when null is passed', () => {
|
|
// Arrange
|
|
const lineItems = null;
|
|
// Act
|
|
const result = getLineItemsFlattened(lineItems);
|
|
|
|
// Assert
|
|
expect(result).not.toBeNull();
|
|
expect(result).toStrictEqual([]);
|
|
});
|
|
|
|
it('Returns empty array when empty array is passed', () => {
|
|
// Arrange
|
|
const lineItems = [];
|
|
// Act
|
|
const result = getLineItemsFlattened(lineItems);
|
|
|
|
// Assert
|
|
expect(result).not.toBeNull();
|
|
expect(result).toStrictEqual([]);
|
|
});
|
|
|
|
it('Returns line items as flat array without child parts', () => {
|
|
// Arrange
|
|
const lineItems = [{ partType: 'a' }, { partType: 'b' }, { partType: 'c' }];
|
|
// Act
|
|
const result = getLineItemsFlattened(lineItems);
|
|
|
|
// Assert
|
|
expect(result).not.toBeNull();
|
|
expect(result).toStrictEqual(lineItems);
|
|
});
|
|
|
|
it('Returns line items as flat array with child parts', () => {
|
|
// Arrange
|
|
const a = { partType: 'a' };
|
|
const c = { partType: 'c' };
|
|
const d = { partType: 'd' };
|
|
const b = { partType: 'b', childParts: [c, d] };
|
|
const e = { partType: 'e', childParts: null };
|
|
|
|
const lineItems = [a, b, e];
|
|
// Act
|
|
const result = getLineItemsFlattened(lineItems);
|
|
|
|
// Assert
|
|
expect(result).not.toBeNull();
|
|
expect(result).toStrictEqual([a, b, c, d, e]);
|
|
});
|
|
});
|
|
});
|