Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
bbf6797
docs: add CLAUDE.md, TDD skill, and project overview skill
recca0120 Feb 12, 2026
9b0b075
refactor: improve code readability across core modules
recca0120 Feb 12, 2026
77f21c6
refactor: rename CommandHandler and CommandBuilder to resolve naming …
recca0120 Feb 13, 2026
cbe189c
refactor: improve naming clarity across codebase
recca0120 Feb 13, 2026
a3bdfb3
refactor: remove redundant intersection in TestRunnerObserver type
recca0120 Feb 13, 2026
511cc15
Revert "refactor: remove redundant intersection in TestRunnerObserver…
recca0120 Feb 13, 2026
8064fb3
refactor: remove redundant intersection in TestRunnerObserver type
recca0120 Feb 13, 2026
14bc2c8
Revert "refactor: improve naming clarity across codebase"
recca0120 Feb 13, 2026
3e7589c
refactor: rename Element to XmlElement
recca0120 Feb 13, 2026
3ae848b
refactor: rename TransformerFactory.factory() to create()
recca0120 Feb 13, 2026
a37a09c
refactor: rename FilterStrategyFactory.getStrategy() to create()
recca0120 Feb 13, 2026
3f2f5ba
refactor: improve variable names in TestHierarchyBuilder
recca0120 Feb 13, 2026
421ecc3
refactor: improve variable names in TestRunner
recca0120 Feb 13, 2026
74e2d3b
refactor: improve variable names in TestResultObserver
recca0120 Feb 13, 2026
d66b989
refactor: rename shadow variable path → result in PathReplacer.replac…
recca0120 Feb 13, 2026
995f52d
refactor: improve variable names in TestCollection
recca0120 Feb 13, 2026
074709b
refactor: rename item → testItem in extension.ts and Handler.ts
recca0120 Feb 13, 2026
338eef3
docs: update project-overview.md to reflect naming changes
recca0120 Feb 13, 2026
a820f52
refactor: extract Handler responsibilities and fix design issues
recca0120 Feb 13, 2026
e0eea53
refactor: encapsulate extension.ts free functions into PHPUnitExtensi…
recca0120 Feb 13, 2026
fcb9b32
refactor: introduce InversifyJS DI container for dependency management
recca0120 Feb 13, 2026
1c709f6
refactor: fix VS Code API issues in extension.ts
recca0120 Feb 13, 2026
9f719b1
refactor: restore explicit methods in TestRunnerEventProxy
recca0120 Feb 13, 2026
ae05f66
refactor: move remaining manual instantiations into DI container
recca0120 Feb 13, 2026
b65be1d
refactor: extract TestFileDiscovery, TestFileWatcher, and ContinuousT…
recca0120 Feb 13, 2026
3df861a
refactor: flatten PHPUnitExtension class into activate() function
recca0120 Feb 13, 2026
b205986
refactor: leverage DI container to simplify dependency wiring
recca0120 Feb 13, 2026
7818bc0
refactor: eliminate pass-through dependencies in TestRunnerFactory
recca0120 Feb 13, 2026
93fd962
refactor: rename classes to better reflect their responsibilities
recca0120 Feb 13, 2026
7aa4ac0
refactor: improve naming clarity across codebase
recca0120 Feb 13, 2026
06409f3
refactor: replace lookup table dispatch with switch in ProblemMatcher
recca0120 Feb 13, 2026
eaadbda
refactor: migrate test framework from Jest to Vitest
recca0120 Feb 13, 2026
01370a1
refactor: replace webpack with esbuild and use explicit vitest imports
recca0120 Feb 13, 2026
f1ba7c7
fix: add missing showErrorMessage to vscode window mock
recca0120 Feb 13, 2026
a38f6a8
chore: update all dependencies to latest versions
recca0120 Feb 13, 2026
9c9de7c
refactor: replace ESLint + Prettier with Biome and eliminate all expl…
recca0120 Feb 13, 2026
57b02b5
refactor: improve readability with single-responsibility extractions
recca0120 Feb 13, 2026
32d7234
refactor: extract OutputBuffer, SourceFileReader, and simplify parsin…
recca0120 Feb 13, 2026
03453f9
refactor: fix naming, file organization, and Biome test overrides
recca0120 Feb 13, 2026
efcd9cd
refactor: organize src/ into subdirectories and adopt Inversify decor…
recca0120 Feb 13, 2026
08af7fd
chore: add build/ to .gitignore
recca0120 Feb 13, 2026
dd13674
chore: rename jest references to vitest and update stale file paths
recca0120 Feb 13, 2026
0aa7234
chore: rename CI workflow from jest to tests
recca0120 Feb 13, 2026
f9d1987
chore: update GitHub Actions to latest versions
recca0120 Feb 13, 2026
1e4e6de
fix(ci): correct workflow name, add setup-node, remove unused matrix
recca0120 Feb 13, 2026
c1df2fd
chore: consolidate Docker setup into shared parameterized fixtures
recca0120 Feb 13, 2026
5ba893f
feat: add Docker debug integration with PHP version and project selec…
recca0120 Feb 14, 2026
bc688d4
refactor: improve test readability with shared helpers and reduced du…
recca0120 Feb 14, 2026
37e37f8
feat: add multi-version PHPUnit/Pest testing via parameterized stub d…
recca0120 Feb 14, 2026
bcffc4f
refactor: merge version stubs into main phpunit-stub/pest-stub direct…
recca0120 Feb 14, 2026
ccf1137
refactor: move phpunit.xml into vN/ subdirs and support parent-relati…
recca0120 Feb 14, 2026
7c9e3e5
revert: restore per-project Docker setup from main branch
recca0120 Feb 14, 2026
92d481d
revert: remove setup-debug.js and restore tasks.json from main
recca0120 Feb 14, 2026
e223818
revert: restore launch.json from main, remove Docker debug config
recca0120 Feb 14, 2026
fdcde9b
refactor: remove root vendor/ dependency, unify all tests on vN/ stubs
recca0120 Feb 14, 2026
c602ead
refactor: simplify extension.test.ts with shared helpers and consiste…
recca0120 Feb 14, 2026
ca10485
chore: remove .claude and CLAUDE.md from tracking, add to .gitignore
recca0120 Feb 14, 2026
02f5578
ci: simplify PHP matrix to 3 key versions, install per vN/ stub
recca0120 Feb 14, 2026
d794977
fix: update Element.test.ts imports for XmlElement rename and vitest …
recca0120 Feb 14, 2026
ebe1f92
fix: integrate PR #339 group filtering into refactored codebase
recca0120 Feb 14, 2026
1a9ae7e
feat: add --group filter support for ClassFilterStrategy
recca0120 Feb 14, 2026
a07e8f2
ci: remove continue-on-error for Windows now that tests are stable
recca0120 Feb 14, 2026
22b0326
refactor: use Uri.file().fsPath for spawn args, fix inline type imports
recca0120 Feb 14, 2026
233cfe1
ci: fix composer install order and platform compatibility
recca0120 Feb 14, 2026
7bbaf78
ci: skip incompatible stubs based on PHP version lookup
recca0120 Feb 14, 2026
6f359b3
ci: move PHP version lookup to env for readability
recca0120 Feb 14, 2026
0d121f7
ci: fix declare -A not supported on macOS bash v3
recca0120 Feb 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 0 additions & 83 deletions .github/workflows/jest.yml

This file was deleted.

109 changes: 109 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
name: Tests
on:
workflow_dispatch:
push:
branches:
- main
- '*.x'
pull_request:
jobs:
test:
runs-on: ${{ matrix.os }}

strategy:
fail-fast: false
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
php: ['7.4', '8.2', '8.4']
node: ['20']

name: ${{ matrix.os }} node-${{ matrix.node }} php-${{ matrix.php }}
defaults:
run:
shell: bash
env:
extensions: curl, dom, libxml, mbstring, pcntl, pdo, pdo_sqlite, sqlite, xdebug, zip
key: cache-v1
GITHUB_ACTIONS: true
PHPUNIT_PROJECT: src/PHPUnit/__tests__/fixtures/phpunit-stub
PEST_PROJECT: src/PHPUnit/__tests__/fixtures/pest-stub
# Minimum PHP version per stub (used to skip incompatible installs)
PHPUNIT_MIN_PHP: v9=7.3 v10=8.1 v11=8.2 v12=8.3
PEST_MIN_PHP: v2=8.2 v3=8.2 v4=8.3

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup cache environment
id: extcache
uses: shivammathur/cache-extensions@v1
with:
php-version: ${{ matrix.php }}
extensions: ${{ env.extensions }}
key: ${{ env.key }}

- name: Cache extensions
uses: actions/cache@v4
with:
path: ${{ steps.extcache.outputs.dir }}
key: ${{ steps.extcache.outputs.key }}
restore-keys: ${{ steps.extcache.outputs.key }}

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: ${{ env.extensions }}
tools: composer:v2
coverage: xdebug

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
cache: npm

- name: Install Composer dependencies (PHPUnit stubs)
run: |
lookup="${{ env.PHPUNIT_MIN_PHP }}"
for dir in $(ls -d ${{ env.PHPUNIT_PROJECT }}/v*/ | sort -V); do
stub=$(basename "$dir")
min=$(echo "$lookup" | tr ' ' '\n' | grep "^${stub}=" | cut -d= -f2)
min=${min:-99}
if php -r "exit(version_compare('${{ matrix.php }}','$min','>=') ? 0 : 1);"; then
echo "::group::Installing $stub (PHP >= $min)"
(cd "$dir" && composer install --prefer-dist --no-interaction --no-progress) || true
echo "::endgroup::"
else
echo "Skipping $stub (requires PHP >= $min, have ${{ matrix.php }})"
fi
done

- name: Install Composer dependencies (Pest stubs)
run: |
lookup="${{ env.PEST_MIN_PHP }}"
for dir in $(ls -d ${{ env.PEST_PROJECT }}/v*/ | sort -V); do
stub=$(basename "$dir")
min=$(echo "$lookup" | tr ' ' '\n' | grep "^${stub}=" | cut -d= -f2)
min=${min:-99}
if php -r "exit(version_compare('${{ matrix.php }}','$min','>=') ? 0 : 1);"; then
echo "::group::Installing $stub (PHP >= $min)"
(cd "$dir" && composer install --prefer-dist --no-interaction --no-progress) || true
echo "::endgroup::"
else
echo "Skipping $stub (requires PHP >= $min, have ${{ matrix.php }})"
fi
done

- name: Install Dependencies
run: npm ci

- name: Run the tests
run: npm run vitest

- name: Send to codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
flags: unittests
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ node_modules
*.vsix

.idea/
coverage/
/coverage/
build/
.DS_Store
*.zip

.claude/
CLAUDE.md
5 changes: 3 additions & 2 deletions .vscodeignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,18 @@ node_modules/**
src/**
.gitignore
.yarnrc
webpack.config.js
esbuild.mjs
vsc-extension-quickstart.md
**/tsconfig.json
**/.eslintrc.json
biome.json
**/*.map
**/*.ts

.idea/**
.github/**
coverage/**
sample/**
jest.config.js
vitest.config.ts
img/**
!img/icon.png
Loading