Welcome to mirror list, hosted at ThFree Co, Russian Federation.

graphql_helpers_spec.js « __helpers__ « frontend « spec - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: dd23fbbf4e99020f3edc9ce355029d3327e98135 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import { stripTypenames } from './graphql_helpers';

describe('stripTypenames', () => {
  it.each`
    input                                                  | expected
    ${{}}                                                  | ${{}}
    ${{ __typename: 'Foo' }}                               | ${{}}
    ${{ bar: 'bar', __typename: 'Foo' }}                   | ${{ bar: 'bar' }}
    ${{ bar: { __typename: 'Bar' }, __typename: 'Foo' }}   | ${{ bar: {} }}
    ${{ bar: [{ __typename: 'Bar' }], __typename: 'Foo' }} | ${{ bar: [{}] }}
    ${[]}                                                  | ${[]}
    ${[{ __typename: 'Foo' }]}                             | ${[{}]}
    ${[{ bar: [{ a: 1, __typename: 'Bar' }] }]}            | ${[{ bar: [{ a: 1 }] }]}
  `('given $input returns $expected, with all __typename keys removed', ({ input, expected }) => {
    const actual = stripTypenames(input);
    expect(actual).toEqual(expected);
    expect(input).not.toBe(actual);
  });

  it('given null returns null', () => {
    expect(stripTypenames(null)).toEqual(null);
  });
});