From 79cea907a394e93b24f546ce0a7c337c8296430b Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Wed, 30 Aug 2023 14:18:39 +0800 Subject: [PATCH 1/2] Fix typo with RSS typed subscription queries --- .../api/src/resolvers/subscriptions/index.ts | 2 +- .../api/test/resolvers/subscriptions.test.ts | 76 +++++++++++++++++++ 2 files changed, 77 insertions(+), 1 deletion(-) diff --git a/packages/api/src/resolvers/subscriptions/index.ts b/packages/api/src/resolvers/subscriptions/index.ts index beb246649..a71133d99 100644 --- a/packages/api/src/resolvers/subscriptions/index.ts +++ b/packages/api/src/resolvers/subscriptions/index.ts @@ -83,7 +83,7 @@ export const subscriptionsResolver = authorized< status: SubscriptionStatus.Active, }) } else if (type && type == SubscriptionType.Rss) { - queryBuilder.where({ + queryBuilder.andWhere({ type, }) } else { diff --git a/packages/api/test/resolvers/subscriptions.test.ts b/packages/api/test/resolvers/subscriptions.test.ts index 71d412bec..be846e394 100644 --- a/packages/api/test/resolvers/subscriptions.test.ts +++ b/packages/api/test/resolvers/subscriptions.test.ts @@ -185,6 +185,82 @@ describe('Subscriptions API', () => { } }) + it('should not return other users subscriptions when type is set to RSS', async () => { + query = ` + query { + subscriptions(type: RSS) { + ... on SubscriptionsSuccess { + subscriptions { + id + name + } + } + ... on SubscriptionsError { + errorCodes + } + } + } + ` + const user2 = await createTestUser('fakeUser2') + try { + await createTestSubscription( + user2, + 'sub_other', + undefined, + SubscriptionStatus.Unsubscribed, + undefined, + SubscriptionType.Rss + ) + const res = await graphqlRequest(query, authToken).expect(200) + expect(res.body.data.subscriptions.subscriptions).to.eql( + subscriptions.map((sub) => ({ + id: sub.id, + name: sub.name, + })) + ) + } finally { + deleteTestUser(user2.id) + } + }) + + it('should not return other users subscriptions when type is set to NEWSLETTER', async () => { + query = ` + query { + subscriptions(type: NEWSLETTER) { + ... on SubscriptionsSuccess { + subscriptions { + id + name + } + } + ... on SubscriptionsError { + errorCodes + } + } + } + ` + const user2 = await createTestUser('fakeUser2') + try { + await createTestSubscription( + user2, + 'sub_other', + undefined, + SubscriptionStatus.Unsubscribed, + undefined, + SubscriptionType.Rss + ) + const res = await graphqlRequest(query, authToken).expect(200) + expect(res.body.data.subscriptions.subscriptions).to.eql( + subscriptions.map((sub) => ({ + id: sub.id, + name: sub.name, + })) + ) + } finally { + deleteTestUser(user2.id) + } + }) + it('responds status code 400 when invalid query', async () => { const invalidQuery = ` query { From da7a2d76aae66bc02508bbb17bb36bc38dc59e84 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Wed, 30 Aug 2023 18:34:35 +0800 Subject: [PATCH 2/2] Update test --- packages/api/test/resolvers/subscriptions.test.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/api/test/resolvers/subscriptions.test.ts b/packages/api/test/resolvers/subscriptions.test.ts index be846e394..4eb8cba6a 100644 --- a/packages/api/test/resolvers/subscriptions.test.ts +++ b/packages/api/test/resolvers/subscriptions.test.ts @@ -211,9 +211,12 @@ describe('Subscriptions API', () => { undefined, SubscriptionType.Rss ) + const rssItems = subscriptions.filter( + (s) => s.type == SubscriptionType.Rss + ) const res = await graphqlRequest(query, authToken).expect(200) expect(res.body.data.subscriptions.subscriptions).to.eql( - subscriptions.map((sub) => ({ + rssItems.map((sub) => ({ id: sub.id, name: sub.name, })) @@ -249,9 +252,12 @@ describe('Subscriptions API', () => { undefined, SubscriptionType.Rss ) + const newsletters = subscriptions.filter( + (s) => s.type == SubscriptionType.Newsletter + ) const res = await graphqlRequest(query, authToken).expect(200) expect(res.body.data.subscriptions.subscriptions).to.eql( - subscriptions.map((sub) => ({ + newsletters.map((sub) => ({ id: sub.id, name: sub.name, }))