๐Ÿ“ฆ Kong / httpsnippet

๐Ÿ“„ reducer.test.ts ยท 28 lines
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
28import { reducer } from './reducer';

describe('reducer', () => {
  it('should convert array object pair to key-value object', () => {
    const query = [
      { name: 'key', value: 'value' },
      { name: 'foo', value: 'bar' },
    ];

    const result = query.reduce(reducer, {});

    expect(result).toMatchObject({ key: 'value', foo: 'bar' });
  });

  it('should convert multi-dimensional arrays to key=[array] object', () => {
    const query = [
      { name: 'key', value: 'value' },
      { name: 'foo', value: 'bar1' },
      { name: 'foo', value: 'bar2' },
      { name: 'foo', value: 'bar3' },
    ];

    const result = query.reduce(reducer, {});

    expect(result).toMatchObject({ key: 'value', foo: ['bar1', 'bar2', 'bar3'] });
  });
});