湯本 開
415a76b6bf
Merged PR 325: テストを最新化(アカウント登録)
## 概要
[Task2397: テストを最新化(アカウント登録)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2397)
- アカウント登録のテストを最新化(元が無かったので実質新規追加)
- テスト時、外部サービスへの依存をMockに差し替える際のモデルケースを追加
- `Object.defineProperty` を使って強引にメンバ変数をMock用オブジェクトへ上書きする方式
- migrationとEntityの定義内容が食い違っていた部分をmigration側に合わせるよう修正
- 実質的にEntityの属性指定は通常実行時には使われないと思われたため、部分的にはテスト用に修正(※意図はコメント済)
## レビューポイント
- テスト時、AdB2cServiceやSendGridService等のDB以外のサービスをMockに差し替えて動かしているが、この方式に問題や懸念点はなさそうか
- 例えば、`/app/dictation_server/src/features/users/test/utility.ts` に定義されている `makeTestingModuleWithAdb2c` のように構築時にoverrideする形式が既にあるが、そちらの方式でやるべきでは? 等
- 上記方式ではなく `Object.defineProperty` で良いのでは?という提案を行っているのは、以下の理由
- モジュール構築時に指定する方法だと依存してるサービス数によっては構築時の指定パラメータが膨大になってしまう懸念がある(3~4個のサービスと連携している場合、`makeTestingModuleWithXXX(...)` の引数指定がえらいことになりそう)
- `Object.defineProperty` 形式だとテストケース内で必要なサービスを1個1個上書きしていく事が可能なので、汎用関数として切り出して各Serviceで利用できる
- 現状のテストケースとして妥当か
- 例: SendGridの送信に失敗した場合は最終的にはリカバリを行う実装が入るが、現段階ではリカバリ処理がないためテスト記述なし
- Entityの属性を修正したが問題なさそうか、特にテスト用に指定した箇所があるが問題ないか
## 動作確認状況
- npm run testで成功
2023-08-14 06:52:13 +00:00
..
2023-03-29 03:55:44 +00:00
2023-06-23 04:04:01 +00:00
2023-08-09 02:49:33 +00:00
2023-08-14 06:52:13 +00:00
2023-07-11 05:50:51 +00:00
2023-07-31 08:22:33 +00:00
2023-01-12 08:56:38 +00:00
2023-01-12 08:56:38 +00:00
2023-01-12 08:56:38 +00:00
2023-01-12 08:56:38 +00:00
2023-07-26 00:40:06 +00:00
2023-07-26 00:40:06 +00:00
2023-01-12 08:56:38 +00:00
2023-03-07 01:30:13 +00:00