mirror of
https://github.com/pnpm/pnpm.git
synced 2026-01-02 12:08:14 -05:00
98 lines
2.2 KiB
TypeScript
98 lines
2.2 KiB
TypeScript
import path from 'path'
|
|
import { prepareEmpty, preparePackages } from '@pnpm/prepare'
|
|
import {
|
|
install,
|
|
type MutatedProject,
|
|
mutateModules,
|
|
} from '@pnpm/core'
|
|
import { type ProjectRootDir } from '@pnpm/types'
|
|
import { sync as rimraf } from '@zkochan/rimraf'
|
|
import { testDefaults } from '../utils'
|
|
|
|
test('installing to a custom modules directory', async () => {
|
|
const project = prepareEmpty()
|
|
|
|
await install({
|
|
dependencies: {
|
|
'is-positive': '1.0.0',
|
|
},
|
|
}, testDefaults({ modulesDir: 'pnpm_modules' }))
|
|
|
|
project.has('is-positive', 'pnpm_modules')
|
|
|
|
rimraf('pnpm_modules')
|
|
project.hasNot('is-positive', 'pnpm_modules')
|
|
|
|
await install({
|
|
dependencies: {
|
|
'is-positive': '1.0.0',
|
|
},
|
|
}, testDefaults({ frozenLockfile: true, modulesDir: 'pnpm_modules' }))
|
|
|
|
project.has('is-positive', 'pnpm_modules')
|
|
})
|
|
|
|
test('using different custom modules directory for every project', async () => {
|
|
const projects = preparePackages([
|
|
{
|
|
location: 'project-1',
|
|
package: {
|
|
name: 'project-1',
|
|
|
|
dependencies: { 'is-positive': '1.0.0' },
|
|
},
|
|
},
|
|
{
|
|
location: 'project-2',
|
|
package: {
|
|
name: 'project-2',
|
|
|
|
dependencies: { 'is-positive': '1.0.0' },
|
|
},
|
|
},
|
|
])
|
|
|
|
const importers: MutatedProject[] = [
|
|
{
|
|
mutation: 'install',
|
|
rootDir: path.resolve('project-1') as ProjectRootDir,
|
|
},
|
|
{
|
|
mutation: 'install',
|
|
rootDir: path.resolve('project-2') as ProjectRootDir,
|
|
},
|
|
]
|
|
const allProjects = [
|
|
{
|
|
buildIndex: 0,
|
|
manifest: {
|
|
name: 'project-1',
|
|
version: '1.0.0',
|
|
|
|
dependencies: {
|
|
'is-positive': '1.0.0',
|
|
},
|
|
},
|
|
modulesDir: 'modules_1',
|
|
rootDir: path.resolve('project-1') as ProjectRootDir,
|
|
},
|
|
{
|
|
buildIndex: 0,
|
|
manifest: {
|
|
name: 'project-2',
|
|
version: '1.0.0',
|
|
|
|
dependencies: {
|
|
'is-positive': '1.0.0',
|
|
},
|
|
},
|
|
modulesDir: 'modules_2',
|
|
rootDir: path.resolve('project-2') as ProjectRootDir,
|
|
},
|
|
]
|
|
await mutateModules(importers, testDefaults({ allProjects }))
|
|
|
|
projects['project-1'].has('is-positive', 'modules_1')
|
|
projects['project-2'].has('is-positive', 'modules_2')
|
|
})
|