Merged PR 330: pipelineでテストが失敗する現象を修正する

## 概要
[Task2416: pipelineでテストが失敗する現象を修正する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2416)

- テストの仕組み改善によって、SendGridの上書き部分の挙動が変わっていたことに対する対処が漏れていたものに対処

## レビューポイント
- 情報共有
- 追加したSendMailの特別扱いは妥当であるか

## 動作確認状況
- npm run testで成功
This commit is contained in:
湯本 開 2023-08-16 05:28:58 +00:00
parent 704a5aafc2
commit 924106d608
3 changed files with 106 additions and 12 deletions

View File

@ -71,6 +71,16 @@ export const overrideSendgridService = <TService>(
value: sendMail,
writable: true,
});
} else {
// [重要]
// sendMailだけは外部に対する送信を行ってしまう & 失敗によりメールアドレス自体の信頼度が変動してしまうため、
// overrideした場合には"必ず"偽物の呼び出しになるようにしておく
Object.defineProperty(obj, sendMail.name, {
value: async () => {
return;
},
writable: true,
});
}
if (createMailContentFromEmailConfirm) {

View File

@ -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';

View File

@ -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, {