Skip to content

Commit bb66b7b

Browse files
authored
Refactor test cases that use CLIEngine. (#113)
1 parent 7614169 commit bb66b7b

File tree

2 files changed

+341
-532
lines changed

2 files changed

+341
-532
lines changed

tests/lib/rules/no-html-messages.ts

+51-73
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
/**
22
* @author kazuya kawaguchi (a.k.a. kazupon)
33
*/
4-
import { CLIEngine, RuleTester } from 'eslint'
5-
import { resolve, join } from 'path'
4+
import { RuleTester } from 'eslint'
5+
import { join } from 'path'
66
import fs from 'fs'
7-
import assert from 'assert'
87
import rule = require('../../../lib/rules/no-html-messages')
9-
import plugin = require('../../../lib/index')
10-
import { baseConfigPath } from '../test-utils'
8+
import { testOnFixtures } from '../test-utils'
119

1210
new RuleTester({
1311
parser: require.resolve('vue-eslint-parser'),
@@ -101,84 +99,64 @@ new RuleTester({
10199
})
102100

103101
describe('no-html-messages with fixtures', () => {
104-
const cwd = join(__dirname, '../../fixtures/no-html-messages')
105-
let originalCwd: string
106-
107-
before(() => {
108-
originalCwd = process.cwd()
109-
process.chdir(cwd)
110-
})
111-
112-
after(() => {
113-
process.chdir(originalCwd)
114-
})
102+
const cwdRoot = join(__dirname, '../../fixtures/no-html-messages')
115103

116104
describe('valid', () => {
117105
it('should be not detected html messages', () => {
118-
const linter = new CLIEngine({
119-
cwd,
120-
baseConfig: {
121-
extends: [baseConfigPath],
122-
settings: {
123-
'vue-i18n': {
124-
localeDir: `./valid/*.{json,yaml,yml}`
125-
}
126-
}
127-
},
128-
useEslintrc: false,
129-
parserOptions: {
130-
ecmaVersion: 2015
131-
},
132-
rules: {
133-
'@intlify/vue-i18n/no-html-messages': 'error'
106+
testOnFixtures(
107+
{
108+
cwd: join(cwdRoot, './valid'),
109+
localeDir: `*.{json,yaml,yml}`,
110+
ruleName: '@intlify/vue-i18n/no-html-messages'
134111
},
135-
extensions: ['.js', '.vue', '.json', '.yaml', '.yml']
136-
})
137-
138-
linter.addPlugin('@intlify/vue-i18n', plugin)
139-
const messages = linter.executeOnFiles(['.'])
140-
assert.equal(messages.errorCount, 0)
112+
{}
113+
)
141114
})
142115
})
143116

144117
describe('invalid', () => {
145118
it('should be detected html messages', () => {
146-
const linter = new CLIEngine({
147-
cwd,
148-
baseConfig: {
149-
extends: [baseConfigPath],
150-
settings: {
151-
'vue-i18n': {
152-
localeDir: `./invalid/*.{json,yaml,yml}`
153-
}
154-
}
155-
},
156-
useEslintrc: false,
157-
parserOptions: {
158-
ecmaVersion: 2015
159-
},
160-
rules: {
161-
'@intlify/vue-i18n/no-html-messages': 'error'
119+
testOnFixtures(
120+
{
121+
cwd: join(cwdRoot, './invalid'),
122+
localeDir: `*.{json,yaml,yml}`,
123+
ruleName: '@intlify/vue-i18n/no-html-messages'
162124
},
163-
extensions: ['.js', '.vue', '.json', '.yaml', '.yml']
164-
})
165-
linter.addPlugin('@intlify/vue-i18n', plugin)
166-
167-
const messages = linter.executeOnFiles(['.'])
168-
assert.equal(messages.errorCount, 6)
169-
170-
function checkRuleId(path: string) {
171-
const fullPath = resolve(__dirname, path)
172-
const result = messages.results.find(
173-
result => result.filePath === fullPath
174-
)!
175-
assert.equal(result.messages.length, 3)
176-
result.messages.forEach(message => {
177-
assert.equal(message.ruleId, '@intlify/vue-i18n/no-html-messages')
178-
})
179-
}
180-
checkRuleId('../../fixtures/no-html-messages/invalid/en.json')
181-
checkRuleId('../../fixtures/no-html-messages/invalid/en.yaml')
125+
{
126+
'en.json': {
127+
errors: [
128+
{
129+
line: 3,
130+
message: 'used HTML localization message'
131+
},
132+
{
133+
line: 5,
134+
message: 'used HTML localization message'
135+
},
136+
{
137+
line: 6,
138+
message: 'used HTML localization message'
139+
}
140+
]
141+
},
142+
'en.yaml': {
143+
errors: [
144+
{
145+
line: 2,
146+
message: 'used HTML localization message'
147+
},
148+
{
149+
line: 4,
150+
message: 'used HTML localization message'
151+
},
152+
{
153+
line: 5,
154+
message: 'used HTML localization message'
155+
}
156+
]
157+
}
158+
}
159+
)
182160
})
183161
})
184162
})

0 commit comments

Comments
 (0)