forked from vuejs/vue-cli
/
pluginResolution.spec.js
65 lines (56 loc) · 2.66 KB
/
pluginResolution.spec.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
const {
isPlugin,
isOfficialPlugin,
toShortPluginId,
resolvePluginId,
matchesPluginId
} = require('../lib/pluginResolution')
test('isPlugin', () => {
expect(isPlugin('foobar')).toBe(false)
expect(isPlugin('@vue/cli-plugin-foo')).toBe(true)
expect(isPlugin('vue-cli-plugin-foo')).toBe(true)
expect(isPlugin('@foo/vue-cli-plugin-foo')).toBe(true)
expect(isPlugin('@foo.bar/vue-cli-plugin-foo')).toBe(true)
})
test('isOfficialPlugin', () => {
expect(isOfficialPlugin('@vue/foo')).toBe(false)
expect(isOfficialPlugin('@vue/cli-plugin-foo')).toBe(true)
expect(isOfficialPlugin('vue-cli-plugin-foo')).toBe(false)
expect(isOfficialPlugin('@foo/vue-cli-plugin-foo')).toBe(false)
expect(isOfficialPlugin('@foo.bar/vue-cli-plugin-foo')).toBe(false)
})
test('toShortPluginId', () => {
expect(toShortPluginId('@vue/cli-plugin-foo')).toBe('foo')
expect(toShortPluginId('vue-cli-plugin-foo')).toBe('foo')
expect(toShortPluginId('@foo/vue-cli-plugin-foo')).toBe('foo')
expect(toShortPluginId('@foo.bar/vue-cli-plugin-foo')).toBe('foo')
})
test('resolvePluginId', () => {
// already full
expect(resolvePluginId('@vue/cli-plugin-foo')).toBe('@vue/cli-plugin-foo')
expect(resolvePluginId('vue-cli-plugin-foo')).toBe('vue-cli-plugin-foo')
expect(resolvePluginId('@foo/vue-cli-plugin-foo')).toBe('@foo/vue-cli-plugin-foo')
expect(resolvePluginId('@foo.bar/vue-cli-plugin-foo')).toBe('@foo.bar/vue-cli-plugin-foo')
// scoped short
expect(resolvePluginId('@vue/foo')).toBe('@vue/cli-plugin-foo')
expect(resolvePluginId('@foo/foo')).toBe('@foo/vue-cli-plugin-foo')
expect(resolvePluginId('@foo.bar/foo')).toBe('@foo.bar/vue-cli-plugin-foo')
// default short
expect(resolvePluginId('foo')).toBe('vue-cli-plugin-foo')
})
test('matchesPluginId', () => {
// full
expect(matchesPluginId('@vue/cli-plugin-foo', '@vue/cli-plugin-foo')).toBe(true)
expect(matchesPluginId('vue-cli-plugin-foo', 'vue-cli-plugin-foo')).toBe(true)
expect(matchesPluginId('@foo/vue-cli-plugin-foo', '@foo/vue-cli-plugin-foo')).toBe(true)
expect(matchesPluginId('@foo.bar/vue-cli-plugin-foo', '@foo.bar/vue-cli-plugin-foo')).toBe(true)
// short without scope
expect(matchesPluginId('foo', '@vue/cli-plugin-foo')).toBe(true)
expect(matchesPluginId('foo', 'vue-cli-plugin-foo')).toBe(true)
expect(matchesPluginId('foo', '@foo/vue-cli-plugin-foo')).toBe(true)
expect(matchesPluginId('foo', '@foo.bar/vue-cli-plugin-foo')).toBe(true)
// short with scope
expect(matchesPluginId('@vue/foo', '@vue/cli-plugin-foo')).toBe(true)
expect(matchesPluginId('@foo/foo', '@foo/vue-cli-plugin-foo')).toBe(true)
expect(matchesPluginId('@foo.bar/foo', '@foo.bar/vue-cli-plugin-foo')).toBe(true)
})