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) + }) }) })