diff --git a/requests/Switcher API.postman_collection.json b/requests/Switcher API.postman_collection.json index 9765168..b9f32f7 100644 --- a/requests/Switcher API.postman_collection.json +++ b/requests/Switcher API.postman_collection.json @@ -5065,7 +5065,7 @@ "body": { "mode": "graphql", "graphql": { - "query": "{\r\n configuration(domain: \"5e4f9d8966e06b59c8254500\", key: \"TEST_SWITCH\") {\r\n # configuration(domain: \"5e4f9d8966e06b59c8254500\", configId: \"6270b2fe68bceea783c450b4\") {\r\n # configuration(domain: \"5e4f9d8966e06b59c8254500\", groupId: \"6270b2f568bceea783c45081\") {\r\n # configuration(domain: \"5e4f9d8966e06b59c8254500\", group: \"Test group\") {\r\n # configuration(domain: \"5e0ece606f4f994eac9007ae\", key: \"FEATURE01\", environment: \"default\") {\r\n domain {\r\n name\r\n activated\r\n }\r\n group {\r\n _id\r\n name\r\n activated\r\n statusByEnv {\r\n env\r\n value\r\n }\r\n }\r\n config {\r\n _id\r\n key\r\n activated\r\n }\r\n }\r\n}", + "query": "{\r\n # configuration(domain: \"62d47c7555cb4611d17b2b55\") {\r\n # configuration(domain: \"5e4f9d8966e06b59c8254500\") {\r\n # configuration(domain: \"5e4f9d8966e06b59c8254500\", config_id: \"6270b2fe68bceea783c450b4\") {\r\n # configuration(domain: \"5e4f9d8966e06b59c8254500\", group_id: \"6270b2f568bceea783c45081\") {\r\n # configuration(domain: \"5e4f9d8966e06b59c8254500\", group: \"Test group\") {\r\n configuration(domain: \"5e0ece606f4f994eac9007ae\", key: \"FEATURE01\", environment: \"default\") {\r\n domain {\r\n id: _id\r\n name\r\n owner\r\n transfer\r\n activated\r\n integrations {\r\n slack\r\n }\r\n }\r\n group {\r\n _id\r\n name\r\n activated\r\n statusByEnv {\r\n env\r\n value\r\n }\r\n }\r\n config {\r\n _id\r\n key\r\n activated\r\n }\r\n }\r\n}", "variables": "" } }, diff --git a/src/client/configuration-resolvers.js b/src/client/configuration-resolvers.js index f8f4052..4d64d9d 100644 --- a/src/client/configuration-resolvers.js +++ b/src/client/configuration-resolvers.js @@ -18,10 +18,10 @@ async function resolveConfigByConfig(domainId, key, configId) { return { config }; } - return undefined; + return []; } -async function resolveGroup(domainId, groupConfig, groupId) { +async function resolveGroupByGroup(domainId, groupConfig, groupId) { const group = await getGroupConfigs({ id: groupId, name: groupConfig, @@ -32,7 +32,7 @@ async function resolveGroup(domainId, groupConfig, groupId) { return { group }; } - return undefined; + return []; } async function resolveSlackInstallation(args) { @@ -59,11 +59,7 @@ export async function resolveConfiguration(args, context) { return resolveConfigByConfig(context.domain, args.key, args.config_id); } - if (args.group || args.group_id) { - return resolveGroup(context.domain, args.group, args.group_id); - } - - return resolveGroup(context.domain); + return resolveGroupByGroup(context.domain, args.group, args.group_id); } } diff --git a/tests/client-api.test.js b/tests/client-api.test.js index e5349c4..8959cb3 100644 --- a/tests/client-api.test.js +++ b/tests/client-api.test.js @@ -120,14 +120,14 @@ describe('Testing criteria [GraphQL] ', () => { expect(req.body).toMatchObject(JSON.parse(graphqlUtils.expected100)); }); - test('CLIENT_SUITE - Should NOT return on Flat view resolved by an unknown Group name', async () => { + test('CLIENT_SUITE - Should return on Flat view resolved without an unknown Group name', async () => { const req = await request(app) .post('/graphql') .set('Authorization', `Bearer ${token}`) .send(graphqlUtils.configurationQuery([['group', 'UNKNOWN GROUP NAME']])); expect(req.statusCode).toBe(200); - expect(JSON.parse(req.text).data.configuration).toEqual(null); + expect(JSON.parse(req.text)).toMatchObject(JSON.parse(graphqlUtils.expected112)); }); test('CLIENT_SUITE - Should return success on Flat view resolved by Config Key', async () => { @@ -168,14 +168,14 @@ describe('Testing criteria [GraphQL] ', () => { }).expect(401); }); - test('CLIENT_SUITE - Should NOT return on Flat view resolved by an unknown Config Key', async () => { + test('CLIENT_SUITE - Should return on Flat view without unknown Config Key', async () => { const req = await request(app) .post('/graphql') .set('Authorization', `Bearer ${token}`) .send(graphqlUtils.configurationQuery([['key', 'UNKNOWN_CONFIG_KEY']])); expect(req.statusCode).toBe(200); - expect(JSON.parse(req.text).data.configuration).toEqual(null); + expect(JSON.parse(req.text)).toMatchObject(JSON.parse(graphqlUtils.expected112)); }); test('CLIENT_SUITE - Should NOT return success on a simple CRITERIA response - Bad login input', async () => { diff --git a/tests/graphql-utils/index.js b/tests/graphql-utils/index.js index 0094847..374a4c6 100644 --- a/tests/graphql-utils/index.js +++ b/tests/graphql-utils/index.js @@ -304,3 +304,7 @@ export const expected110 = ` export const expected111 = ` {"data":{"configuration":{"environments":["default","QA"]}}}`; + +export const expected112 = ` + {"data":{"configuration":{"domain":{"name":"Domain","description":"Test Domain","activated":true,"statusByEnv":[{"env":"default","value":true}]}, + "group":null,"config":null,"strategies":null}}}`; \ No newline at end of file