Skip to content

Commit 42c6d7d

Browse files
committed
chore: migrate to RuleTester v9
1 parent a980b1f commit 42c6d7d

File tree

9 files changed

+138
-215
lines changed

9 files changed

+138
-215
lines changed

tests/lib/rules/assertion-before-screenshot.js

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,30 +6,29 @@ const RuleTester = require('eslint').RuleTester
66
const ruleTester = new RuleTester()
77

88
const errors = [{ messageId: 'unexpected' }]
9-
const parserOptions = { ecmaVersion: 6 }
109

1110
ruleTester.run('assertion-before-screenshot', rule, {
1211
valid: [
13-
{ code: 'cy.get(".some-element"); cy.screenshot();', parserOptions },
14-
{ code: 'cy.get(".some-element").should("exist").screenshot();', parserOptions },
15-
{ code: 'cy.get(".some-element").should("exist").screenshot().click()', parserOptions, errors },
16-
{ code: 'cy.get(".some-element").should("exist"); if(true) cy.screenshot();', parserOptions },
17-
{ code: 'if(true) { cy.get(".some-element").should("exist"); cy.screenshot(); }', parserOptions },
18-
{ code: 'cy.get(".some-element").should("exist"); if(true) { cy.screenshot(); }', parserOptions },
19-
{ code: 'const a = () => { cy.get(".some-element").should("exist"); cy.screenshot(); }', parserOptions, errors },
20-
{ code: 'cy.get(".some-element").should("exist").and("be.visible"); cy.screenshot();', parserOptions },
21-
{ code: 'cy.get(".some-element").contains("Text"); cy.screenshot();', parserOptions },
12+
{ code: 'cy.get(".some-element"); cy.screenshot();' },
13+
{ code: 'cy.get(".some-element").should("exist").screenshot();' },
14+
{ code: 'cy.get(".some-element").should("exist").screenshot().click()' },
15+
{ code: 'cy.get(".some-element").should("exist"); if(true) cy.screenshot();' },
16+
{ code: 'if(true) { cy.get(".some-element").should("exist"); cy.screenshot(); }' },
17+
{ code: 'cy.get(".some-element").should("exist"); if(true) { cy.screenshot(); }' },
18+
{ code: 'const a = () => { cy.get(".some-element").should("exist"); cy.screenshot(); }' },
19+
{ code: 'cy.get(".some-element").should("exist").and("be.visible"); cy.screenshot();' },
20+
{ code: 'cy.get(".some-element").contains("Text"); cy.screenshot();' },
2221
],
2322

2423
invalid: [
25-
{ code: 'cy.screenshot()', parserOptions, errors },
26-
{ code: 'cy.visit("somepage"); cy.screenshot();', parserOptions, errors },
27-
{ code: 'cy.custom(); cy.screenshot()', parserOptions, errors },
28-
{ code: 'cy.get(".some-element").click(); cy.screenshot()', parserOptions, errors },
29-
{ code: 'cy.get(".some-element").click().screenshot()', parserOptions, errors },
30-
{ code: 'if(true) { cy.get(".some-element").click(); cy.screenshot(); }', parserOptions, errors },
31-
{ code: 'cy.get(".some-element").click(); if(true) { cy.screenshot(); }', parserOptions, errors },
32-
{ code: 'cy.get(".some-element"); function a() { cy.screenshot(); }', parserOptions, errors },
33-
{ code: 'cy.get(".some-element"); const a = () => { cy.screenshot(); }', parserOptions, errors },
24+
{ code: 'cy.screenshot()', errors },
25+
{ code: 'cy.visit("somepage"); cy.screenshot();', errors },
26+
{ code: 'cy.custom(); cy.screenshot()', errors },
27+
{ code: 'cy.get(".some-element").click(); cy.screenshot()', errors },
28+
{ code: 'cy.get(".some-element").click().screenshot()', errors },
29+
{ code: 'if(true) { cy.get(".some-element").click(); cy.screenshot(); }', errors },
30+
{ code: 'cy.get(".some-element").click(); if(true) { cy.screenshot(); }', errors },
31+
{ code: 'cy.get(".some-element"); function a() { cy.screenshot(); }', errors },
32+
{ code: 'cy.get(".some-element"); const a = () => { cy.screenshot(); }', errors },
3433
],
3534
})

tests/lib/rules/no-assigning-return-values.js

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,33 +6,32 @@ const RuleTester = require('eslint').RuleTester
66
const ruleTester = new RuleTester()
77

88
const errors = [{ messageId: 'unexpected' }]
9-
const parserOptions = { ecmaVersion: 6 }
109

1110
ruleTester.run('no-assigning-return-values', rule, {
1211
valid: [
13-
{ code: 'var foo = true;', parserOptions },
14-
{ code: 'let foo = true;', parserOptions },
15-
{ code: 'const foo = true;', parserOptions },
16-
{ code: 'const foo = bar();', parserOptions },
17-
{ code: 'const foo = bar().baz();', parserOptions },
18-
{ code: 'const spy = cy.spy();', parserOptions },
19-
{ code: 'const spy = cy.spy().as();', parserOptions },
20-
{ code: 'const stub = cy.stub();', parserOptions },
21-
{ code: 'const result = cy.now();', parserOptions },
22-
{ code: 'const state = cy.state();', parserOptions },
23-
{ code: 'cy.get("foo");', parserOptions },
24-
{ code: 'cy.contains("foo").click();', parserOptions },
12+
{ code: 'var foo = true;' },
13+
{ code: 'let foo = true;' },
14+
{ code: 'const foo = true;' },
15+
{ code: 'const foo = bar();' },
16+
{ code: 'const foo = bar().baz();' },
17+
{ code: 'const spy = cy.spy();' },
18+
{ code: 'const spy = cy.spy().as();' },
19+
{ code: 'const stub = cy.stub();' },
20+
{ code: 'const result = cy.now();' },
21+
{ code: 'const state = cy.state();' },
22+
{ code: 'cy.get("foo");' },
23+
{ code: 'cy.contains("foo").click();' },
2524
],
2625

2726
invalid: [
28-
{ code: 'let a = cy.get("foo")', parserOptions, errors },
29-
{ code: 'const a = cy.get("foo")', parserOptions, errors },
30-
{ code: 'var a = cy.get("foo")', parserOptions, errors },
27+
{ code: 'let a = cy.get("foo")', errors },
28+
{ code: 'const a = cy.get("foo")', errors },
29+
{ code: 'var a = cy.get("foo")', errors },
3130

32-
{ code: 'let a = cy.contains("foo")', parserOptions, errors },
33-
{ code: 'let a = cy.window()', parserOptions, errors },
34-
{ code: 'let a = cy.wait("@something")', parserOptions, errors },
31+
{ code: 'let a = cy.contains("foo")', errors },
32+
{ code: 'let a = cy.window()', errors },
33+
{ code: 'let a = cy.wait("@something")', errors },
3534

36-
{ code: 'let a = cy.contains("foo").click()', parserOptions, errors },
35+
{ code: 'let a = cy.contains("foo").click()', errors },
3736
],
3837
})

tests/lib/rules/no-async-before.js

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,18 @@ const RuleTester = require('eslint').RuleTester
66
const ruleTester = new RuleTester()
77

88
const errors = [{ messageId: 'unexpected' }]
9-
// async functions are an ES2017 feature
10-
const parserOptions = { ecmaVersion: 8 }
119

1210
ruleTester.run('no-async-before', rule, {
1311
valid: [
14-
{ code: 'before(\'a before case\', () => { cy.get(\'.someClass\'); })', parserOptions },
15-
{ code: 'before(\'a before case\', async () => { await somethingAsync(); })', parserOptions },
16-
{ code: 'async function nonTestFn () { return await somethingAsync(); }', parserOptions },
17-
{ code: 'const nonTestArrowFn = async () => { await somethingAsync(); }', parserOptions },
12+
{ code: 'before(\'a before case\', () => { cy.get(\'.someClass\'); })' },
13+
{ code: 'before(\'a before case\', async () => { await somethingAsync(); })' },
14+
{ code: 'async function nonTestFn () { return await somethingAsync(); }' },
15+
{ code: 'const nonTestArrowFn = async () => { await somethingAsync(); }' },
1816
],
1917
invalid: [
20-
{ code: 'before(\'a test case\', async () => { cy.get(\'.someClass\'); })', parserOptions, errors },
21-
{ code: 'beforeEach(\'a test case\', async () => { cy.get(\'.someClass\'); })', parserOptions, errors },
22-
{ code: 'before(\'a test case\', async function () { cy.get(\'.someClass\'); })', parserOptions, errors },
23-
{ code: 'beforeEach(\'a test case\', async function () { cy.get(\'.someClass\'); })', parserOptions, errors },
18+
{ code: 'before(\'a test case\', async () => { cy.get(\'.someClass\'); })', errors },
19+
{ code: 'beforeEach(\'a test case\', async () => { cy.get(\'.someClass\'); })', errors },
20+
{ code: 'before(\'a test case\', async function () { cy.get(\'.someClass\'); })', errors },
21+
{ code: 'beforeEach(\'a test case\', async function () { cy.get(\'.someClass\'); })', errors },
2422
],
2523
})

tests/lib/rules/no-async-tests.js

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,18 @@ const RuleTester = require('eslint').RuleTester
66
const ruleTester = new RuleTester()
77

88
const errors = [{ messageId: 'unexpected' }]
9-
// async functions are an ES2017 feature
10-
const parserOptions = { ecmaVersion: 8 }
119

1210
ruleTester.run('no-async-tests', rule, {
1311
valid: [
14-
{ code: 'it(\'a test case\', () => { cy.get(\'.someClass\'); })', parserOptions },
15-
{ code: 'it(\'a test case\', async () => { await somethingAsync(); })', parserOptions },
16-
{ code: 'async function nonTestFn () { return await somethingAsync(); }', parserOptions },
17-
{ code: 'const nonTestArrowFn = async () => { await somethingAsync(); }', parserOptions },
12+
{ code: 'it(\'a test case\', () => { cy.get(\'.someClass\'); })' },
13+
{ code: 'it(\'a test case\', async () => { await somethingAsync(); })' },
14+
{ code: 'async function nonTestFn () { return await somethingAsync(); }' },
15+
{ code: 'const nonTestArrowFn = async () => { await somethingAsync(); }' },
1816
],
1917
invalid: [
20-
{ code: 'it(\'a test case\', async () => { cy.get(\'.someClass\'); })', parserOptions, errors },
21-
{ code: 'test(\'a test case\', async () => { cy.get(\'.someClass\'); })', parserOptions, errors },
22-
{ code: 'it(\'a test case\', async function () { cy.get(\'.someClass\'); })', parserOptions, errors },
23-
{ code: 'test(\'a test case\', async function () { cy.get(\'.someClass\'); })', parserOptions, errors },
18+
{ code: 'it(\'a test case\', async () => { cy.get(\'.someClass\'); })', errors },
19+
{ code: 'test(\'a test case\', async () => { cy.get(\'.someClass\'); })', errors },
20+
{ code: 'it(\'a test case\', async function () { cy.get(\'.someClass\'); })', errors },
21+
{ code: 'test(\'a test case\', async function () { cy.get(\'.someClass\'); })', errors },
2422
],
2523
})

tests/lib/rules/no-force.js

Lines changed: 24 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,39 @@
11
'use strict'
22

3-
//------------------------------------------------------------------------------
4-
// Requirements
5-
//------------------------------------------------------------------------------
6-
73
const rule = require('../../../lib/rules/no-force')
8-
94
const RuleTester = require('eslint').RuleTester
105

11-
const errors = [{ messageId: 'unexpected' }]
12-
const parserOptions = { ecmaVersion: 2018 }
6+
const ruleTester = new RuleTester()
137

14-
//------------------------------------------------------------------------------
15-
// Tests
16-
//------------------------------------------------------------------------------
17-
18-
let ruleTester = new RuleTester()
8+
const errors = [{ messageId: 'unexpected' }]
199

2010
ruleTester.run('no-force', rule, {
2111

2212
valid: [
23-
{ code: `cy.get('button').click()`, parserOptions },
24-
{ code: `cy.get('button').click({multiple: true})`, parserOptions },
25-
{ code: `cy.get('button').dblclick()`, parserOptions },
26-
{ code: `cy.get('input').type('somth')`, parserOptions },
27-
{ code: `cy.get('input').type('somth', {anyoption: true})`, parserOptions },
28-
{ code: `cy.get('input').trigger('click', {anyoption: true})`, parserOptions },
29-
{ code: `cy.get('input').rightclick({anyoption: true})`, parserOptions },
30-
{ code: `cy.get('input').check()`, parserOptions },
31-
{ code: `cy.get('input').select()`, parserOptions },
32-
{ code: `cy.get('input').focus()`, parserOptions },
33-
{ code: `cy.document().trigger("keydown", { ...event })`, parserOptions },
13+
{ code: `cy.get('button').click()` },
14+
{ code: `cy.get('button').click({multiple: true})` },
15+
{ code: `cy.get('button').dblclick()` },
16+
{ code: `cy.get('input').type('somth')` },
17+
{ code: `cy.get('input').type('somth', {anyoption: true})` },
18+
{ code: `cy.get('input').trigger('click', {anyoption: true})` },
19+
{ code: `cy.get('input').rightclick({anyoption: true})` },
20+
{ code: `cy.get('input').check()` },
21+
{ code: `cy.get('input').select()` },
22+
{ code: `cy.get('input').focus()` },
23+
{ code: `cy.document().trigger("keydown", { ...event })` },
3424
],
3525

3626
invalid: [
37-
{ code: `cy.get('button').click({force: true})`, parserOptions, errors },
38-
{ code: `cy.get('button').dblclick({force: true})`, parserOptions, errors },
39-
{ code: `cy.get('input').type('somth', {force: true})`, parserOptions, errors },
40-
{ code: `cy.get('div').find('.foo').type('somth', {force: true})`, parserOptions, errors },
41-
{ code: `cy.get('div').find('.foo').find('.bar').click({force: true})`, parserOptions, errors },
42-
{ code: `cy.get('div').find('.foo').find('.bar').trigger('change', {force: true})`, parserOptions, errors },
43-
{ code: `cy.get('input').trigger('click', {force: true})`, parserOptions, errors },
44-
{ code: `cy.get('input').rightclick({force: true})`, parserOptions, errors },
45-
{ code: `cy.get('input').check({force: true})`, parserOptions, errors },
46-
{ code: `cy.get('input').select({force: true})`, parserOptions, errors },
47-
{ code: `cy.get('input').focus({force: true})`, parserOptions, errors },
27+
{ code: `cy.get('button').click({force: true})`, errors },
28+
{ code: `cy.get('button').dblclick({force: true})`, errors },
29+
{ code: `cy.get('input').type('somth', {force: true})`, errors },
30+
{ code: `cy.get('div').find('.foo').type('somth', {force: true})`, errors },
31+
{ code: `cy.get('div').find('.foo').find('.bar').click({force: true})`, errors },
32+
{ code: `cy.get('div').find('.foo').find('.bar').trigger('change', {force: true})`, errors },
33+
{ code: `cy.get('input').trigger('click', {force: true})`, errors },
34+
{ code: `cy.get('input').rightclick({force: true})`, errors },
35+
{ code: `cy.get('input').check({force: true})`, errors },
36+
{ code: `cy.get('input').select({force: true})`, errors },
37+
{ code: `cy.get('input').focus({force: true})`, errors },
4838
],
4939
})

tests/lib/rules/no-pause.js

Lines changed: 9 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,23 @@
11
'use strict'
22

3-
//------------------------------------------------------------------------------
4-
// Requirements
5-
//------------------------------------------------------------------------------
6-
73
const rule = require('../../../lib/rules/no-pause')
8-
94
const RuleTester = require('eslint').RuleTester
105

11-
const errors = [{ messageId: 'unexpected' }]
12-
const parserOptions = { ecmaVersion: 2018 }
13-
14-
//------------------------------------------------------------------------------
15-
// Tests
16-
//------------------------------------------------------------------------------
17-
186
const ruleTester = new RuleTester()
197

8+
const errors = [{ messageId: 'unexpected' }]
9+
2010
ruleTester.run('no-pause', rule, {
2111

2212
valid: [
23-
{ code: `pause()`, parserOptions },
24-
{ code: `cy.get('button').dblclick()`, parserOptions },
13+
{ code: `pause()` },
14+
{ code: `cy.get('button').dblclick()` },
2515
],
26-
16+
2717
invalid: [
28-
{ code: `cy.pause()`, parserOptions, errors },
29-
{ code: `cy.pause({ log: false })`, parserOptions, errors },
30-
{ code: `cy.get('button').pause()`, parserOptions, errors },
31-
{
32-
code: `cy.get('a').should('have.attr', 'href').and('match', /dashboard/).pause()`,
33-
parserOptions,
34-
errors
35-
}
18+
{ code: `cy.pause()`, errors },
19+
{ code: `cy.pause({ log: false })`, errors },
20+
{ code: `cy.get('button').pause()`, errors },
21+
{ code: `cy.get('a').should('have.attr', 'href').and('match', /dashboard/).pause()`, errors }
3622
],
3723
})

tests/lib/rules/no-unnecessary-waiting.js

Lines changed: 31 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -6,66 +6,42 @@ const RuleTester = require('eslint').RuleTester
66
const ruleTester = new RuleTester()
77

88
const errors = [{ messageId: 'unexpected' }]
9-
const parserOptions = { ecmaVersion: 6, sourceType: 'module' }
109

1110
ruleTester.run('no-unnecessary-waiting', rule, {
1211
valid: [
13-
{ code: 'foo.wait(10)', parserOptions },
14-
15-
{ code: 'cy.wait("@someRequest")', parserOptions },
16-
{ code: 'cy.wait("@someRequest", { log: false })', parserOptions },
17-
{ code: 'cy.wait("@someRequest").then((xhr) => xhr)', parserOptions },
18-
{ code: 'cy.wait(["@someRequest", "@anotherRequest"])', parserOptions },
19-
20-
{ code: 'cy.clock(5000)', parserOptions },
21-
{ code: 'cy.scrollTo(0, 10)', parserOptions },
22-
{ code: 'cy.tick(500)', parserOptions },
23-
24-
{ code: 'const someRequest="@someRequest"; cy.wait(someRequest)', parserOptions, errors },
25-
{ code: 'function customWait (alias = "@someRequest") { cy.wait(alias) }', parserOptions, errors },
26-
{ code: 'const customWait = (alias = "@someRequest") => { cy.wait(alias) }', parserOptions, errors },
27-
{ code: 'function customWait (ms) { cy.wait(ms) }', parserOptions, errors },
28-
{ code: 'const customWait = (ms) => { cy.wait(ms) }', parserOptions, errors },
29-
30-
{ code: 'import BAR_BAZ from "bar-baz"; cy.wait(BAR_BAZ)', parserOptions },
31-
{ code: 'import { FOO_BAR } from "foo-bar"; cy.wait(FOO_BAR)', parserOptions },
32-
{ code: 'import * as wildcard from "wildcard"; cy.wait(wildcard.value)', parserOptions },
33-
{ code: 'import { NAME as OTHER_NAME } from "rename"; cy.wait(OTHER_NAME)', parserOptions },
34-
35-
// disable the eslint rule
36-
{
37-
code: `
38-
cy.wait(100); // eslint-disable-line no-unnecessary-waiting
39-
`,
40-
parserOptions,
41-
},
42-
{
43-
code: `
44-
/* eslint-disable-next-line no-unnecessary-waiting */
45-
cy.wait(100)
46-
`,
47-
parserOptions,
48-
},
49-
{
50-
code: `
51-
/* eslint-disable no-unnecessary-waiting */
52-
cy.wait(100)
53-
/* eslint-enable no-unnecessary-waiting */
54-
`,
55-
parserOptions,
56-
},
12+
{ code: 'foo.wait(10)' },
13+
14+
{ code: 'cy.wait("@someRequest")' },
15+
{ code: 'cy.wait("@someRequest", { log: false })' },
16+
{ code: 'cy.wait("@someRequest").then((xhr) => xhr)' },
17+
{ code: 'cy.wait(["@someRequest", "@anotherRequest"])' },
18+
19+
{ code: 'cy.clock(5000)' },
20+
{ code: 'cy.scrollTo(0, 10)' },
21+
{ code: 'cy.tick(500)' },
22+
23+
{ code: 'const someRequest="@someRequest"; cy.wait(someRequest)' },
24+
{ code: 'function customWait (alias = "@someRequest") { cy.wait(alias) }' },
25+
{ code: 'const customWait = (alias = "@someRequest") => { cy.wait(alias) }' },
26+
{ code: 'function customWait (ms) { cy.wait(ms) }' },
27+
{ code: 'const customWait = (ms) => { cy.wait(ms) }' },
28+
29+
{ code: 'import BAR_BAZ from "bar-baz"; cy.wait(BAR_BAZ)' },
30+
{ code: 'import { FOO_BAR } from "foo-bar"; cy.wait(FOO_BAR)' },
31+
{ code: 'import * as wildcard from "wildcard"; cy.wait(wildcard.value)' },
32+
{ code: 'import { NAME as OTHER_NAME } from "rename"; cy.wait(OTHER_NAME)' },
5733
],
5834

5935
invalid: [
60-
{ code: 'cy.wait(0)', parserOptions, errors },
61-
{ code: 'cy.wait(100)', parserOptions, errors },
62-
{ code: 'cy.wait(5000)', parserOptions, errors },
63-
{ code: 'const someNumber=500; cy.wait(someNumber)', parserOptions, errors },
64-
{ code: 'function customWait (ms = 1) { cy.wait(ms) }', parserOptions, errors },
65-
{ code: 'const customWait = (ms = 1) => { cy.wait(ms) }', parserOptions, errors },
66-
67-
{ code: 'cy.get(".some-element").wait(10)', parserOptions, errors },
68-
{ code: 'cy.get(".some-element").contains("foo").wait(10)', parserOptions, errors },
69-
{ code: 'const customWait = (ms = 1) => { cy.get(".some-element").wait(ms) }', parserOptions, errors },
36+
{ code: 'cy.wait(0)', errors },
37+
{ code: 'cy.wait(100)', errors },
38+
{ code: 'cy.wait(5000)', errors },
39+
{ code: 'const someNumber=500; cy.wait(someNumber)', errors },
40+
{ code: 'function customWait (ms = 1) { cy.wait(ms) }', errors },
41+
{ code: 'const customWait = (ms = 1) => { cy.wait(ms) }', errors },
42+
43+
{ code: 'cy.get(".some-element").wait(10)', errors },
44+
{ code: 'cy.get(".some-element").contains("foo").wait(10)', errors },
45+
{ code: 'const customWait = (ms = 1) => { cy.get(".some-element").wait(ms) }', errors },
7046
],
7147
})

0 commit comments

Comments
 (0)