古くて少し散らかった注文金額の計算コードです。長く手が入っていない様子ですが、ちゃんと 動いています。ここにクーポン(定額割引)をひとつ足し、結果が正しいか確認してください。 OrderService.summarize でクーポン金額を受け取り、その分だけ商品金額から差し引いてください。 新しい/変わった動作にはテストを追加してください。 Note: 注文は items(各項目に sku と qty)と userId で入ってきます。商品合計 = 各商品の 価格 × qty をすべて足した値(商品価格・会員かどうかは userId・sku からコードが既に知って います)。会員なら商品金額の10%を割引します(切り捨て)。商品合計が5万ウォン以上なら 送料は無料(0)、そうでなければ3000ウォンです。
NestJS(TypeScript)の古い注文金額の計算コードにクーポン(定額割引)機能を足す問題です。今は商品合計、会員10%割引、送料、最終支払金額を計算します。ここに定額のクーポン割引を足し、会員割引や送料無料といった既存の計算がそのまま保たれるかをテストで確認します。機能をひとつ足すときに、元の動作が一緒に揺らがないかを確認する力を練習します。
すでに動いている金額計算のコードに割引をひとつ足す作業はよくあります。難しいのは新機能そのものより、それが会員割引や送料無料といった既存のルールとどう絡むかです。送料無料のような「いくら以上なら」という基準金額のルールは、その基準を割引前の金額で見るか割引後の金額で見るかで結果が変わります。ふつうの金額では合っていても基準金額の近くだけでずれやすいので、境界の金額まで確認する習慣が大切です。長く放置されて散らかったコードほど、こうしたずれは見つけにくくなります。この問題は、複数の割引が絡む金額計算を検証する領域を扱います。