|
| 1 | +jest.mock('vuepress-plugin-a') |
| 2 | +jest.mock('@org/vuepress-plugin-a') |
| 3 | + |
| 4 | +const { |
| 5 | + resolvePlugin, |
| 6 | + resolveScopePackage |
| 7 | +} = require('../../lib/plugin-api/util') |
| 8 | + |
| 9 | +// const Plugin = require('../../lib/plugin-api/index') |
| 10 | + |
| 11 | +describe('resolvePlugin', () => { |
| 12 | + test('should resolve scope packages correctly', () => { |
| 13 | + const pkg1 = resolveScopePackage('@vuepress/plugin-a') |
| 14 | + expect(pkg1.org).toBe('vuepress') |
| 15 | + expect(pkg1.name).toBe('plugin-a') |
| 16 | + const pkg2 = resolveScopePackage('vuepress/plugin-a') |
| 17 | + expect(pkg2).toBe(null) |
| 18 | + const pkg3 = resolveScopePackage('vuepress-plugin-a') |
| 19 | + expect(pkg3).toBe(null) |
| 20 | + }) |
| 21 | + |
| 22 | + test('shoould return raw when function or object is given', () => { |
| 23 | + const plugin1 = () => {} |
| 24 | + const plugin2 = {} |
| 25 | + expect(resolvePlugin(plugin1)).toBe(plugin1) |
| 26 | + expect(resolvePlugin(plugin2)).toBe(plugin2) |
| 27 | + }) |
| 28 | + |
| 29 | + // https://jestjs.io/docs/en/manual-mocks#mocking-node-modules |
| 30 | + test('shoould resolve fullname correctly', () => { |
| 31 | + expect(resolvePlugin('vuepress-plugin-a')).toBe('vuepress-plugin-a') |
| 32 | + expect(resolvePlugin('@org/vuepress-plugin-a')).toBe('@org/vuepress-plugin-a') |
| 33 | + }) |
| 34 | + |
| 35 | + // https://jestjs.io/docs/en/manual-mocks#mocking-node-modules |
| 36 | + test('shoould resolve shortcut correctly', () => { |
| 37 | + expect(resolvePlugin('a')).toBe('vuepress-plugin-a') |
| 38 | + expect(resolvePlugin('@org/a')).toBe('@org/vuepress-plugin-a') |
| 39 | + // special shortcut for vuepress |
| 40 | + expect(resolvePlugin('@vuepress/a')).toBe('@vuepress/plugin-a') |
| 41 | + }) |
| 42 | +}) |
0 commit comments