Files
pnpm/patching/plugin-commands-patching/test/getEditDirPath.test.ts
Zoltan Kochan 5d5818e44f style: enforce node: protocol for builtin imports (#10951)
Add n/prefer-node-protocol rule and autofix all bare builtin imports
to use the node: prefix. Simplify the simple-import-sort builtins
pattern to just ^node: since all imports now use the prefix.
2026-03-13 07:59:51 +01:00

39 lines
1.5 KiB
TypeScript

import path from 'node:path'
import { getEditDirPath } from '../src/getEditDirPath.js'
test('getEditDirPath() returns path to pkg@version inside node_modules/.pnpm_patches', () => {
expect(getEditDirPath('pkg', {
alias: 'pkg',
bareSpecifier: '0.1.2',
}, { modulesDir: 'node_modules' })).toBe(path.join('node_modules', '.pnpm_patches', 'pkg@0.1.2'))
})
test('getEditDirPath() returns path to pkg@version inside .pnpm_patches inside specified modules dir', () => {
expect(getEditDirPath('pkg', {
alias: 'pkg',
bareSpecifier: '0.1.2',
}, {
modulesDir: 'user-defined-modules-dir',
})).toBe(path.join('user-defined-modules-dir', '.pnpm_patches', 'pkg@0.1.2'))
})
test('getEditDirPath() returns valid path even if bareSpecifier contains special characters', () => {
expect(getEditDirPath('pkg', {
alias: 'pkg',
bareSpecifier: 'https://codeload.github.com/zkochan/hi/tar.gz',
}, { modulesDir: 'node_modules' })).toBe(path.join('node_modules', '.pnpm_patches', 'pkg@https+codeload.github.com+zkochan+hi+tar.gz'))
})
test('getEditDirPath() returns path with name of alias if bareSpecifier is not available', () => {
expect(getEditDirPath('pkg', {
alias: 'resolved-pkg',
}, { modulesDir: 'node_modules' })).toBe(path.join('node_modules', '.pnpm_patches', 'resolved-pkg'))
})
test('getEditDirPath() returns path with name of param if alias is not available', () => {
expect(getEditDirPath('pkg', {
bareSpecifier: '0.1.2',
}, { modulesDir: 'node_modules' })).toBe(path.join('node_modules', '.pnpm_patches', 'pkg'))
})