Skip to content

Post-merge-review: add missing tests from ember-template-lint test suite#2705

Open
johanrd wants to merge 5 commits intoember-cli:masterfrom
johanrd:test/coverage-upstream-gaps
Open

Post-merge-review: add missing tests from ember-template-lint test suite#2705
johanrd wants to merge 5 commits intoember-cli:masterfrom
johanrd:test/coverage-upstream-gaps

Conversation

@johanrd
Copy link
Copy Markdown
Contributor

@johanrd johanrd commented Apr 14, 2026

Summary

Systematic comparison of all 134 template rules against the ember-template-lint test suite. 15 rules had missing test coverage.

Tests added

Rule Test added ember-template-lint reference
template-no-nested-interactive ignoreUsemapAttribute option alias no-nested-interactive-test.js
template-no-curly-component-invocation requireDash: true with single-word named-arg call no-curly-component-invocation-test.js
template-no-abstract-roles All 10 abstract roles not previously tested (composite, input, landmark, range, roletype, section, sectionhead, select, structure, window) no-abstract-roles-test.js
template-no-obsolete-elements 8 additional obsolete elements in GJS tester (big, blink, center, font, frame, frameset, strike, tt) no-obsolete-elements-test.js
template-self-closing-void-elements require config option — all void elements, valid and invalid with fixer output self-closing-void-elements-test.js
template-no-invalid-interactive additionalInteractiveTags and ignoredTags config options no-invalid-interactive-test.js
template-no-aria-hidden-body Boolean aria-hidden attribute without value no-aria-hidden-body-test.js
template-no-invalid-role catchNonexistentRoles config option no-invalid-role-test.js
template-require-strict-mode Class-based GJS component valid case require-strict-mode-test.js
template-link-rel-noopener target="_self" valid case; full HBS tester section link-rel-noopener-test.js
template-no-element-event-actions requireActionHelper config option (true and false) no-element-event-actions-test.js
template-no-array-prototype-extensions String literal paths in get helper; plain-text and string-attr false-positive checks; lastObject in named hash arg no-array-prototype-extensions-test.js
template-no-duplicate-landmark-elements popover element scoping in GJS tester no-duplicate-landmark-elements-test.js
template-no-accesskey-attribute Boolean accesskey attribute, dynamic mustache value, and concat string attribute no-accesskey-attribute-test.js

Implementation gaps evaluated

Three behaviors in ember-template-lint were found to have no equivalent tests or implementation in this plugin. Each was investigated and a decision made:

Rule Missing behavior Decision
template-no-forbidden-elements filePath-based element exceptions (head.hbs) Skipember-cli-head is a classic-Ember-only addon; not relevant to GJS/GTS
template-no-implicit-this regex patterns in allow array Shipped — see PR #2707
template-no-bare-strings false config to disable the rule Skip — use "off" in ESLint config instead; false is not idiomatic in ESLint

Test plan

  • npm test — all tests pass

@johanrd johanrd marked this pull request as draft April 14, 2026 19:42
…e.md

- template-no-nested-interactive: add test for ignoreUsemapAttribute alias
- template-no-curly-component-invocation: add test for requireDash:true behavior
- coverage.md: document all 134 template rules with status
@johanrd johanrd force-pushed the test/coverage-upstream-gaps branch from 0227c9d to 8518b24 Compare April 14, 2026 19:44
@johanrd johanrd marked this pull request as ready for review April 15, 2026 13:43
@johanrd johanrd changed the title test: coverage audit against ember-template-lint test suite Post-merge-review: add missing tests from ember-template-lint test suite Apr 15, 2026
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