From 64d0200f99b810038ad8d176e320d08aba81f870 Mon Sep 17 00:00:00 2001 From: elweyn Date: Fri, 5 May 2023 13:11:36 +0200 Subject: [PATCH 1/6] Rename klicktippSignIn to subscribe. --- backend/src/apis/KlicktippController.ts | 2 +- backend/src/graphql/resolver/KlicktippResolver.ts | 4 ++-- backend/src/graphql/resolver/UserResolver.test.ts | 6 +++--- backend/src/graphql/resolver/UserResolver.ts | 6 +++--- backend/src/middleware/klicktippMiddleware.ts | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/backend/src/apis/KlicktippController.ts b/backend/src/apis/KlicktippController.ts index a4b5b6be7..7ad1d0c2c 100644 --- a/backend/src/apis/KlicktippController.ts +++ b/backend/src/apis/KlicktippController.ts @@ -12,7 +12,7 @@ import KlicktippConnector from 'klicktipp-api' const klicktippConnector = new KlicktippConnector() -export const klicktippSignIn = async ( +export const subscribe = async ( email: string, language: string, firstName?: string, diff --git a/backend/src/graphql/resolver/KlicktippResolver.ts b/backend/src/graphql/resolver/KlicktippResolver.ts index 6875abcc5..81290bdb6 100644 --- a/backend/src/graphql/resolver/KlicktippResolver.ts +++ b/backend/src/graphql/resolver/KlicktippResolver.ts @@ -1,6 +1,6 @@ import { Resolver, Authorized, Mutation, Ctx } from 'type-graphql' -import { unsubscribe, klicktippSignIn } from '@/apis/KlicktippController' +import { unsubscribe, subscribe } from '@/apis/KlicktippController' import { RIGHTS } from '@/auth/RIGHTS' import { EVENT_NEWSLETTER_SUBSCRIBE, EVENT_NEWSLETTER_UNSUBSCRIBE } from '@/event/Events' import { Context, getUser } from '@/server/context' @@ -20,6 +20,6 @@ export class KlicktippResolver { async subscribeNewsletter(@Ctx() context: Context): Promise { const user = getUser(context) await EVENT_NEWSLETTER_SUBSCRIBE(user) - return klicktippSignIn(user.emailContact.email, user.language) + return subscribe(user.emailContact.email, user.language) } } diff --git a/backend/src/graphql/resolver/UserResolver.test.ts b/backend/src/graphql/resolver/UserResolver.test.ts index d60ba7771..6051d83b7 100644 --- a/backend/src/graphql/resolver/UserResolver.test.ts +++ b/backend/src/graphql/resolver/UserResolver.test.ts @@ -61,7 +61,7 @@ import { stephenHawking } from '@/seeds/users/stephen-hawking' import { printTimeDuration } from '@/util/time' import { objectValuesToArray } from '@/util/utilities' -// import { klicktippSignIn } from '@/apis/KlicktippController' +// import { subscribe } from '@/apis/KlicktippController' jest.mock('@/emails/sendEmailVariants', () => { const originalModule = jest.requireActual('@/emails/sendEmailVariants') @@ -81,7 +81,7 @@ jest.mock('@/emails/sendEmailVariants', () => { jest.mock('@/apis/KlicktippController', () => { return { __esModule: true, - klicktippSignIn: jest.fn(), + subscribe: jest.fn(), } }) */ @@ -558,7 +558,7 @@ describe('UserResolver', () => { /* it('calls the klicktipp API', () => { - expect(klicktippSignIn).toBeCalledWith( + expect(subscribe).toBeCalledWith( user[0].email, user[0].language, user[0].firstName, diff --git a/backend/src/graphql/resolver/UserResolver.ts b/backend/src/graphql/resolver/UserResolver.ts index 60b4403af..ced4f8b3c 100644 --- a/backend/src/graphql/resolver/UserResolver.ts +++ b/backend/src/graphql/resolver/UserResolver.ts @@ -35,7 +35,7 @@ import { User } from '@model/User' import { UserAdmin, SearchUsersResult } from '@model/UserAdmin' import { UserRepository } from '@repository/User' -import { klicktippSignIn } from '@/apis/KlicktippController' +import { subscribe } from '@/apis/KlicktippController' import { encode } from '@/auth/JWT' import { RIGHTS } from '@/auth/RIGHTS' import { CONFIG } from '@/config' @@ -469,9 +469,9 @@ export class UserResolver { // TODO do we always signUp the user? How to handle things with old users? if (userContact.emailOptInTypeId === OptInType.EMAIL_OPT_IN_REGISTER) { try { - await klicktippSignIn(userContact.email, user.language, user.firstName, user.lastName) + await subscribe(userContact.email, user.language, user.firstName, user.lastName) logger.debug( - `klicktippSignIn(${userContact.email}, ${user.language}, ${user.firstName}, ${user.lastName})`, + `subscribe(${userContact.email}, ${user.language}, ${user.firstName}, ${user.lastName})`, ) } catch (e) { logger.error('Error subscribing to klicktipp', e) diff --git a/backend/src/middleware/klicktippMiddleware.ts b/backend/src/middleware/klicktippMiddleware.ts index 4c5f8db4f..c988c6d7a 100644 --- a/backend/src/middleware/klicktippMiddleware.ts +++ b/backend/src/middleware/klicktippMiddleware.ts @@ -19,7 +19,7 @@ import { klickTippLogger as logger } from '@/server/logger' // // Do Something here before resolver is called // const result = await next() // // Do Something here after resolver is completed -// await klicktippSignIn(result.email, result.language, result.firstName, result.lastName) +// await subscribe(result.email, result.language, result.firstName, result.lastName) // return result // } From 4de3daf12d5befae013ef2acada7fd3cba8c5cbb Mon Sep 17 00:00:00 2001 From: elweyn Date: Fri, 5 May 2023 13:35:48 +0200 Subject: [PATCH 2/6] Remove unused method. --- backend/src/apis/KlicktippController.ts | 7 ------- 1 file changed, 7 deletions(-) diff --git a/backend/src/apis/KlicktippController.ts b/backend/src/apis/KlicktippController.ts index 7ad1d0c2c..2e71f2cb6 100644 --- a/backend/src/apis/KlicktippController.ts +++ b/backend/src/apis/KlicktippController.ts @@ -28,13 +28,6 @@ export const subscribe = async ( return result } -export const signout = async (email: string, language: string): Promise => { - if (!CONFIG.KLICKTIPP) return true - const apiKey = language === 'de' ? CONFIG.KLICKTIPP_APIKEY_DE : CONFIG.KLICKTIPP_APIKEY_EN - const result = await klicktippConnector.signoff(apiKey, email) - return result -} - export const unsubscribe = async (email: string): Promise => { if (!CONFIG.KLICKTIPP) return true const isLogin = await loginKlicktippUser() From b8e015db222c9a4b8ce6e076025c309e9b0a5e45 Mon Sep 17 00:00:00 2001 From: elweyn Date: Fri, 5 May 2023 16:17:47 +0200 Subject: [PATCH 3/6] Remove unused method. --- backend/src/apis/KlicktippController.ts | 32 ------------------------- 1 file changed, 32 deletions(-) diff --git a/backend/src/apis/KlicktippController.ts b/backend/src/apis/KlicktippController.ts index 2e71f2cb6..a2a8f86cb 100644 --- a/backend/src/apis/KlicktippController.ts +++ b/backend/src/apis/KlicktippController.ts @@ -53,38 +53,6 @@ export const loginKlicktippUser = async (): Promise => { return await klicktippConnector.login(CONFIG.KLICKTIPP_USER, CONFIG.KLICKTIPP_PASSWORD) } -export const logoutKlicktippUser = async (): Promise => { - if (!CONFIG.KLICKTIPP) return true - return await klicktippConnector.logout() -} - -export const untagUser = async (email: string, tagId: string): Promise => { - if (!CONFIG.KLICKTIPP) return true - const isLogin = await loginKlicktippUser() - if (isLogin) { - return await klicktippConnector.untag(email, tagId) - } - return false -} - -export const tagUser = async (email: string, tagIds: string): Promise => { - if (!CONFIG.KLICKTIPP) return true - const isLogin = await loginKlicktippUser() - if (isLogin) { - return await klicktippConnector.tag(email, tagIds) - } - return false -} - -export const getKlicktippTagMap = async () => { - if (!CONFIG.KLICKTIPP) return true - const isLogin = await loginKlicktippUser() - if (isLogin) { - return await klicktippConnector.tagIndex() - } - return '' -} - export const addFieldsToSubscriber = async ( email: string, fields: any = {}, From 1f90f9e63b4aa803cf3ff2095f4dfd52a11ca6a4 Mon Sep 17 00:00:00 2001 From: elweyn Date: Tue, 9 May 2023 18:05:37 +0200 Subject: [PATCH 4/6] Remove unused code. --- backend/src/graphql/resolver/UserResolver.test.ts | 13 +++++-------- backend/src/middleware/klicktippMiddleware.ts | 13 ------------- 2 files changed, 5 insertions(+), 21 deletions(-) diff --git a/backend/src/graphql/resolver/UserResolver.test.ts b/backend/src/graphql/resolver/UserResolver.test.ts index d083eba00..4ae042a1e 100644 --- a/backend/src/graphql/resolver/UserResolver.test.ts +++ b/backend/src/graphql/resolver/UserResolver.test.ts @@ -20,6 +20,7 @@ import { ContributionLink } from '@model/ContributionLink' import { testEnvironment, headerPushMock, resetToken, cleanDB } from '@test/helpers' import { logger, i18n as localization } from '@test/testSetup' +import { subscribe } from '@/apis/KlicktippController' import { CONFIG } from '@/config' import { sendAccountActivationEmail, @@ -61,8 +62,6 @@ import { stephenHawking } from '@/seeds/users/stephen-hawking' import { printTimeDuration } from '@/util/time' import { objectValuesToArray } from '@/util/utilities' -// import { subscribe } from '@/apis/KlicktippController' - jest.mock('@/emails/sendEmailVariants', () => { const originalModule = jest.requireActual('@/emails/sendEmailVariants') return { @@ -556,16 +555,14 @@ describe('UserResolver', () => { expect(newUser.password.toString()).toEqual(encryptedPass.toString()) }) - /* it('calls the klicktipp API', () => { expect(subscribe).toBeCalledWith( - user[0].email, - user[0].language, - user[0].firstName, - user[0].lastName, + newUser.emailContact.email, + newUser.language, + newUser.firstName, + newUser.lastName, ) }) - */ it('returns true', () => { expect(result).toBeTruthy() diff --git a/backend/src/middleware/klicktippMiddleware.ts b/backend/src/middleware/klicktippMiddleware.ts index c988c6d7a..038bd3dd3 100644 --- a/backend/src/middleware/klicktippMiddleware.ts +++ b/backend/src/middleware/klicktippMiddleware.ts @@ -10,19 +10,6 @@ import { KlickTipp } from '@model/KlickTipp' import { getKlickTippUser } from '@/apis/KlicktippController' import { klickTippLogger as logger } from '@/server/logger' -// export const klicktippRegistrationMiddleware: MiddlewareFn = async ( -// // Only for demo -// /* eslint-disable-next-line @typescript-eslint/no-unused-vars */ -// { root, args, context, info }, -// next, -// ) => { -// // Do Something here before resolver is called -// const result = await next() -// // Do Something here after resolver is completed -// await subscribe(result.email, result.language, result.firstName, result.lastName) -// return result -// } - export const klicktippNewsletterStateMiddleware: MiddlewareFn = async ( /* eslint-disable-next-line @typescript-eslint/no-unused-vars */ { root, args, context, info }, From c41f9bccea3c9c83bffa7dbbdd6133c642fb79b7 Mon Sep 17 00:00:00 2001 From: elweyn Date: Wed, 10 May 2023 12:51:34 +0200 Subject: [PATCH 5/6] Add mock for KlicktippController. --- backend/src/graphql/resolver/UserResolver.test.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/backend/src/graphql/resolver/UserResolver.test.ts b/backend/src/graphql/resolver/UserResolver.test.ts index 4ae042a1e..ddfcf173a 100644 --- a/backend/src/graphql/resolver/UserResolver.test.ts +++ b/backend/src/graphql/resolver/UserResolver.test.ts @@ -75,15 +75,13 @@ jest.mock('@/emails/sendEmailVariants', () => { } }) -/* - jest.mock('@/apis/KlicktippController', () => { return { __esModule: true, subscribe: jest.fn(), + getKlickTippUser: jest.fn(), } }) -*/ let admin: User let user: User From da23956c0ad0a0f1c0648e74f5ab5b4fa1d296a4 Mon Sep 17 00:00:00 2001 From: elweyn Date: Wed, 10 May 2023 13:09:33 +0200 Subject: [PATCH 6/6] Upgrade to 86% coverage in backend. --- backend/jest.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/jest.config.js b/backend/jest.config.js index ca12668fa..3b251916a 100644 --- a/backend/jest.config.js +++ b/backend/jest.config.js @@ -7,7 +7,7 @@ module.exports = { collectCoverageFrom: ['src/**/*.ts', '!**/node_modules/**', '!src/seeds/**', '!build/**'], coverageThreshold: { global: { - lines: 85, + lines: 86, }, }, setupFiles: ['/test/testSetup.ts'],