diff options
Diffstat (limited to 'spec/frontend/__helpers__/graphql_helpers_spec.js')
-rw-r--r-- | spec/frontend/__helpers__/graphql_helpers_spec.js | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/spec/frontend/__helpers__/graphql_helpers_spec.js b/spec/frontend/__helpers__/graphql_helpers_spec.js new file mode 100644 index 00000000000..dd23fbbf4e9 --- /dev/null +++ b/spec/frontend/__helpers__/graphql_helpers_spec.js @@ -0,0 +1,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); + }); +}); |