Skip to content

Commit 660a061

Browse files
committed
catch outdated vue-router dependency
1 parent 76e2e15 commit 660a061

File tree

3 files changed

+98
-1
lines changed

3 files changed

+98
-1
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
'use strict'
2+
3+
var chalk = require('chalk')
4+
5+
module.exports = {
6+
pattern: /("vue-router"\s*:\s*)"[^\d"]*?[^2]\.\d+\.\d+"/,
7+
warning: function (match, preVersion) {
8+
return {
9+
reason: 'If you are using pre-2.0 Vue Router through NPM, you have to update it in your package.json file',
10+
fix: (
11+
'Replace ' + chalk.red(match) + ' with ' +
12+
chalk.green(
13+
preVersion + '"^2.0.0"'
14+
) +
15+
', then run: npm install'
16+
),
17+
docsHash: ''
18+
}
19+
}
20+
}
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
'use strict'
2+
3+
const check = createRuleChecker('vue-router/vue-router-dependency')
4+
5+
describe('Rule: vue-router-dependency', () => {
6+
it('does not match an empty line', () => {
7+
const warning = check('')
8+
expect(warning).toBe(null)
9+
})
10+
11+
it('does not match "^2.0.0"', () => {
12+
const warning = check(`
13+
"vue-router": "^2.0.0"
14+
`)
15+
expect(warning).toBe(null)
16+
})
17+
18+
it('does not match "^2.0.0" with comma', () => {
19+
const warning = check(`
20+
"vue-router": "^2.0.0",
21+
`)
22+
expect(warning).toBe(null)
23+
})
24+
25+
it('does not match "^2.0.1"', () => {
26+
const warning = check(`
27+
"vue-router": "^2.0.1"
28+
`)
29+
expect(warning).toBe(null)
30+
})
31+
32+
it('does not match "2.0.0"', () => {
33+
const warning = check(`
34+
"vue-router": "2.0.0"
35+
`)
36+
expect(warning).toBe(null)
37+
})
38+
39+
it('does not match vuex "1.0.0"', () => {
40+
const warning = check(`
41+
"vuex": "1.0.0"
42+
`)
43+
expect(warning).toBe(null)
44+
})
45+
46+
it('matches "^0.7.13"', () => {
47+
const warning = check(`
48+
"vue-router": "^0.7.13"
49+
`)
50+
expect(warning).toBeTruthy()
51+
expect(warning.fix).toBe('Replace "vue-router": "^0.7.13" with "vue-router": "^2.0.0", then run: npm install')
52+
})
53+
54+
it('matches "^0.7.13" with comma', () => {
55+
const warning = check(`
56+
"vue-router": "^0.7.13",
57+
`)
58+
expect(warning).toBeTruthy()
59+
expect(warning.fix).toBe('Replace "vue-router": "^0.7.13" with "vue-router": "^2.0.0", then run: npm install')
60+
})
61+
62+
it('matches "0.7.13"', () => {
63+
const warning = check(`
64+
"vue-router": "0.7.13",
65+
`)
66+
expect(warning).toBeTruthy()
67+
expect(warning.fix).toBe('Replace "vue-router": "0.7.13" with "vue-router": "^2.0.0", then run: npm install')
68+
})
69+
70+
it('matches "0.7.0"', () => {
71+
const warning = check(`
72+
"vue-router": "0.7.0",
73+
`)
74+
expect(warning).toBeTruthy()
75+
expect(warning.fix).toBe('Replace "vue-router": "0.7.0" with "vue-router": "^2.0.0", then run: npm install')
76+
})
77+
})

rules/vue/vue-dependency.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
const check = createRuleChecker('vue/vue-dependency')
44

5-
fdescribe('Rule: vue-dependency', () => {
5+
describe('Rule: vue-dependency', () => {
66
it('does not match an empty line', () => {
77
const warning = check('')
88
expect(warning).toBe(null)

0 commit comments

Comments
 (0)