diff options
Diffstat (limited to 'spec/frontend/graphql_shared/utils_spec.js')
-rw-r--r-- | spec/frontend/graphql_shared/utils_spec.js | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/spec/frontend/graphql_shared/utils_spec.js b/spec/frontend/graphql_shared/utils_spec.js index bf899e47d1c..cd334ef0d97 100644 --- a/spec/frontend/graphql_shared/utils_spec.js +++ b/spec/frontend/graphql_shared/utils_spec.js @@ -5,6 +5,7 @@ import { convertToGraphQLIds, convertFromGraphQLIds, convertNodeIdsFromGraphQLIds, + getNodesOrDefault, } from '~/graphql_shared/utils'; const mockType = 'Group'; @@ -134,3 +135,28 @@ describe('convertNodeIdsFromGraphQLIds', () => { ); }); }); + +describe('getNodesOrDefault', () => { + const mockDataWithNodes = { + users: { + nodes: [ + { __typename: 'UserCore', id: 'gid://gitlab/User/44' }, + { __typename: 'UserCore', id: 'gid://gitlab/User/42' }, + { __typename: 'UserCore', id: 'gid://gitlab/User/41' }, + ], + }, + }; + + it.each` + desc | input | expected + ${'with nodes child'} | ${[mockDataWithNodes.users]} | ${mockDataWithNodes.users.nodes} + ${'with nodes child and "dne" as field'} | ${[mockDataWithNodes.users, 'dne']} | ${[]} + ${'with empty data object'} | ${[{ users: {} }]} | ${[]} + ${'with empty object'} | ${[{}]} | ${[]} + ${'with falsy value'} | ${[undefined]} | ${[]} + `('$desc', ({ input, expected }) => { + const result = getNodesOrDefault(...input); + + expect(result).toEqual(expected); + }); +}); |