Skip to content

fix(GH-481): Fix npm run lint and Playwright deadlock on fresh projects - #482

Open
juhaniemi wants to merge 2 commits into
mainfrom
GH-481
Open

juhaniemi wants to merge 2 commits into
mainfrom
GH-481

Conversation

@juhaniemi

Copy link
Copy Markdown

Ticket GH-481

Fixes #481

Changes

The Playwright Tests workflow should run again on this PR. ddev/github-action-setup-ddev was added to the org Actions allowlist, which removes the startup_failure every run has had since mid-September.

Testing

Enviroment: local DDEV (no deploy needed, the changes are local tooling and DB connection settings)

Login: ddev drush uli

Instructions:

  • ddev composer install, then confirm web/.eslintrc.json is not created (delete an existing one first)
  • ddev npm run lint:js passes
  • ddev drush php:eval 'echo \Drupal::database()->query("SELECT @@transaction_isolation")->fetchField();' prints READ-COMMITTED
  • ddev exec npx playwright test passes all 7 tests on repeated runs. Before the fix, the article test failed with SQLSTATE[40001] ... Deadlock found.
  • Playwright Tests GitHub workflow on this PR is green

Verified the same changes in wunderio/internal-mearra-main-data-system: lint passes, Playwright 7/7 over 3 consecutive runs.

https://claude.ai/code/session_012FKaDB3ZoovhEYXdXSdiUT

Drupal's scaffold writes web/.eslintrc.json, which extends core's ESLint
config and needs eslint-plugin-jsdoc. The template doesn't install that
plugin, so npm run lint fails in every project made from the template.
#246 hit the same root cause with eslint-plugin-yml. The root
.eslintrc.json now applies to custom code.

Claude-Session: https://claude.ai/code/session_012FKaDB3ZoovhEYXdXSdiUT
DDEV's MariaDB defaults to REPEATABLE READ. Parallel Playwright workers
creating nodes deadlock on node_field_data gap locks, so the article
test fails intermittently. #352 set READ-COMMITTED for Lando only, and
the setting was lost in the move to DDEV. Setting it on the connection
covers every environment and matches the Silta MariaDB config.

Claude-Session: https://claude.ai/code/session_012FKaDB3ZoovhEYXdXSdiUT
Copilot AI lite review requested due to automatic review settings October 9, 2026 11:12

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warning

  • Copilot's review of this pull request may be incomplete because some of the changed files are excluded by your Copilot content exclusion settings. See Excluding content from Copilot for details.

🔵 Needs a closer look

The changes affect project scaffolding and database behavior and require final human validation.

0 open findings

What changed in this PR

Fixes fresh-project lint failures and Playwright deadlocks by updating scaffolding and database isolation settings.

Changes:

  • Prevents scaffolding of the conflicting ESLint configuration.
  • Configures READ COMMITTED isolation for parallel tests.
File Description
composer.json Prevents scaffolding the conflicting ESLint configuration.
Files excluded by content exclusion policy (1)
  • web/sites/default/settings.php

🧠 Review effort: Lite


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

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.

Fresh projects fail npm run lint and Playwright article test

2 participants