Skip to content

Auto-fixable missing invokable rule #3605

Auto-fixable missing invokable rule

Auto-fixable missing invokable rule #3605

Triggered via pull request March 19, 2025 18:03
Status Failure
Total duration 1m 6s
Artifacts
This run and associated checks have been archived and are scheduled for deletion. Learn more about checks retention

ci.yml

on: pull_request
self-lint
45s
self-lint
Matrix: build
Fit to window
Zoom out
Zoom in

Annotations

18 errors
self-lint
Process completed with exit code 1.
build (ubuntu, 22.x)
Process completed with exit code 1.
build (ubuntu, 22.x): tests/rule-setup.js#L81
AssertionError: expected '# eslint-plugin-ember\n\n[![NPM versi…' to contain 'template-missing-invokable' - Expected + Received - template-missing-invokable + # eslint-plugin-ember + + [![NPM version](https://img.shields.io/npm/v/eslint-plugin-ember.svg?style=flat)](https://npmjs.org/package/eslint-plugin-ember) + [![NPM downloads](https://img.shields.io/npm/dm/eslint-plugin-ember.svg?style=flat)](https://npmjs.org/package/eslint-plugin-ember) + ![CI](https://github.com/ember-cli/eslint-plugin-ember/workflows/CI/badge.svg) + + > An ESLint plugin that provides a set of rules for Ember applications based on commonly known good practices. + + ## ❗️Requirements + + - [ESLint](https://eslint.org/) `>= 8` + - [Node.js](https://nodejs.org/) `18.* || 20.* || >= 21` + + ## 🚀 Usage + + ### 1. Install plugin + + ```shell + npm install --save-dev eslint-plugin-ember + ``` + + ### 2. Update your config + + ```js + // eslint.config.js (flat config) + const eslintPluginEmberRecommended = require('eslint-plugin-ember/configs/recommended'); + + module.exports = [ + ...eslintPluginEmberRecommended, + ]; + ``` + + or + + ```js + // .eslintrc.js (legacy config) + module.exports = { + plugins: ['ember'], + extends: [ + 'eslint:recommended', + 'plugin:ember/recommended' // or other configuration + ], + rules: { + // override / enable optional rules + 'ember/no-replace-test-comments': 'error' + } + }; + ``` + + ## gts/gjs + + lint files having `First-Class Component Templates` (fcct) + + learn more [here](https://github.com/ember-template-imports/ember-template-imports) + + > [!NOTE] + > special care should be used when setting up parsers, since they cannot be overwritten. thus they should be used in override only and specific to file types + + gjs/gts support is provided by the [ember-eslint-parser](https://github.com/NullVoxPopuli/ember-eslint-parser) + + > [!NOTE] + > if you import .gts files in .ts files, then `ember-eslint-parser` is required for .ts as well to enable typed linting + + ```js + // .eslintrc.js + module.exports = { + overrides: [ + { + files: ['**/*.{js,ts}'], + plugins: ['ember'], + parser: '@typescript-eslint/parser', + extends: [ + 'eslint:recommended', + 'plugin:ember/recommended', // or other configuration + ], + rules: { + // override / enable optional rules + 'ember/no-replace-test-comments': 'error' + } + }, + { + files: ['**/*.gts'], + parser: 'ember-eslint-parser', + plugins: ['ember'], + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:ember/recommended', + 'plugin:ember/recommended-gts', + ], + }, + { + files: ['**/*.gjs'], + parser: 'ember-eslint-parser', + plugins: ['ember'], + extends: [ + 'eslint:recommended', + 'plugin:ember/recommended', + 'plugin:ember/recommended-gjs', + ], + }, + { + files: ['tests/**/*.{js,ts,gjs,gts}'], + rules: { + // override / enable optional rules + 'ember/no-replace-test-comments': 'error' + } + }, + ], + }; + ``` + + ### rules applied to fcct templates + + - semi rule, same as [prettier plugin](https://github.com/gitKrystan/prettier-plugin-ember-template-tag/issues/1) + - no-undef rule will take effect for template vars (includes js scope) + - no-unused rule will take effect for template block params + + rules in templates can be disabled with eslint directives with mustache or html comments: + + ```hbs + <template> + <div> + {{!eslint-disable-next-line}} + {{test}} + </div> + <div> + {{!--eslint-disable--}} + {{test}} + {{test}} + {{test}} + {{!--eslint-enable--}} + </div> + </template> + ``` + + ```hbs + <template> + <div> + <!--eslint-disable-next-line--> + {{test}} + </div> + <div> + <!-- eslint-disable --> + {{test}} + {{test}} + {{test}} + <!-- eslint-enable --> + </div> + </tem
build (ubuntu, 22.x): tests/rule-setup.js#L69
AssertionError: expected [ 'alias-model-in-controller', …(96) ] to deeply equal [ 'alias-model-in-controller', …(95) ] - Expected + Received Array [ "alias-model-in-controller", "avoid-leaking-state-in-ember-objects", "avoid-using-needs-in-controllers", "classic-decorator-hooks", "classic-decorator-no-classic-methods", "closure-actions", "computed-property-getters", "jquery-ember-run", "named-functions-in-promises", "new-module-imports", "no-actions-hash", "no-array-prototype-extensions", "no-arrow-function-computed-properties", "no-assignment-of-untracked-properties-used-in-tracking-contexts", "no-at-ember-render-modifiers", "no-attrs-in-components", "no-attrs-snapshot", "no-capital-letters-in-routes", "no-classic-classes", "no-classic-components", "no-component-lifecycle-hooks", "no-computed-properties-in-native-classes", "no-controller-access-in-routes", "no-controllers", "no-current-route-name", "no-deeply-nested-dependent-keys-with-each", "no-deprecated-router-transition-methods", "no-duplicate-dependent-keys", "no-ember-super-in-es-classes", "no-ember-testing-in-module-scope", "no-empty-attrs", "no-empty-glimmer-component-classes", "no-function-prototype-extensions", "no-get-with-default", "no-get", "no-global-jquery", "no-html-safe", "no-implicit-injections", "no-implicit-service-injection-argument", "no-incorrect-calls-with-inline-anonymous-functions", "no-incorrect-computed-macros", "no-invalid-debug-function-arguments", "no-invalid-dependent-keys", "no-invalid-test-waiters", "no-jquery", "no-legacy-test-waiters", "no-mixins", "no-new-mixins", "no-noop-setup-on-error-in-before", "no-observers", "no-old-shims", "no-on-calls-in-components", "no-pause-test", "no-private-routing-service", "no-proxies", "no-replace-test-comments", "no-restricted-property-modifications", "no-restricted-resolver-tests", "no-restricted-service-injections", "no-runloop", "no-settled-after-test-helper", "no-shadow-route-definition", "no-side-effects", "no-string-prototype-extensions", "no-test-and-then", "no-test-import-export", "no-test-module-for", "no-test-support-import", "no-test-this-render", "no-tracked-properties-from-args", "no-try-invoke", "no-unnecessary-index-route", "no-unnecessary-route-path-option", "no-unnecessary-service-injection-argument", "no-unused-services", "no-volatile-computed-properties", "order-in-components", "order-in-controllers", "order-in-models", "order-in-routes", "prefer-ember-test-helpers", "require-async-inverse-relationship", "require-computed-macros", "require-computed-property-dependencies", "require-fetch-import", "require-return-from-computed", "require-super-in-lifecycle-hooks", "require-tagless-components", "require-valid-css-selector-in-test-helpers", "route-path-style", "routes-segments-snake-case", "template-indent", + "template-missing-invokable", "template-no-let-reference", "use-brace-expansion", "use-ember-data-rfc-395-imports", "use-ember-get-and-set", ] ❯ tests/rule-setup.js:69:24
build (windows, 20.x)
The operation was canceled.
build (windows, 20.x)
The strategy configuration was canceled because "build.ubuntu_22_x" failed
build (ubuntu, 18.x)
Process completed with exit code 1.
build (ubuntu, 18.x): tests/rule-setup.js#L81
AssertionError: expected '# eslint-plugin-ember\n\n[![NPM versi…' to contain 'template-missing-invokable' - Expected + Received - template-missing-invokable + # eslint-plugin-ember + + [![NPM version](https://img.shields.io/npm/v/eslint-plugin-ember.svg?style=flat)](https://npmjs.org/package/eslint-plugin-ember) + [![NPM downloads](https://img.shields.io/npm/dm/eslint-plugin-ember.svg?style=flat)](https://npmjs.org/package/eslint-plugin-ember) + ![CI](https://github.com/ember-cli/eslint-plugin-ember/workflows/CI/badge.svg) + + > An ESLint plugin that provides a set of rules for Ember applications based on commonly known good practices. + + ## ❗️Requirements + + - [ESLint](https://eslint.org/) `>= 8` + - [Node.js](https://nodejs.org/) `18.* || 20.* || >= 21` + + ## 🚀 Usage + + ### 1. Install plugin + + ```shell + npm install --save-dev eslint-plugin-ember + ``` + + ### 2. Update your config + + ```js + // eslint.config.js (flat config) + const eslintPluginEmberRecommended = require('eslint-plugin-ember/configs/recommended'); + + module.exports = [ + ...eslintPluginEmberRecommended, + ]; + ``` + + or + + ```js + // .eslintrc.js (legacy config) + module.exports = { + plugins: ['ember'], + extends: [ + 'eslint:recommended', + 'plugin:ember/recommended' // or other configuration + ], + rules: { + // override / enable optional rules + 'ember/no-replace-test-comments': 'error' + } + }; + ``` + + ## gts/gjs + + lint files having `First-Class Component Templates` (fcct) + + learn more [here](https://github.com/ember-template-imports/ember-template-imports) + + > [!NOTE] + > special care should be used when setting up parsers, since they cannot be overwritten. thus they should be used in override only and specific to file types + + gjs/gts support is provided by the [ember-eslint-parser](https://github.com/NullVoxPopuli/ember-eslint-parser) + + > [!NOTE] + > if you import .gts files in .ts files, then `ember-eslint-parser` is required for .ts as well to enable typed linting + + ```js + // .eslintrc.js + module.exports = { + overrides: [ + { + files: ['**/*.{js,ts}'], + plugins: ['ember'], + parser: '@typescript-eslint/parser', + extends: [ + 'eslint:recommended', + 'plugin:ember/recommended', // or other configuration + ], + rules: { + // override / enable optional rules + 'ember/no-replace-test-comments': 'error' + } + }, + { + files: ['**/*.gts'], + parser: 'ember-eslint-parser', + plugins: ['ember'], + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:ember/recommended', + 'plugin:ember/recommended-gts', + ], + }, + { + files: ['**/*.gjs'], + parser: 'ember-eslint-parser', + plugins: ['ember'], + extends: [ + 'eslint:recommended', + 'plugin:ember/recommended', + 'plugin:ember/recommended-gjs', + ], + }, + { + files: ['tests/**/*.{js,ts,gjs,gts}'], + rules: { + // override / enable optional rules + 'ember/no-replace-test-comments': 'error' + } + }, + ], + }; + ``` + + ### rules applied to fcct templates + + - semi rule, same as [prettier plugin](https://github.com/gitKrystan/prettier-plugin-ember-template-tag/issues/1) + - no-undef rule will take effect for template vars (includes js scope) + - no-unused rule will take effect for template block params + + rules in templates can be disabled with eslint directives with mustache or html comments: + + ```hbs + <template> + <div> + {{!eslint-disable-next-line}} + {{test}} + </div> + <div> + {{!--eslint-disable--}} + {{test}} + {{test}} + {{test}} + {{!--eslint-enable--}} + </div> + </template> + ``` + + ```hbs + <template> + <div> + <!--eslint-disable-next-line--> + {{test}} + </div> + <div> + <!-- eslint-disable --> + {{test}} + {{test}} + {{test}} + <!-- eslint-enable --> + </div> + </tem
build (ubuntu, 18.x): tests/rule-setup.js#L69
AssertionError: expected [ 'alias-model-in-controller', …(96) ] to deeply equal [ 'alias-model-in-controller', …(95) ] - Expected + Received Array [ "alias-model-in-controller", "avoid-leaking-state-in-ember-objects", "avoid-using-needs-in-controllers", "classic-decorator-hooks", "classic-decorator-no-classic-methods", "closure-actions", "computed-property-getters", "jquery-ember-run", "named-functions-in-promises", "new-module-imports", "no-actions-hash", "no-array-prototype-extensions", "no-arrow-function-computed-properties", "no-assignment-of-untracked-properties-used-in-tracking-contexts", "no-at-ember-render-modifiers", "no-attrs-in-components", "no-attrs-snapshot", "no-capital-letters-in-routes", "no-classic-classes", "no-classic-components", "no-component-lifecycle-hooks", "no-computed-properties-in-native-classes", "no-controller-access-in-routes", "no-controllers", "no-current-route-name", "no-deeply-nested-dependent-keys-with-each", "no-deprecated-router-transition-methods", "no-duplicate-dependent-keys", "no-ember-super-in-es-classes", "no-ember-testing-in-module-scope", "no-empty-attrs", "no-empty-glimmer-component-classes", "no-function-prototype-extensions", "no-get-with-default", "no-get", "no-global-jquery", "no-html-safe", "no-implicit-injections", "no-implicit-service-injection-argument", "no-incorrect-calls-with-inline-anonymous-functions", "no-incorrect-computed-macros", "no-invalid-debug-function-arguments", "no-invalid-dependent-keys", "no-invalid-test-waiters", "no-jquery", "no-legacy-test-waiters", "no-mixins", "no-new-mixins", "no-noop-setup-on-error-in-before", "no-observers", "no-old-shims", "no-on-calls-in-components", "no-pause-test", "no-private-routing-service", "no-proxies", "no-replace-test-comments", "no-restricted-property-modifications", "no-restricted-resolver-tests", "no-restricted-service-injections", "no-runloop", "no-settled-after-test-helper", "no-shadow-route-definition", "no-side-effects", "no-string-prototype-extensions", "no-test-and-then", "no-test-import-export", "no-test-module-for", "no-test-support-import", "no-test-this-render", "no-tracked-properties-from-args", "no-try-invoke", "no-unnecessary-index-route", "no-unnecessary-route-path-option", "no-unnecessary-service-injection-argument", "no-unused-services", "no-volatile-computed-properties", "order-in-components", "order-in-controllers", "order-in-models", "order-in-routes", "prefer-ember-test-helpers", "require-async-inverse-relationship", "require-computed-macros", "require-computed-property-dependencies", "require-fetch-import", "require-return-from-computed", "require-super-in-lifecycle-hooks", "require-tagless-components", "require-valid-css-selector-in-test-helpers", "route-path-style", "routes-segments-snake-case", "template-indent", + "template-missing-invokable", "template-no-let-reference", "use-brace-expansion", "use-ember-data-rfc-395-imports", "use-ember-get-and-set", ] ❯ tests/rule-setup.js:69:24
build (ubuntu, 18.x)
The strategy configuration was canceled because "build.ubuntu_22_x" failed
build (windows, 22.x)
The operation was canceled.
build (windows, 22.x)
The strategy configuration was canceled because "build.ubuntu_22_x" failed
build (windows, 18.x)
The operation was canceled.
build (windows, 18.x)
The strategy configuration was canceled because "build.ubuntu_22_x" failed
build (ubuntu, 20.x)
The operation was canceled.
build (ubuntu, 20.x): tests/rule-setup.js#L81
AssertionError: expected '# eslint-plugin-ember\n\n[![NPM versi…' to contain 'template-missing-invokable' - Expected + Received - template-missing-invokable + # eslint-plugin-ember + + [![NPM version](https://img.shields.io/npm/v/eslint-plugin-ember.svg?style=flat)](https://npmjs.org/package/eslint-plugin-ember) + [![NPM downloads](https://img.shields.io/npm/dm/eslint-plugin-ember.svg?style=flat)](https://npmjs.org/package/eslint-plugin-ember) + ![CI](https://github.com/ember-cli/eslint-plugin-ember/workflows/CI/badge.svg) + + > An ESLint plugin that provides a set of rules for Ember applications based on commonly known good practices. + + ## ❗️Requirements + + - [ESLint](https://eslint.org/) `>= 8` + - [Node.js](https://nodejs.org/) `18.* || 20.* || >= 21` + + ## 🚀 Usage + + ### 1. Install plugin + + ```shell + npm install --save-dev eslint-plugin-ember + ``` + + ### 2. Update your config + + ```js + // eslint.config.js (flat config) + const eslintPluginEmberRecommended = require('eslint-plugin-ember/configs/recommended'); + + module.exports = [ + ...eslintPluginEmberRecommended, + ]; + ``` + + or + + ```js + // .eslintrc.js (legacy config) + module.exports = { + plugins: ['ember'], + extends: [ + 'eslint:recommended', + 'plugin:ember/recommended' // or other configuration + ], + rules: { + // override / enable optional rules + 'ember/no-replace-test-comments': 'error' + } + }; + ``` + + ## gts/gjs + + lint files having `First-Class Component Templates` (fcct) + + learn more [here](https://github.com/ember-template-imports/ember-template-imports) + + > [!NOTE] + > special care should be used when setting up parsers, since they cannot be overwritten. thus they should be used in override only and specific to file types + + gjs/gts support is provided by the [ember-eslint-parser](https://github.com/NullVoxPopuli/ember-eslint-parser) + + > [!NOTE] + > if you import .gts files in .ts files, then `ember-eslint-parser` is required for .ts as well to enable typed linting + + ```js + // .eslintrc.js + module.exports = { + overrides: [ + { + files: ['**/*.{js,ts}'], + plugins: ['ember'], + parser: '@typescript-eslint/parser', + extends: [ + 'eslint:recommended', + 'plugin:ember/recommended', // or other configuration + ], + rules: { + // override / enable optional rules + 'ember/no-replace-test-comments': 'error' + } + }, + { + files: ['**/*.gts'], + parser: 'ember-eslint-parser', + plugins: ['ember'], + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:ember/recommended', + 'plugin:ember/recommended-gts', + ], + }, + { + files: ['**/*.gjs'], + parser: 'ember-eslint-parser', + plugins: ['ember'], + extends: [ + 'eslint:recommended', + 'plugin:ember/recommended', + 'plugin:ember/recommended-gjs', + ], + }, + { + files: ['tests/**/*.{js,ts,gjs,gts}'], + rules: { + // override / enable optional rules + 'ember/no-replace-test-comments': 'error' + } + }, + ], + }; + ``` + + ### rules applied to fcct templates + + - semi rule, same as [prettier plugin](https://github.com/gitKrystan/prettier-plugin-ember-template-tag/issues/1) + - no-undef rule will take effect for template vars (includes js scope) + - no-unused rule will take effect for template block params + + rules in templates can be disabled with eslint directives with mustache or html comments: + + ```hbs + <template> + <div> + {{!eslint-disable-next-line}} + {{test}} + </div> + <div> + {{!--eslint-disable--}} + {{test}} + {{test}} + {{test}} + {{!--eslint-enable--}} + </div> + </template> + ``` + + ```hbs + <template> + <div> + <!--eslint-disable-next-line--> + {{test}} + </div> + <div> + <!-- eslint-disable --> + {{test}} + {{test}} + {{test}} + <!-- eslint-enable --> + </div> + </tem
build (ubuntu, 20.x): tests/rule-setup.js#L69
AssertionError: expected [ 'alias-model-in-controller', …(96) ] to deeply equal [ 'alias-model-in-controller', …(95) ] - Expected + Received Array [ "alias-model-in-controller", "avoid-leaking-state-in-ember-objects", "avoid-using-needs-in-controllers", "classic-decorator-hooks", "classic-decorator-no-classic-methods", "closure-actions", "computed-property-getters", "jquery-ember-run", "named-functions-in-promises", "new-module-imports", "no-actions-hash", "no-array-prototype-extensions", "no-arrow-function-computed-properties", "no-assignment-of-untracked-properties-used-in-tracking-contexts", "no-at-ember-render-modifiers", "no-attrs-in-components", "no-attrs-snapshot", "no-capital-letters-in-routes", "no-classic-classes", "no-classic-components", "no-component-lifecycle-hooks", "no-computed-properties-in-native-classes", "no-controller-access-in-routes", "no-controllers", "no-current-route-name", "no-deeply-nested-dependent-keys-with-each", "no-deprecated-router-transition-methods", "no-duplicate-dependent-keys", "no-ember-super-in-es-classes", "no-ember-testing-in-module-scope", "no-empty-attrs", "no-empty-glimmer-component-classes", "no-function-prototype-extensions", "no-get-with-default", "no-get", "no-global-jquery", "no-html-safe", "no-implicit-injections", "no-implicit-service-injection-argument", "no-incorrect-calls-with-inline-anonymous-functions", "no-incorrect-computed-macros", "no-invalid-debug-function-arguments", "no-invalid-dependent-keys", "no-invalid-test-waiters", "no-jquery", "no-legacy-test-waiters", "no-mixins", "no-new-mixins", "no-noop-setup-on-error-in-before", "no-observers", "no-old-shims", "no-on-calls-in-components", "no-pause-test", "no-private-routing-service", "no-proxies", "no-replace-test-comments", "no-restricted-property-modifications", "no-restricted-resolver-tests", "no-restricted-service-injections", "no-runloop", "no-settled-after-test-helper", "no-shadow-route-definition", "no-side-effects", "no-string-prototype-extensions", "no-test-and-then", "no-test-import-export", "no-test-module-for", "no-test-support-import", "no-test-this-render", "no-tracked-properties-from-args", "no-try-invoke", "no-unnecessary-index-route", "no-unnecessary-route-path-option", "no-unnecessary-service-injection-argument", "no-unused-services", "no-volatile-computed-properties", "order-in-components", "order-in-controllers", "order-in-models", "order-in-routes", "prefer-ember-test-helpers", "require-async-inverse-relationship", "require-computed-macros", "require-computed-property-dependencies", "require-fetch-import", "require-return-from-computed", "require-super-in-lifecycle-hooks", "require-tagless-components", "require-valid-css-selector-in-test-helpers", "route-path-style", "routes-segments-snake-case", "template-indent", + "template-missing-invokable", "template-no-let-reference", "use-brace-expansion", "use-ember-data-rfc-395-imports", "use-ember-get-and-set", ] ❯ tests/rule-setup.js:69:24
build (ubuntu, 20.x)
The strategy configuration was canceled because "build.ubuntu_22_x" failed