diff --git a/package.json b/package.json index 6881c899..ebc5b934 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ "jest-snapshot-serializer-ansi": "^1.0.0", "jest-watch-select-projects": "^2.0.0", "jsdom": "^16.4.0", - "kcd-scripts": "^11.0.0", + "kcd-scripts": "^12.2.0", "typescript": "^4.1.2" }, "eslintConfig": { @@ -64,6 +64,9 @@ "./node_modules/kcd-scripts/eslint.js", "plugin:import/typescript" ], + "parserOptions": { + "ecmaVersion": 2020 + }, "rules": { "@typescript-eslint/prefer-includes": "off", "import/prefer-default-export": "off", diff --git a/src/__tests__/fake-timers.js b/src/__tests__/fake-timers.js index b9700af3..7a034b1f 100644 --- a/src/__tests__/fake-timers.js +++ b/src/__tests__/fake-timers.js @@ -70,6 +70,7 @@ test('recursive timers do not cause issues', async () => { let recurse = true function startTimer() { setTimeout(() => { + // eslint-disable-next-line jest/no-conditional-in-test if (recurse) startTimer() }, 1) } diff --git a/src/__tests__/role.js b/src/__tests__/role.js index fb573bcd..08f0dc92 100644 --- a/src/__tests__/role.js +++ b/src/__tests__/role.js @@ -274,6 +274,7 @@ test('accessible name filter implements TextMatch', () => { expect( getByRole('heading', { name: (name, element) => { + // eslint-disable-next-line jest/no-conditional-in-test return element.nodeName === 'H2' && name === 'Your Signature' }, }), diff --git a/src/__tests__/wait-for-element-to-be-removed.js b/src/__tests__/wait-for-element-to-be-removed.js index 775b8b82..06b6dd26 100644 --- a/src/__tests__/wait-for-element-to-be-removed.js +++ b/src/__tests__/wait-for-element-to-be-removed.js @@ -98,6 +98,7 @@ test('rethrows non-testing-lib errors', () => { const error = new Error('my own error') return expect( waitForElementToBeRemoved(() => { + // eslint-disable-next-line jest/no-conditional-in-test if (throwIt) { throw error } diff --git a/src/__tests__/wait-for.js b/src/__tests__/wait-for.js index c1198e33..589df6f8 100644 --- a/src/__tests__/wait-for.js +++ b/src/__tests__/wait-for.js @@ -275,7 +275,7 @@ test('does not work after it resolves', async () => { context = 'act' try { const result = callback() - // eslint-disable-next-line jest/no-if + // eslint-disable-next-line jest/no-if, jest/no-conditional-in-test if (typeof result?.then === 'function') { const thenable = result return { @@ -319,6 +319,7 @@ test('does not work after it resolves', async () => { await waitFor( () => { + // eslint-disable-next-line jest/no-conditional-in-test if (data === null) { throw new Error('not found') } diff --git a/src/helpers.js b/src/helpers.js index ed356592..ab9c80ec 100644 --- a/src/helpers.js +++ b/src/helpers.js @@ -9,6 +9,8 @@ function jestFakeTimersAreEnabled() { // legacy timers setTimeout._isMockFunction === true || // modern timers + // Disabling linting rule - hasOwn is not available in Node 12/14 + // eslint-disable-next-line prefer-object-has-own Object.prototype.hasOwnProperty.call(setTimeout, 'clock') ) } diff --git a/src/queries/label-text.ts b/src/queries/label-text.ts index 39e766d5..33eaba6b 100644 --- a/src/queries/label-text.ts +++ b/src/queries/label-text.ts @@ -71,20 +71,23 @@ const queryAllByLabelText: AllByText = ( if ( matcher(label.content, label.formControl, text, matchNormalizer) && label.formControl - ) + ) { labelledElements.push(label.formControl) + } }) const labelsValue = labelList .filter(label => Boolean(label.content)) .map(label => label.content) if ( matcher(labelsValue.join(' '), labelledElement, text, matchNormalizer) - ) + ) { labelledElements.push(labelledElement) + } if (labelsValue.length > 1) { labelsValue.forEach((labelValue, index) => { - if (matcher(labelValue, labelledElement, text, matchNormalizer)) + if (matcher(labelValue, labelledElement, text, matchNormalizer)) { labelledElements.push(labelledElement) + } const labelsFiltered = [...labelsValue] labelsFiltered.splice(index, 1) @@ -97,8 +100,9 @@ const queryAllByLabelText: AllByText = ( text, matchNormalizer, ) - ) + ) { labelledElements.push(labelledElement) + } } }) }