Skip to content

eslint v9 - context.getScope is not a function - API change #924

Closed
@dylang

Description

@dylang

Have you read the Troubleshooting section?

Yes

Plugin version

v6.3.0

ESLint version

v9..9.0

Node.js version

20.16.0

package manager and version

yarn v1

Operating system

macOS

Bug description

Example error:

TypeError: context.getScope is not a function
Occurred while linting ./examples/example-web-frontend/src/hello-world.test.tsx:39
Rule: "testing-library/await-async-utils"

Steps to reproduce

run eslint in terminal or ide using eslint v9.9.0 and latest plugin.

Error output/screenshots

Rule: "testing-library/await-async-utils"
    at getInnermostFunctionScope (/project/node_modules/eslint-plugin-testing-library/dist/node-utils/index.js:205:71)
    at getInnermostReturningFunction (/project/node_modules/eslint-plugin-testing-library/dist/node-utils/index.js:331:27)
    at detectAsyncUtilWrapper (/project/node_modules/eslint-plugin-testing-library/dist/rules/await-async-utils.js:32:82)
    at CallExpression Identifier (/project/node_modules/eslint-plugin-testing-library/dist/rules/await-async-utils.js:86:21)
    at enhancedRuleInstructions.<computed> (/project/node_modules/eslint-plugin-testing-library/dist/create-testing-library-rule/detect-testing-library-utils.js:528:105)
    at ruleErrorHandler (/project/node_modules/eslint/lib/linter/linter.js:1124:48)
    at /Users/dgreene/medallia/magic-fun/node_modules/eslint/lib/linter/safe-emitter.js:45:58

ESLint configuration

Not the whole config, just the part regarding test files.
The project is using [email protected].

import globals from 'globals';
import testingLibrary from 'eslint-plugin-testing-library';
import { config } from 'typescript-eslint';
import jest from 'eslint-plugin-jest';
import jestDom from 'eslint-plugin-jest-dom';

export const testConfig = config({
  name: 'eslint-config-test-files',

  files: [
    '**/*.test.?(disabled.)?(m)[jt]s?(x)',
    '**/*.spec.?(m)[jt]s?(x)',
    '**/demo/**/*.[jt]s?(x)',
    '**/demo-sandbox/**/*.[jt]s?(x)',
    '**/__mocks__/**/*.[jt]s?(x)',
    '**/test/**/*.[jt]s?(x)',
    '**/fixtures/**/*.[jt]s?(x)'
  ],

  languageOptions: {
    globals: { ...globals.jest, jsdom: true }
  },

  plugins: {
    jest,
    'jest-dom': jestDom,
    'testing-library': testingLibrary
  },

  rules: {
    ...jest.configs['flat/recommended'].rules,
    ...jestDom.configs['flat/recommended'].rules,
    ...testingLibrary.configs['flat/react'].rules
  }
});

Rule(s) affected

Seems like all of them.

Anything else?

It seems that getScope was moved from context to sourceCode

https://eslint.org/docs/latest/use/troubleshooting/v9-rule-api-changes

https://eslint.org/blog/2023/09/preparing-custom-rules-eslint-v9/#context.getscope()

Do you want to submit a pull request to fix this bug?

No

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions