/** * @jest-environment node */ import { id, getQueryParamString, getFilterQuery } from './utils'; import { RuntimeFilterOp } from './types'; describe('unit test for utils', () => { test('id', () => { // expect unique ids during every invocation const id1 = id(); const id2 = id(); expect(id1).not.toEqual(id2); }); test('getQueryParamString', () => { expect( getQueryParamString({ foo: 'bar', baz: '42', }), ).toBe('foo=bar&baz=42'); expect(getQueryParamString({})).toBe(null); }); test('getFilterQuery', () => { expect(getFilterQuery([])).toBe(null); expect( getFilterQuery([ { columnName: 'foo', operator: RuntimeFilterOp.NE, values: ['bar'], }, ]), ).toBe('**col1=foo&op1=NE&val1=bar**'); const filters = [ { columnName: 'foo', operator: RuntimeFilterOp.EQ, values: [42], }, { columnName: 'bar', operator: RuntimeFilterOp.BW_INC, values: [1, 10], }, { columnName: 'baz', operator: RuntimeFilterOp.CONTAINS, values: ['abc'], }, ]; expect(getFilterQuery(filters)).toBe( '**col1=foo&op1=EQ&val1=42&col2=bar&op2=BW_INC&val2=1&val2=10&col3=baz&op3=CONTAINS&val3=abc**', ); }); });