Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
5 changes: 4 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -323,10 +323,13 @@ jobs:
env:
COMPOSE_PROFILES: e2e
run: |
# Install playwright browsers in the same container as the test run; the prebuilt
# image's baked browsers can be stale relative to the locked @playwright/test version,
# and `docker compose run --rm` discards anything written to a separate container.
docker compose run --rm \
-e E2E_BASE_URL=http://httpd-e2e:80 \
-e CI=true \
app-e2e npx playwright test --shard=${{ matrix.shard }}/10 -x
app-e2e bash -c "npx playwright install chromium && npx playwright test --shard=${{ matrix.shard }}/10 -x"

- name: Collect E2E coverage
if: always()
Expand Down
1,311 changes: 699 additions & 612 deletions composer.lock

Large diffs are not rendered by default.

10 changes: 5 additions & 5 deletions config/quality/phpat.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public function test_controllers_should_only_depend_on_business_logic(): Rule
{
return PHPat::rule()
->classes(Selector::inNamespace('App\Controller'))
->canOnlyDependOn()
->canOnly()->dependOn()
->classes(
Selector::inNamespace('App\Entity'),
Selector::inNamespace('App\Service'),
Expand All @@ -37,7 +37,7 @@ public function test_entities_should_be_pure_data_models(): Rule
{
return PHPat::rule()
->classes(Selector::inNamespace('App\Entity'))
->canOnlyDependOn()
->canOnly()->dependOn()
->classes(
Selector::inNamespace('App\Enum'),
Selector::inNamespace('Doctrine'),
Expand All @@ -52,7 +52,7 @@ public function test_services_can_orchestrate_business_logic(): Rule
{
return PHPat::rule()
->classes(Selector::inNamespace('App\Service'))
->canOnlyDependOn()
->canOnly()->dependOn()
->classes(
Selector::inNamespace('App\Entity'),
Selector::inNamespace('App\Repository'),
Expand All @@ -74,7 +74,7 @@ public function test_repositories_should_only_handle_data_access(): Rule
{
return PHPat::rule()
->classes(Selector::inNamespace('App\Repository'))
->canOnlyDependOn()
->canOnly()->dependOn()
->classes(
Selector::inNamespace('App\Entity'),
Selector::inNamespace('App\Enum'),
Expand All @@ -90,7 +90,7 @@ public function test_controllers_must_not_directly_access_repositories(): Rule
{
return PHPat::rule()
->classes(Selector::inNamespace('App\Controller'))
->shouldNotDependOn()
->shouldNot()->dependOn()
->classes(Selector::inNamespace('App\Repository'))
->because('Controllers should use Services, not Repositories directly');
}
Expand Down
Loading
Loading