Skip to content

test(tia): cover monorepo baseline and path regressions - #1960

Draft
einar-hansen wants to merge 1 commit into
pestphp:5.xfrom
einar-hansen:test/tia-monorepo-regressions
Draft

einar-hansen wants to merge 1 commit into
pestphp:5.xfrom
einar-hansen:test/tia-monorepo-regressions

Conversation

@einar-hansen

Copy link
Copy Markdown

What:

  • Bug Fix (regression coverage)
  • New Feature

Description:

Add regression coverage for TIA baseline detection and file selection in monorepos. These cases preserve coverage from #1809 alongside the implementation in #1914.

Depends on #1914. This draft targets 5.x and contains tests and output snapshots only. It does not include the implementation from #1914. Keep the draft blocked until that prerequisite merges.

The 26 new cases cover:

  • GitHub and GitLab baseline detection from project subdirectories, nested repositories, linked worktrees, and submodules.
  • Relative and absolute gitdir and commondir pointers, and malformed nested Git metadata without falling back to the parent remote.
  • Separate caches for sibling projects with the same name, and matching cache identity and fingerprints across worktrees.
  • Actual Unicode filenames with core.quotePath=true, staged and committed moves outside the project, cosmetic changes, and untracked files.

The Unicode cases use an actual Æ character. PHP leaves the single-quoted \u{26a1} strings in #1914 literal, so those existing fixtures do not exercise non-ASCII filenames.

Validation:

Validated in a temporary checkout combining upstream 83baa5de and #1914 at 85aac6a8, with this PR's tests applied.

The output snapshots include #1914's tests and the 26 cases added here. The parallel summary changes from 1,581 passed / 3,431 assertions to 1,622 passed / 3,483 assertions. Snapshot regeneration changed only tests/.snapshots/success.txt and the expected summary in tests/Visual/Parallel.php.

The validation checkout uses PHP 8.5.10 and ParaTest 7.26.0. ParaTest 7.26.1 introduces an unrelated upstream WrapperWorker constructor incompatibility. The dependency constraint and application code are unchanged in this PR.

Related:

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