Repository: ember-cli/eslint-plugin-ember
Pull request #1025 (2020-12-01 19:57:39)

Promote `octane` rules to `recommended` config and delete `octane` config
Part of #960.


Patch:
diff --git a/.eslintignore b/.eslintignore
index abcf9d5e..b10e4f8a 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -1,4 +1,3 @@
 coverage/
 node_modules
 lib/recommended-rules.js
-lib/octane-rules.js
diff --git a/.prettierignore b/.prettierignore
index 075bb839..496cf949 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -1,2 +1,1 @@
-lib/octane-rules.js
-lib/recommended-rules.js
\ No newline at end of file
+lib/recommended-rules.js
diff --git a/README.md b/README.md
index d3fe2f27..8dd0956d 100644
--- a/README.md
+++ b/README.md
@@ -48,7 +48,6 @@ module.exports = {
 |:---|:-----|:------------|
 | | [base](./lib/config/base.js) | contains no rules settings, but the basic eslint configuration suitable for any ember project. You can use it to configure rules as you wish. |
 | :white_check_mark: | [recommended](./lib/recommended-rules.js) | extends the `base` configuration by enabling the recommended rules. |
-| :car: | [octane](./lib/octane-rules.js) | extends the `recommended` configuration by enabling octane rules. This ruleset is currently considered **unstable and experimental** :warning: as rules may be added and removed until the final ruleset is settled upon. |
 
 ## 🍟 Rules
 
@@ -65,10 +64,10 @@ Rules are grouped by category to help you understand their purpose. Each rule ha
 |:---|:--------|:------------|
 | :white_check_mark: | [no-attrs-in-components](./docs/rules/no-attrs-in-components.md) | disallow usage of `this.attrs` in components |
 | :white_check_mark: | [no-attrs-snapshot](./docs/rules/no-attrs-snapshot.md) | disallow use of attrs snapshot in the `didReceiveAttrs` and `didUpdateAttrs` component hooks |
-| :car: | [no-classic-components](./docs/rules/no-classic-components.md) | enforce using Glimmer components |
-| :car: | [no-component-lifecycle-hooks](./docs/rules/no-component-lifecycle-hooks.md) | disallow usage of "classic" ember component lifecycle hooks. Render modifiers or custom functional modifiers should be used instead. |
+| :white_check_mark: | [no-classic-components](./docs/rules/no-classic-components.md) | enforce using Glimmer components |
+| :white_check_mark: | [no-component-lifecycle-hooks](./docs/rules/no-component-lifecycle-hooks.md) | disallow usage of "classic" ember component lifecycle hooks. Render modifiers or custom functional modifiers should be used instead. |
 | :white_check_mark: | [no-on-calls-in-components](./docs/rules/no-on-calls-in-components.md) | disallow usage of `on` to call lifecycle hooks in components |
-| :car: | [require-tagless-components](./docs/rules/require-tagless-components.md) | disallow using the wrapper element of a component |
+| :white_check_mark: | [require-tagless-components](./docs/rules/require-tagless-components.md) | disallow using the wrapper element of a component |
 
 ### Computed Properties
 
@@ -77,7 +76,7 @@ Rules are grouped by category to help you understand their purpose. Each rule ha
 |  | [computed-property-getters](./docs/rules/computed-property-getters.md) | enforce the consistent use of getters in computed properties |
 | :white_check_mark: | [no-arrow-function-computed-properties](./docs/rules/no-arrow-function-computed-properties.md) | disallow arrow functions in computed properties |
 | :white_check_mark::wrench: | [no-assignment-of-untracked-properties-used-in-tracking-contexts](./docs/rules/no-assignment-of-untracked-properties-used-in-tracking-contexts.md) | disallow assignment of untracked properties that are used as computed property dependencies |
-| :car: | [no-computed-properties-in-native-classes](./docs/rules/no-computed-properties-in-native-classes.md) | disallow using computed properties in native classes |
+| :white_check_mark: | [no-computed-properties-in-native-classes](./docs/rules/no-computed-properties-in-native-classes.md) | disallow using computed properties in native classes |
 | :white_check_mark: | [no-deeply-nested-dependent-keys-with-each](./docs/rules/no-deeply-nested-dependent-keys-with-each.md) | disallow usage of deeply-nested computed property dependent keys with `@each` |
 | :white_check_mark::wrench: | [no-duplicate-dependent-keys](./docs/rules/no-duplicate-dependent-keys.md) | disallow repeating computed property dependent keys |
 | :white_check_mark::wrench: | [no-incorrect-computed-macros](./docs/rules/no-incorrect-computed-macros.md) | disallow incorrect usage of computed property macros |
@@ -133,10 +132,10 @@ Rules are grouped by category to help you understand their purpose. Each rule ha
 
 |    | Rule ID | Description |
 |:---|:--------|:------------|
-| :car: | [classic-decorator-hooks](./docs/rules/classic-decorator-hooks.md) | enforce using correct hooks for both classic and non-classic classes |
-| :car: | [classic-decorator-no-classic-methods](./docs/rules/classic-decorator-no-classic-methods.md) | disallow usage of classic APIs such as `get`/`set` in classes that aren't explicitly decorated with `@classic` |
-| :car: | [no-actions-hash](./docs/rules/no-actions-hash.md) | disallow the actions hash in components, controllers, and routes |
-| :car: | [no-classic-classes](./docs/rules/no-classic-classes.md) | disallow "classic" classes in favor of native JS classes |
+| :white_check_mark: | [classic-decorator-hooks](./docs/rules/classic-decorator-hooks.md) | enforce using correct hooks for both classic and non-classic classes |
+| :white_check_mark: | [classic-decorator-no-classic-methods](./docs/rules/classic-decorator-no-classic-methods.md) | disallow usage of classic APIs such as `get`/`set` in classes that aren't explicitly decorated with `@classic` |
+| :white_check_mark: | [no-actions-hash](./docs/rules/no-actions-hash.md) | disallow the actions hash in components, controllers, and routes |
+| :white_check_mark: | [no-classic-classes](./docs/rules/no-classic-classes.md) | disallow "classic" classes in favor of native JS classes |
 | :white_check_mark::wrench: | [no-ember-super-in-es-classes](./docs/rules/no-ember-super-in-es-classes.md) | disallow use of `this._super` in ES class methods |
 | :white_check_mark: | [no-empty-glimmer-component-classes](./docs/rules/no-empty-glimmer-component-classes.md) | disallow empty backing classes for Glimmer components |
 
diff --git a/docs/rules/classic-decorator-hooks.md b/docs/rules/classic-decorator-hooks.md
index b32ac6e1..bba95702 100644
--- a/docs/rules/classic-decorator-hooks.md
+++ b/docs/rules/classic-decorator-hooks.md
@@ -1,6 +1,6 @@
 # classic-decorator-hooks
 
-:car: The `"extends": "plugin:ember/octane"` property in a configuration file enables this rule.
+:car: The `"extends": "plugin:ember/recommended"` property in a configuration file enables this rule.
 
 Use the correct lifecycle hooks in classic and non-classic classes. Classic
 classes should use `init`, and non-classic classes should use `constructor`.
diff --git a/docs/rules/classic-decorator-no-classic-methods.md b/docs/rules/classic-decorator-no-classic-methods.md
index c8be84f3..ec5f3716 100644
--- a/docs/rules/classic-decorator-no-classic-methods.md
+++ b/docs/rules/classic-decorator-no-classic-methods.md
@@ -1,6 +1,6 @@
 # classic-decorator-no-classic-methods
 
-:car: The `"extends": "plugin:ember/octane"` property in a configuration file enables this rule.
+:car: The `"extends": "plugin:ember/recommended"` property in a configuration file enables this rule.
 
 Disallows the use of the following classic API methods within a class:
 
diff --git a/docs/rules/no-actions-hash.md b/docs/rules/no-actions-hash.md
index c3b8ae4c..5837f3d8 100644
--- a/docs/rules/no-actions-hash.md
+++ b/docs/rules/no-actions-hash.md
@@ -1,6 +1,6 @@
 # no-actions-hash
 
-:car: The `"extends": "plugin:ember/octane"` property in a configuration file enables this rule.
+:car: The `"extends": "plugin:ember/recommended"` property in a configuration file enables this rule.
 
 Disallows the actions hash in components and controllers.
 
diff --git a/docs/rules/no-classic-classes.md b/docs/rules/no-classic-classes.md
index f0fb8a0e..d944af2e 100644
--- a/docs/rules/no-classic-classes.md
+++ b/docs/rules/no-classic-classes.md
@@ -1,6 +1,6 @@
 # no-classic-classes
 
-:car: The `"extends": "plugin:ember/octane"` property in a configuration file enables this rule.
+:car: The `"extends": "plugin:ember/recommended"` property in a configuration file enables this rule.
 
 Disallow "classic" classes in favor of native JS classes.
 
diff --git a/docs/rules/no-classic-components.md b/docs/rules/no-classic-components.md
index 2ef9c9b4..8e581b75 100644
--- a/docs/rules/no-classic-components.md
+++ b/docs/rules/no-classic-components.md
@@ -1,6 +1,6 @@
 # no-classic-components
 
-:car: The `"extends": "plugin:ember/octane"` property in a configuration file enables this rule.
+:car: The `"extends": "plugin:ember/recommended"` property in a configuration file enables this rule.
 
 This rule aims to enforce Glimmer components instead of classic ones. We should migrate to Glimmer components because
 they have few advantages:
diff --git a/docs/rules/no-component-lifecycle-hooks.md b/docs/rules/no-component-lifecycle-hooks.md
index de652d9b..86cd8cac 100644
--- a/docs/rules/no-component-lifecycle-hooks.md
+++ b/docs/rules/no-component-lifecycle-hooks.md
@@ -1,6 +1,6 @@
 # no-component-lifecycle-hooks
 
-:car: The `"extends": "plugin:ember/octane"` property in a configuration file enables this rule.
+:car: The `"extends": "plugin:ember/recommended"` property in a configuration file enables this rule.
 
 Disallow usage of "classic" ember component lifecycle hooks.
 
diff --git a/docs/rules/no-computed-properties-in-native-classes.md b/docs/rules/no-computed-properties-in-native-classes.md
index e4b46db0..c4402ede 100644
--- a/docs/rules/no-computed-properties-in-native-classes.md
+++ b/docs/rules/no-computed-properties-in-native-classes.md
@@ -1,6 +1,6 @@
 # no-computed-properties-in-native-classes
 
-:car: The `"extends": "plugin:ember/octane"` property in a configuration file enables this rule.
+:car: The `"extends": "plugin:ember/recommended"` property in a configuration file enables this rule.
 
 Since the beginning of Ember's existence, Computed Properties (CPs) have been used to accomplish reactivity in the framework. With Ember Octane, new features were introduced including Glimmer components, native JavaScript classes and Tracked Properties. With Ember Octane's new programming model, CPs are no longer needed. If using native JavaScript classes, Tracked Properties should be used instead as they give us the same benefit of CPs but with less boilerplate and more flexibility.
 
diff --git a/docs/rules/require-tagless-components.md b/docs/rules/require-tagless-components.md
index 7e4bc8f4..5bbc36bf 100644
--- a/docs/rules/require-tagless-components.md
+++ b/docs/rules/require-tagless-components.md
@@ -1,6 +1,6 @@
 # require-tagless-components
 
-:car: The `"extends": "plugin:ember/octane"` property in a configuration file enables this rule.
+:car: The `"extends": "plugin:ember/recommended"` property in a configuration file enables this rule.
 
 Disallows using the wrapper element of a component.
 
diff --git a/lib/config/octane.js b/lib/config/octane.js
deleted file mode 100644
index 4e4c0233..00000000
--- a/lib/config/octane.js
+++ /dev/null
@@ -1,6 +0,0 @@
-const rules = require('../octane-rules.js');
-
-module.exports = {
-  extends: require.resolve('./recommended.js'),
-  rules,
-};
diff --git a/lib/index.js b/lib/index.js
index 085edaf2..9876af05 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -86,7 +86,6 @@ module.exports = {
   },
   configs: {
     base: require('./config/base'),
-    octane: require('./config/octane'),
     recommended: require('./config/recommended'),
   },
   utils: {
diff --git a/lib/octane-rules.js b/lib/octane-rules.js
deleted file mode 100644
index e7beeb2a..00000000
--- a/lib/octane-rules.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * IMPORTANT!
- * This file has been automatically generated.
- * In order to update its content based on rules'
- * definitions, execute "npm run update"
- */
-module.exports = {
-  "ember/classic-decorator-hooks": "error",
-  "ember/classic-decorator-no-classic-methods": "error",
-  "ember/no-actions-hash": "error",
-  "ember/no-classic-classes": "error",
-  "ember/no-classic-components": "error",
-  "ember/no-component-lifecycle-hooks": "error",
-  "ember/no-computed-properties-in-native-classes": "error",
-  "ember/require-tagless-components": "error"
-}
\ No newline at end of file
diff --git a/lib/recommended-rules.js b/lib/recommended-rules.js
index 559f8988..a9e7f4d8 100644
--- a/lib/recommended-rules.js
+++ b/lib/recommended-rules.js
@@ -7,14 +7,21 @@
 module.exports = {
   "ember/avoid-leaking-state-in-ember-objects": "error",
   "ember/avoid-using-needs-in-controllers": "error",
+  "ember/classic-decorator-hooks": "error",
+  "ember/classic-decorator-no-classic-methods": "error",
   "ember/closure-actions": "error",
   "ember/jquery-ember-run": "error",
   "ember/new-module-imports": "error",
+  "ember/no-actions-hash": "error",
   "ember/no-arrow-function-computed-properties": "error",
   "ember/no-assignment-of-untracked-properties-used-in-tracking-contexts": "error",
   "ember/no-attrs-in-components": "error",
   "ember/no-attrs-snapshot": "error",
   "ember/no-capital-letters-in-routes": "error",
+  "ember/no-classic-classes": "error",
+  "ember/no-classic-components": "error",
+  "ember/no-component-lifecycle-hooks": "error",
+  "ember/no-computed-properties-in-native-classes": "error",
   "ember/no-controller-access-in-routes": "error",
   "ember/no-deeply-nested-dependent-keys-with-each": "error",
   "ember/no-duplicate-dependent-keys": "error",
@@ -58,6 +65,7 @@ module.exports = {
   "ember/require-computed-property-dependencies": "error",
   "ember/require-return-from-computed": "error",
   "ember/require-super-in-lifecycle-hooks": "error",
+  "ember/require-tagless-components": "error",
   "ember/require-valid-css-selector-in-test-helpers": "error",
   "ember/routes-segments-snake-case": "error",
   "ember/use-brace-expansion": "error",
diff --git a/lib/rules/classic-decorator-hooks.js b/lib/rules/classic-decorator-hooks.js
index c5544c5c..9478d99e 100644
--- a/lib/rules/classic-decorator-hooks.js
+++ b/lib/rules/classic-decorator-hooks.js
@@ -15,8 +15,7 @@ module.exports = {
     docs: {
       description: 'enforce using correct hooks for both classic and non-classic classes',
       category: 'Ember Octane',
-      recommended: false,
-      octane: true,
+      recommended: true,
       url:
         'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/classic-decorator-hooks.md',
     },
diff --git a/lib/rules/classic-decorator-no-classic-methods.js b/lib/rules/classic-decorator-no-classic-methods.js
index 916aae92..5251ea2c 100644
--- a/lib/rules/classic-decorator-no-classic-methods.js
+++ b/lib/rules/classic-decorator-no-classic-methods.js
@@ -27,8 +27,7 @@ module.exports = {
       description:
         "disallow usage of classic APIs such as `get`/`set` in classes that aren't explicitly decorated with `@classic`",
       category: 'Ember Octane',
-      recommended: false,
-      octane: true,
+      recommended: true,
       url:
         'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/classic-decorator-no-classic-methods.md',
     },
diff --git a/lib/rules/no-actions-hash.js b/lib/rules/no-actions-hash.js
index 8a5097f0..c38d6056 100644
--- a/lib/rules/no-actions-hash.js
+++ b/lib/rules/no-actions-hash.js
@@ -10,8 +10,7 @@ module.exports = {
     docs: {
       description: 'disallow the actions hash in components, controllers, and routes',
       category: 'Ember Octane',
-      recommended: false,
-      octane: true,
+      recommended: true,
       url:
         'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/no-actions-hash.md',
     },
diff --git a/lib/rules/no-classic-classes.js b/lib/rules/no-classic-classes.js
index b0d4cad5..9f28631f 100644
--- a/lib/rules/no-classic-classes.js
+++ b/lib/rules/no-classic-classes.js
@@ -39,8 +39,7 @@ module.exports = {
     docs: {
       description: 'disallow "classic" classes in favor of native JS classes',
       category: 'Ember Octane',
-      recommended: false,
-      octane: true,
+      recommended: true,
       url:
         'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/no-classic-classes.md',
     },
diff --git a/lib/rules/no-classic-components.js b/lib/rules/no-classic-components.js
index 90ba308d..1e8aafd2 100644
--- a/lib/rules/no-classic-components.js
+++ b/lib/rules/no-classic-components.js
@@ -12,8 +12,7 @@ module.exports = {
     docs: {
       description: 'enforce using Glimmer components',
       category: 'Components',
-      recommended: false,
-      octane: true,
+      recommended: true,
       url:
         'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/no-classic-components.md',
     },
diff --git a/lib/rules/no-component-lifecycle-hooks.js b/lib/rules/no-component-lifecycle-hooks.js
index 8a3b5383..b090fe9c 100644
--- a/lib/rules/no-component-lifecycle-hooks.js
+++ b/lib/rules/no-component-lifecycle-hooks.js
@@ -19,8 +19,7 @@ module.exports = {
       description:
         'disallow usage of "classic" ember component lifecycle hooks. Render modifiers or custom functional modifiers should be used instead.',
       category: 'Components',
-      recommended: false,
-      octane: true,
+      recommended: true,
       url:
         'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/no-component-lifecycle-hooks.md',
     },
diff --git a/lib/rules/no-computed-properties-in-native-classes.js b/lib/rules/no-computed-properties-in-native-classes.js
index e81f66c0..ff5a73de 100644
--- a/lib/rules/no-computed-properties-in-native-classes.js
+++ b/lib/rules/no-computed-properties-in-native-classes.js
@@ -32,8 +32,7 @@ module.exports = {
     docs: {
       description: 'disallow using computed properties in native classes',
       category: 'Computed Properties',
-      recommended: false,
-      octane: true,
+      recommended: true,
       url:
         'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/no-computed-properties-in-native-classes.md',
     },
diff --git a/lib/rules/require-tagless-components.js b/lib/rules/require-tagless-components.js
index d57e5f99..cdbdcb6b 100644
--- a/lib/rules/require-tagless-components.js
+++ b/lib/rules/require-tagless-components.js
@@ -92,8 +92,7 @@ module.exports = {
     docs: {
       description: 'disallow using the wrapper element of a component',
       category: 'Components',
-      recommended: false,
-      octane: true,
+      recommended: true,
       url:
         'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/require-tagless-components.md',
     },
diff --git a/scripts/update-rules.js b/scripts/update-rules.js
index b0903f5d..a831b2eb 100644
--- a/scripts/update-rules.js
+++ b/scripts/update-rules.js
@@ -21,13 +21,11 @@ const path = require('path');
 const root = path.resolve(__dirname, '../lib/rules');
 const readmeFile = path.resolve(__dirname, '../README.md');
 const recommendedRulesFile = path.resolve(__dirname, '../lib/recommended-rules.js');
-const octaneRulesFile = path.resolve(__dirname, '../lib/octane-rules.js');
 const tablePlaceholder = /<!--RULES_TABLE_START-->[\S\s]*<!--RULES_TABLE_END-->/;
 const readmeContent = fs.readFileSync(readmeFile, 'utf8');
 
 const STAR = ':white_check_mark:';
 const PEN = ':wrench:';
-const OCTANE = ':car:';
 
 const rules = fs
   .readdirSync(root)
@@ -58,9 +56,7 @@ ${rules
   .map((entry) => {
     const name = entry[0];
     const meta = entry[1].meta;
-    const mark = `${meta.docs.recommended ? STAR : ''}${meta.docs.octane ? OCTANE : ''}${
-      meta.fixable ? PEN : ''
-    }`;
+    const mark = `${meta.docs.recommended ? STAR : ''}${meta.fixable ? PEN : ''}`;
     const link = `[${name}](./docs/rules/${name}.md)`;
     const description = meta.docs.description || '(no description)';
     return `| ${mark} | ${link} | ${description} |`;
@@ -119,22 +115,3 @@ fs.writeFileSync(
 );
 
 fs.writeFileSync(recommendedRulesFile, recommendedRulesContent);
-
-const octaneRules = rules.reduce((obj, entry) => {
-  const name = `ember/${entry[0]}`;
-  const octane = entry[1].meta.docs.octane;
-  if (octane) {
-    obj[name] = 'error'; // eslint-disable-line no-param-reassign
-  }
-  return obj;
-}, {});
-
-const octaneRulesContent = `/*
- * IMPORTANT!
- * This file has been automatically generated.
- * In order to update its content based on rules'
- * definitions, execute "npm run update"
- */
-module.exports = ${JSON.stringify(octaneRules, null, 2)}`;
-
-fs.writeFileSync(octaneRulesFile, octaneRulesContent);


Test patch:
diff --git a/tests/__snapshots__/recommended.js.snap b/tests/__snapshots__/recommended.js.snap
index a43c403a..09bec395 100644
--- a/tests/__snapshots__/recommended.js.snap
+++ b/tests/__snapshots__/recommended.js.snap
@@ -4,14 +4,21 @@ exports[`recommended rules has the right list 1`] = `
 Array [
   "avoid-leaking-state-in-ember-objects",
   "avoid-using-needs-in-controllers",
+  "classic-decorator-hooks",
+  "classic-decorator-no-classic-methods",
   "closure-actions",
   "jquery-ember-run",
   "new-module-imports",
+  "no-actions-hash",
   "no-arrow-function-computed-properties",
   "no-assignment-of-untracked-properties-used-in-tracking-contexts",
   "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-deeply-nested-dependent-keys-with-each",
   "no-duplicate-dependent-keys",
@@ -55,6 +62,7 @@ Array [
   "require-computed-property-dependencies",
   "require-return-from-computed",
   "require-super-in-lifecycle-hooks",
+  "require-tagless-components",
   "require-valid-css-selector-in-test-helpers",
   "routes-segments-snake-case",
   "use-brace-expansion",
diff --git a/tests/plugin-exports.js b/tests/plugin-exports.js
index c6610a93..0be3376e 100644
--- a/tests/plugin-exports.js
+++ b/tests/plugin-exports.js
@@ -5,7 +5,6 @@ const ember = require('../lib/utils/ember');
 const utils = require('../lib/utils/utils');
 const base = require('../lib/config/base.js');
 const recommended = require('../lib/config/recommended.js');
-const octane = require('../lib/config/octane.js');
 
 describe('plugin exports', () => {
   describe('utils', () => {
@@ -16,7 +15,7 @@ describe('plugin exports', () => {
 
   describe('configs', () => {
     it('has the right configurations', () => {
-      expect(plugin.configs).toStrictEqual({ base, recommended, octane });
+      expect(plugin.configs).toStrictEqual({ base, recommended });
     });
   });
 });
diff --git a/tests/rule-setup.js b/tests/rule-setup.js
index aab17499..90cbaf16 100644
--- a/tests/rule-setup.js
+++ b/tests/rule-setup.js
@@ -4,14 +4,12 @@ const { readdirSync, readFileSync } = require('fs');
 const path = require('path');
 const rules = require('../lib').rules;
 const recommendedRules = require('../lib/recommended-rules.js');
-const octaneRules = require('../lib/octane-rules.js');
 const { flat } = require('../lib/utils/javascript');
 
 const RULE_NAMES = Object.keys(rules);
 const RECOMMENDED_RULE_NAMES = Object.keys(recommendedRules).map((name) =>
   name.replace('ember/', '')
 );
-const OCTANE_RULE_NAMES = Object.keys(octaneRules).map((name) => name.replace('ember/', ''));
 
 function getAllNamedOptions(jsonSchema) {
   if (!jsonSchema) {
@@ -51,11 +49,6 @@ describe('rules setup is correct', function () {
     expect(RECOMMENDED_RULE_NAMES).toStrictEqual(recommendedRuleNamesFromMeta);
   });
 
-  it('should list all octane rules in the octane rules file', function () {
-    const octaneRuleNamesFromMeta = RULE_NAMES.filter((key) => rules[key].meta.docs.octane);
-    expect(OCTANE_RULE_NAMES).toStrictEqual(octaneRuleNamesFromMeta);
-  });
-
   it('should have tests for all rules', function () {
     const filePath = path.join(__dirname, '..', 'tests', 'lib', 'rules');
     const files = readdirSync(filePath);
@@ -98,8 +91,6 @@ describe('rules setup is correct', function () {
         ':wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.',
       configRecommended:
         ':white_check_mark: The `"extends": "plugin:ember/recommended"` property in a configuration file enables this rule.',
-      configOctane:
-        ':car: The `"extends": "plugin:ember/octane"` property in a configuration file enables this rule.',
     };
 
     RULE_NAMES.forEach((ruleName) => {
@@ -139,11 +130,6 @@ describe('rules setup is correct', function () {
           } else {
             unexpectedNotices.push('configRecommended');
           }
-          if (rule.meta.docs.octane) {
-            expectedNotices.push('configOctane');
-          } else {
-            unexpectedNotices.push('configOctane');
-          }
           if (rule.meta.fixable) {
             expectedNotices.push('fixable');
           } else {