Skip to content

Commit 2279857

Browse files
authored
chore: convert eslint-plugin-dev tests to typescript and vitest (#32813)
1 parent d5cc26d commit 2279857

File tree

8 files changed

+65
-55
lines changed

8 files changed

+65
-55
lines changed

guides/esm-migration.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ When migrating some of these projects away from the `ts-node` entry [see `@packa
8484

8585
- [x] cli ✅ **COMPLETED**
8686
- [x] npm/cypress-schematic ✅ **COMPLETED**
87-
- [ ] npm/eslint-plugin-dev
87+
- [x] npm/eslint-plugin-dev**COMPLETED**
8888
- [x] npm/grep ✅ **COMPLETED**
8989
- [x] npm/puppeteer ✅ **COMPLETED**
9090
- [x] npm/vite-dev-server ✅ **COMPLETED**

npm/eslint-plugin-dev/package.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"lint": "eslint --ext .js,json,.eslintrc .",
88
"lint-changed": "node ./lib/scripts/lint-changed",
99
"lint-fix": "npm run lint -- --fix",
10-
"test": "mocha"
10+
"test": "vitest"
1111
},
1212
"dependencies": {
1313
"bluebird": "3.5.5",
@@ -22,8 +22,7 @@
2222
"eslint-plugin-json-format": "^2.0.0",
2323
"eslint-plugin-mocha": "^8.2.0",
2424
"eslint-plugin-promise": "^4.2.1",
25-
"sinon": "^7.3.2",
26-
"sinon-chai": "^3.7.0"
25+
"vitest": "^3.2.4"
2726
},
2827
"peerDependencies": {
2928
"@babel/eslint-parser": "^7.28.0",

npm/eslint-plugin-dev/test/arrow-body-multiline-braces.spec.js renamed to npm/eslint-plugin-dev/test/arrow-body-multiline-braces.spec.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
const path = require('path')
2-
const eslint = require('eslint')
3-
const plugin = require('../lib')
4-
const _ = require('lodash')
5-
const { expect } = require('chai')
1+
import { describe, it, expect } from 'vitest'
2+
import path from 'path'
3+
import eslint from 'eslint'
4+
import plugin from '../lib'
5+
import _ from 'lodash'
66

77
const pluginName = '__plugin__'
88
const ESLint = eslint.ESLint
@@ -42,14 +42,14 @@ describe('arrow-body-multiline-braces', () => {
4242
fix: true,
4343
})
4444

45-
expect(result.output).to.contain('{')
45+
expect(result.output).toContain('{')
4646
})
4747

4848
it('lint oneline js', async () => {
4949
const filename = './fixtures/oneline.js'
5050
const result = await execute(filename, { fix: false })
5151

52-
expect(result.output).not.ok
53-
expect(result.errorCount).eq(0)
52+
expect(result.output).toBeUndefined()
53+
expect(result.errorCount).toBe(0)
5454
})
5555
})

npm/eslint-plugin-dev/test/no-only.spec.js renamed to npm/eslint-plugin-dev/test/no-only.spec.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
const path = require('path')
2-
const eslint = require('eslint')
3-
const plugin = require('..')
4-
const _ = require('lodash')
5-
const { expect } = require('chai')
1+
import { describe, it, expect } from 'vitest'
2+
import path from 'path'
3+
import eslint from 'eslint'
4+
import plugin from '../lib'
5+
import _ from 'lodash'
66

77
const ruleName = 'no-only'
88
const pluginName = '__plugin__'
@@ -43,11 +43,11 @@ describe('no-only', () => {
4343
fix: true,
4444
})
4545

46-
expect(result.errorCount).eq(3)
47-
expect(result.messages[0].message).to.contain('it')
48-
expect(result.messages[1].message).to.contain('describe')
49-
expect(result.messages[2].message).to.contain('context')
46+
expect(result.errorCount).toEqual(3)
47+
expect(result.messages[0].message).toContain('it')
48+
expect(result.messages[1].message).toContain('describe')
49+
expect(result.messages[2].message).toContain('context')
5050

51-
expect(result.output).not.exist
51+
expect(result.output).toBeUndefined()
5252
})
5353
})

npm/eslint-plugin-dev/test/no-return-before.spec.js renamed to npm/eslint-plugin-dev/test/no-return-before.spec.ts

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
const path = require('path')
2-
const eslint = require('eslint')
3-
const plugin = require('..')
4-
const _ = require('lodash')
5-
const { stripIndent } = require('common-tags')
6-
const { expect } = require('chai')
1+
import { describe, it, expect } from 'vitest'
2+
import path from 'path'
3+
import eslint from 'eslint'
4+
import plugin from '../lib'
5+
import _ from 'lodash'
6+
import { stripIndent } from 'common-tags'
77

88
const ruleName = 'no-return-before'
99
const pluginName = '__plugin__'
@@ -42,7 +42,7 @@ describe(ruleName, () => {
4242
const filename = './fixtures/no-return-before-pass.js'
4343
const result = await execute(filename)
4444

45-
expect(result.errorCount).equal(0)
45+
expect(result.errorCount).toEqual(0)
4646
})
4747

4848
it('fail', async () => {
@@ -51,15 +51,15 @@ describe(ruleName, () => {
5151
fix: false,
5252
})
5353

54-
expect(result.errorCount).equal(4)
55-
expect(result.messages[0].message).to.contain(`after 'describe'`)
54+
expect(result.errorCount).toEqual(4)
55+
expect(result.messages[0].message).toContain(`after 'describe'`)
5656
})
5757

5858
it('fix fail', async () => {
5959
const filename = './fixtures/no-return-before-fail.js'
6060
const result = await execute(filename)
6161

62-
expect(result.output).equal(`${stripIndent`
62+
expect(result.output).toEqual(`${stripIndent`
6363
describe('outer', ()=>{
6464
describe('some test', ()=>{
6565
context('some test', ()=>{
@@ -89,11 +89,11 @@ describe(ruleName, () => {
8989
},
9090
})
9191

92-
expect(result.errorCount).equal(1)
92+
expect(result.errorCount).toEqual(1)
9393

94-
expect(result.messages[0].message).to.contain('someFn')
94+
expect(result.messages[0].message).toContain('someFn')
9595

96-
expect(result.output).not.not.exist
96+
expect(result.output).toBeUndefined()
9797
})
9898
})
9999
})

npm/eslint-plugin-dev/test/skip-comment.spec.js renamed to npm/eslint-plugin-dev/test/skip-comment.spec.ts

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1-
const path = require('path')
2-
const eslint = require('eslint')
3-
const plugin = require('..')
4-
const _ = require('lodash')
5-
const { expect } = require('chai')
1+
import { describe, it, expect } from 'vitest'
2+
3+
import path from 'path'
4+
import eslint from 'eslint'
5+
import _ from 'lodash'
6+
7+
const plugin = require('../lib')
68

79
const ruleName = 'skip-comment'
810
const pluginName = '__plugin__'
@@ -43,7 +45,7 @@ describe('skip-comment', () => {
4345
fix: true,
4446
})
4547

46-
expect(result.errorCount).equal(0)
48+
expect(result.errorCount).toEqual(0)
4749
})
4850

4951
it('skip test without comment', async () => {
@@ -52,17 +54,17 @@ describe('skip-comment', () => {
5254
fix: true,
5355
})
5456

55-
expect(result.errorCount).equal(3)
57+
expect(result.errorCount).toEqual(3)
5658

57-
expect(result.messages[0].message).to.contain('it')
58-
expect(result.messages[0].message).to.contain('NOTE:')
59-
expect(result.messages[0].message).to.contain('TODO:')
60-
expect(result.messages[1].message).to.contain('describe')
61-
expect(result.messages[1].message).to.contain('NOTE:')
62-
expect(result.messages[2].message).to.contain('context')
63-
expect(result.messages[2].message).to.contain('NOTE:')
59+
expect(result.messages[0].message).toContain('it')
60+
expect(result.messages[0].message).toContain('NOTE:')
61+
expect(result.messages[0].message).toContain('TODO:')
62+
expect(result.messages[1].message).toContain('describe')
63+
expect(result.messages[1].message).toContain('NOTE:')
64+
expect(result.messages[2].message).toContain('context')
65+
expect(result.messages[2].message).toContain('NOTE:')
6466

65-
expect(result.output).not.not.exist
67+
expect(result.output).toBeUndefined()
6668
})
6769

6870
describe('config', () => {
@@ -81,12 +83,12 @@ describe('skip-comment', () => {
8183
},
8284
})
8385

84-
expect(result.errorCount).equal(1)
86+
expect(result.errorCount).toEqual(1)
8587

86-
expect(result.messages[0].message).to.contain('it')
87-
expect(result.messages[0].message).to.contain('FOOBAR:')
88+
expect(result.messages[0].message).toContain('it')
89+
expect(result.messages[0].message).toContain('FOOBAR:')
8890

89-
expect(result.output).not.exist
91+
expect(result.output).toBeUndefined()
9092
})
9193
})
9294
})
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { defineConfig } from 'vitest/config'
2+
3+
export default defineConfig({
4+
test: {
5+
include: ['test/**/*.spec.ts'],
6+
globals: true,
7+
environment: 'node',
8+
},
9+
})

yarn.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29617,7 +29617,7 @@ [email protected]:
2961729617
nise "^1.4.10"
2961829618
supports-color "^5.5.0"
2961929619

29620-
[email protected], sinon@^7.3.2:
29620+
2962129621
version "7.5.0"
2962229622
resolved "https://registry.yarnpkg.com/sinon/-/sinon-7.5.0.tgz#e9488ea466070ea908fd44a3d6478fd4923c67ec"
2962329623
integrity sha512-AoD0oJWerp0/rY9czP/D6hDTTUYGpObhZjMpd7Cl/A6+j0xBE+ayL/ldfggkBXUs0IkvIiM1ljM8+WkOc5k78Q==

0 commit comments

Comments
 (0)