From 924106d60880672633131b1c50aeefd321cf5122 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B9=AF=E6=9C=AC=20=E9=96=8B?= Date: Wed, 16 Aug 2023 05:28:58 +0000 Subject: [PATCH] =?UTF-8?q?Merged=20PR=20330:=20pipeline=E3=81=A7=E3=83=86?= =?UTF-8?q?=E3=82=B9=E3=83=88=E3=81=8C=E5=A4=B1=E6=95=97=E3=81=99=E3=82=8B?= =?UTF-8?q?=E7=8F=BE=E8=B1=A1=E3=82=92=E4=BF=AE=E6=AD=A3=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 概要 [Task2416: pipelineでテストが失敗する現象を修正する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2416) - テストの仕組み改善によって、SendGridの上書き部分の挙動が変わっていたことに対する対処が漏れていたものに対処 ## レビューポイント - 情報共有 - 追加したSendMailの特別扱いは妥当であるか ## 動作確認状況 - npm run testで成功 --- dictation_server/src/common/test/overrides.ts | 10 +++ .../accounts/accounts.service.spec.ts | 27 ++++++- .../src/features/users/users.service.spec.ts | 81 ++++++++++++++++--- 3 files changed, 106 insertions(+), 12 deletions(-) diff --git a/dictation_server/src/common/test/overrides.ts b/dictation_server/src/common/test/overrides.ts index 6be0936..a24758c 100644 --- a/dictation_server/src/common/test/overrides.ts +++ b/dictation_server/src/common/test/overrides.ts @@ -71,6 +71,16 @@ export const overrideSendgridService = ( value: sendMail, writable: true, }); + } else { + // [重要] + // sendMailだけは外部に対する送信を行ってしまう & 失敗によりメールアドレス自体の信頼度が変動してしまうため、 + // overrideした場合には"必ず"偽物の呼び出しになるようにしておく + Object.defineProperty(obj, sendMail.name, { + value: async () => { + return; + }, + writable: true, + }); } if (createMailContentFromEmailConfirm) { diff --git a/dictation_server/src/features/accounts/accounts.service.spec.ts b/dictation_server/src/features/accounts/accounts.service.spec.ts index 2ffaf96..f2a5ad0 100644 --- a/dictation_server/src/features/accounts/accounts.service.spec.ts +++ b/dictation_server/src/features/accounts/accounts.service.spec.ts @@ -69,7 +69,14 @@ describe('createAccount', () => { return { sub: externalId }; }, }); - overrideSendgridService(service, {}); + overrideSendgridService(service, { + sendMail: async () => { + return; + }, + createMailContentFromEmailConfirm: async () => { + return { html: '', text: '', subject: '' }; + }, + }); const { accountId, externalUserId, userId } = await service.createAccount( companyName, @@ -110,7 +117,14 @@ describe('createAccount', () => { }, }); - overrideSendgridService(service, {}); + overrideSendgridService(service, { + sendMail: async () => { + return; + }, + createMailContentFromEmailConfirm: async () => { + return { html: '', text: '', subject: '' }; + }, + }); const companyName = 'test_company_name'; const country = 'US'; @@ -159,7 +173,14 @@ describe('createAccount', () => { }, }); - overrideSendgridService(service, {}); + overrideSendgridService(service, { + sendMail: async () => { + return; + }, + createMailContentFromEmailConfirm: async () => { + return { html: '', text: '', subject: '' }; + }, + }); const companyName = 'test_company_name'; const country = 'US'; diff --git a/dictation_server/src/features/users/users.service.spec.ts b/dictation_server/src/features/users/users.service.spec.ts index 848b41f..b694b2b 100644 --- a/dictation_server/src/features/users/users.service.spec.ts +++ b/dictation_server/src/features/users/users.service.spec.ts @@ -403,7 +403,14 @@ describe('UsersService.createUser', () => { return { sub: externalId }; }, }); - overrideSendgridService(service, {}); + overrideSendgridService(service, { + sendMail: async () => { + return; + }, + createMailContentFromEmailConfirmForNormalUser: async () => { + return { html: '', text: '', subject: '' }; + }, + }); expect( await service.createUser( @@ -478,7 +485,14 @@ describe('UsersService.createUser', () => { return { sub: externalId }; }, }); - overrideSendgridService(service, {}); + overrideSendgridService(service, { + sendMail: async () => { + return; + }, + createMailContentFromEmailConfirmForNormalUser: async () => { + return { html: '', text: '', subject: '' }; + }, + }); expect( await service.createUser( @@ -556,7 +570,14 @@ describe('UsersService.createUser', () => { return { sub: externalId }; }, }); - overrideSendgridService(service, {}); + overrideSendgridService(service, { + sendMail: async () => { + return; + }, + createMailContentFromEmailConfirmForNormalUser: async () => { + return { html: '', text: '', subject: '' }; + }, + }); expect( await service.createUser( @@ -631,7 +652,14 @@ describe('UsersService.createUser', () => { return { sub: externalId }; }, }); - overrideSendgridService(service, {}); + overrideSendgridService(service, { + sendMail: async () => { + return; + }, + createMailContentFromEmailConfirmForNormalUser: async () => { + return { html: '', text: '', subject: '' }; + }, + }); expect( await service.createUser( @@ -701,7 +729,14 @@ describe('UsersService.createUser', () => { return { sub: externalId }; }, }); - overrideSendgridService(service, {}); + overrideSendgridService(service, { + sendMail: async () => { + return; + }, + createMailContentFromEmailConfirmForNormalUser: async () => { + return { html: '', text: '', subject: '' }; + }, + }); // DBエラーを発生させる overrideUsersRepositoryService(service, { @@ -765,7 +800,14 @@ describe('UsersService.createUser', () => { throw new Error('ADB2C error'); }, }); - overrideSendgridService(service, {}); + overrideSendgridService(service, { + sendMail: async () => { + return; + }, + createMailContentFromEmailConfirmForNormalUser: async () => { + return { html: '', text: '', subject: '' }; + }, + }); try { await service.createUser( @@ -830,7 +872,14 @@ describe('UsersService.createUser', () => { }; }, }); - overrideSendgridService(service, {}); + overrideSendgridService(service, { + sendMail: async () => { + return; + }, + createMailContentFromEmailConfirmForNormalUser: async () => { + return { html: '', text: '', subject: '' }; + }, + }); try { await service.createUser( @@ -897,7 +946,14 @@ describe('UsersService.createUser', () => { return { sub: externalId_1 }; }, }); - overrideSendgridService(service, {}); + overrideSendgridService(service, { + sendMail: async () => { + return; + }, + createMailContentFromEmailConfirmForNormalUser: async () => { + return { html: '', text: '', subject: '' }; + }, + }); expect( await service.createUser( @@ -1009,7 +1065,14 @@ describe('UsersService.createUser', () => { return { sub: externalId }; }, }); - overrideSendgridService(service, {}); + overrideSendgridService(service, { + sendMail: async () => { + return; + }, + createMailContentFromEmailConfirmForNormalUser: async () => { + return { html: '', text: '', subject: '' }; + }, + }); // AuthorIDのUNIQUE制約エラーを発生させる overrideUsersRepositoryService(service, {