aboutsummaryrefslogtreecommitdiffstats
path: root/packages/pipeline/test/parsers/utils/index_test.ts
blob: 5a0d0f1823014554a81f45ca4762b8f74a733d9c (plain) (blame)
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
import { BigNumber } from '@0x/utils';
import * as chai from 'chai';
import 'mocha';

import { aggregateOrders, GenericRawOrder } from '../../../src/parsers/utils';
import { chaiSetup } from '../../utils/chai_setup';

chaiSetup.configure();
const expect = chai.expect;

// tslint:disable:custom-no-magic-numbers
describe('aggregateOrders', () => {
    it('aggregates order by price point', () => {
        const input = [
            { price: '1', amount: '20', orderHash: 'testtest', total: '20' },
            { price: '1', amount: '30', orderHash: 'testone', total: '30' },
            { price: '2', amount: '100', orderHash: 'testtwo', total: '200' },
        ];
        const expected = [['1', new BigNumber(50)], ['2', new BigNumber(100)]];
        const actual = aggregateOrders(input);
        expect(actual).deep.equal(expected);
    });

    it('handles empty orders gracefully', () => {
        const input: GenericRawOrder[] = [];
        const expected: Array<[string, BigNumber]> = [];
        const actual = aggregateOrders(input);
        expect(actual).deep.equal(expected);
    });
});