## 概要 [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で成功
Description
No description provided
Languages
TypeScript
95.1%
HTML
1.9%
Shell
1.6%
SCSS
1.2%
Dockerfile
0.2%