Skip to content

test: 検索テストの日付条件が実行時刻に依存して 0 件になるのを修正 - #102

Open
dotani1111 wants to merge 1 commit into
EC-CUBE:4.4from
dotani1111:dev/4.4-fix-search-test-date
Open

test: 検索テストの日付条件が実行時刻に依存して 0 件になるのを修正#102
dotani1111 wants to merge 1 commit into
EC-CUBE:4.4from
dotani1111:dev/4.4-fix-search-test-date

Conversation

@dotani1111

Copy link
Copy Markdown

概要(Overview・Refs Issue)

JST 0:00〜8:59 に CI が実行されると testReviewSearch / testDownloadCsv が必ず失敗する、テストの時刻依存バグを修正します。
#101 の CI(JST 8:42 実行)で 8 ジョブすべてが同じ 2 テストで失敗し発覚しました(該当 run)。
4.4 ブランチ自体の問題のため、push CI や他 PR でも実行時刻によって再現します。

原因

initForm() が検索条件の日付を作る際、getCreateDate() が返す同一の DateTime インスタンスに modify('-2 days')modify('+2 days') を順に適用しているため相殺し、review_end が「投稿の 2 日後」ではなく「投稿当日」の日付になります。

これ単体では成立します(リポジトリ側が review_end に +1 日して終端にするため)が、create_date は UTC で保存され、検索フォームの日付は JST として解釈されるため、終端は「JST 翌日 0 時 = UTC 当日 15 時」になります。
UTC 15:00 以降(= JST 0:00〜8:59)に実行すると「UTC now」の create_date が終端を過ぎ、検索が 0 件になります。

裏取りとして、review_end を投稿当日にすると 0 件・翌日にすると 1 件になることをローカルで確認しています。

方針(Policy)

  • clone してから modify し、±2 日の検索ウィンドウを意図どおりにする(3 行の修正)
  • ±2 日が正しく効けば終端は投稿の 3 日後 JST 0 時となり、タイムゾーン差(最大 ±14 時間)では範囲外になり得ません

テスト(Test)

  • PHPUnit: 18 tests / 47 assertions すべて成功(ローカル)

マイナーバージョン互換性保持のための制限事項チェックリスト

  • 既存機能の仕様変更はありません
  • フックポイントの呼び出しタイミングの変更はありません
  • フックポイントのパラメータの削除・データ型の変更はありません
  • twigファイルに渡しているパラメータの削除・データ型の変更はありません
  • Serviceクラスの公開関数の、引数の削除・データ型の変更はありません
  • 入出力ファイル(CSVなど)のフォーマット変更はありません

※ 変更はテストコードのみです。

レビュワー確認項目

  • 動作確認
  • コードレビュー
  • E2E/Unit テスト確認(テストの追加・変更が必要かどうか)
  • 互換性が保持されているか
  • セキュリティ上の問題がないか
    • 権限を超えた操作が可能にならないか
    • 不要なファイルアップロードがないか
    • 外部へ公開されるファイルや機能の追加ではないか
    • テンプレートでのエスケープ漏れがないか

🤖 Generated with Claude Code

- getCreateDate() は同一インスタンスを返すため、review_start の -2日と
  review_end の +2日の modify が相殺し、review_end が create 当日になっていた
- create_date は UTC 保存・検索日付は JST 解釈のため、JST 0:00〜8:59 の実行では
  当日日付の review_end が検索範囲外となり 0 件になる
- clone してから modify し、±2日のウィンドウを意図どおりにする

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: ba3d28e6-bcdb-45fc-bc4f-790c883c92b6

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant