From 2cb1b8ed1eaea1250d5348cf95524b6c0e17f1d0 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Wed, 15 May 2024 10:35:58 +0800 Subject: [PATCH] Add an extra test for clearing the user personalization data --- .../resolvers/user_personalization/index.ts | 11 ++++-- .../resolvers/user_personalization.test.ts | 37 +++++++++++++++++++ 2 files changed, 45 insertions(+), 3 deletions(-) diff --git a/packages/api/src/resolvers/user_personalization/index.ts b/packages/api/src/resolvers/user_personalization/index.ts index 8bcc8052d..93d576051 100644 --- a/packages/api/src/resolvers/user_personalization/index.ts +++ b/packages/api/src/resolvers/user_personalization/index.ts @@ -17,14 +17,19 @@ export const setUserPersonalizationResolver = authorized< MutationSetUserPersonalizationArgs >(async (_, { input }, { authTrx, uid }) => { const newValues = input as Omit + const digestValues = input.digestConfig + ? { + digestConfig: () => { + return JSON.stringify(input.digestConfig) + }, + } + : {} const result = await authTrx(async (t) => { return t.getRepository(UserPersonalization).upsert( { user: { id: uid }, ...newValues, - digestConfig: () => { - return JSON.stringify(input.digestConfig) - }, + ...digestValues, }, ['user'] ) diff --git a/packages/api/test/resolvers/user_personalization.test.ts b/packages/api/test/resolvers/user_personalization.test.ts index fe04e93f3..13a7fac6b 100644 --- a/packages/api/test/resolvers/user_personalization.test.ts +++ b/packages/api/test/resolvers/user_personalization.test.ts @@ -102,6 +102,43 @@ describe('User Personalization API', () => { ) expect(updatedUserPersonalization?.fields).to.eql(newFields) }) + + it('updates and can clear the user personalization', async () => { + const newFields = { + channels: ['push', 'email'], + } + + const res = await graphqlRequest(query, authToken, { + input: { fields: newFields }, + }).expect(200) + + expect( + res.body.data.setUserPersonalization.updatedUserPersonalization.fields + ).to.eql(newFields) + + const updatedUserPersonalization = await findUserPersonalization( + user.id + ) + expect(updatedUserPersonalization?.fields).to.eql(newFields) + + const updatedFields = { + channels: ['push', 'email'], + } + + const updatedRes = await graphqlRequest(query, authToken, { + input: { fields: updatedFields }, + }).expect(200) + + expect( + updatedRes.body.data.setUserPersonalization.updatedUserPersonalization + .fields + ).to.eql(updatedFields) + + const updatedUserPersonalization2 = await findUserPersonalization( + user.id + ) + expect(updatedUserPersonalization2?.fields).to.eql(newFields) + }) }) })