Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion requests/Switcher API.postman_collection.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": ""
}
},
Expand Down
12 changes: 4 additions & 8 deletions src/client/configuration-resolvers.js
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -32,7 +32,7 @@ async function resolveGroup(domainId, groupConfig, groupId) {
return { group };
}

return undefined;
return [];
}

async function resolveSlackInstallation(args) {
Expand All @@ -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);
}
}

Expand Down
8 changes: 4 additions & 4 deletions tests/client-api.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -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 () => {
Expand Down Expand Up @@ -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 () => {
Expand Down
4 changes: 4 additions & 0 deletions tests/graphql-utils/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -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}}}`;