Skip to content

Commit

Permalink
test: remove mock hack of require.reesolve
Browse files Browse the repository at this point in the history
  • Loading branch information
ulivz committed Apr 14, 2019
1 parent e02bc90 commit 1c8d8e4
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 20 deletions.
22 changes: 13 additions & 9 deletions packages/@vuepress/shared-utils/__tests__/moduleResolver.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ function loadMockModule (name: string) {
}

function resolveMockModule (name: string) {
return path.resolve(__dirname, `${MOCK_RELATIVE}/${name}`)
return require.resolve(path.resolve(__dirname, `${MOCK_RELATIVE}/${name}/`))
}

const fixturesDir = path.resolve(__dirname, 'fixtures')
Expand Down Expand Up @@ -110,12 +110,14 @@ describe('resolvePlugin', () => {
expect(resolved.fromDep).toBe(false)
})

test('from dep', () => {
describe('from dep', () => {
const asserts = getBaseAsserts('plugin')
for (const { input, output } of asserts) {
const [, name] = output
const resolved = resolvePlugin(input)
expect(resolved.entry).toBe(loadMockModule(name))
test(input, () => {
const [, name] = output
const resolved = resolvePlugin(input)
expect(resolved.entry).toBe(loadMockModule(name))
})
}
})

Expand All @@ -137,12 +139,14 @@ describe('resolvePlugin', () => {
describe('resolveTheme', () => {
const resolveTheme = themeResolver.resolve.bind(themeResolver)

test('from dep', () => {
describe('from dep', () => {
const asserts = getBaseAsserts('theme')
for (const { input, output } of asserts) {
const [, name] = output
const resolved = resolveTheme(input)
expect(resolved.entry).toBe(resolveMockModule(name))
test(input, () => {
const [, name] = output
const resolved = resolveTheme(input)
expect(resolved.entry).toBe(resolveMockModule(name))
})
}
})

Expand Down
14 changes: 3 additions & 11 deletions packages/@vuepress/shared-utils/src/moduleLoader.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
// Midified from https://github.com/vuejs/vue-cli/blob/dev/packages/@0vue/cli-shared-utils/lib/module.js

import semver from 'semver'
import path from 'upath'
import fs from 'fs-extra'
import env from './env'

function resolveFallback (request: string, options: { paths: string[] }) {
Expand Down Expand Up @@ -40,15 +38,9 @@ const resolve = semver.satisfies(process.version, '>=10.0.0')

export function resolveModule (request: string, context: string): string {
let resolvedPath
// TODO
// Temporary workaround for jest cannot resolve module path from '__mocks__'
// when using 'require.resolve'.
if (env.isTest && request !== '@vuepress/theme-default') {
resolvedPath = path.resolve(__dirname, '../../../../__mocks__', request)
if (!fs.existsSync(`${resolvedPath}.js`) && !fs.existsSync(`${resolvedPath}/index.js`)) {
throw new Error(`Cannot find module '${request}'`)
}
return resolvedPath

if (env.isTest) {
return require.resolve(request)
}

// module.paths is for globally install packages.
Expand Down

0 comments on commit 1c8d8e4

Please sign in to comment.