mirror of
https://github.com/pnpm/pnpm.git
synced 2026-03-30 04:52:04 -04:00
refactor!: createPeersFolderSuffix renamed to createPeersDirSuffix
This commit is contained in:
5
.changeset/few-bikes-add.md
Normal file
5
.changeset/few-bikes-add.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@pnpm/dependency-path": major
|
||||
---
|
||||
|
||||
createPeersFolderSuffix renamed to createPeersDirSuffix.
|
||||
@@ -118,7 +118,7 @@ function depPathToFilenameUnescaped (depPath: string) {
|
||||
return depPath.replace(':', '+')
|
||||
}
|
||||
|
||||
export function createPeersFolderSuffix (peers: Array<{ name: string, version: string }>): string {
|
||||
export function createPeersDirSuffix (peers: Array<{ name: string, version: string }>): string {
|
||||
const folderName = peers.map(({ name, version }) => `${name}@${version}`).sort().join(')(')
|
||||
return `(${folderName})`
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ import { addDependenciesToPackage, install, mutateModules, mutateModulesInSingle
|
||||
import { prepareEmpty, preparePackages } from '@pnpm/prepare'
|
||||
import { addDistTag, REGISTRY_MOCK_PORT } from '@pnpm/registry-mock'
|
||||
import rimraf from '@zkochan/rimraf'
|
||||
import { createPeersFolderSuffix } from '@pnpm/dependency-path'
|
||||
import { createPeersDirSuffix } from '@pnpm/dependency-path'
|
||||
import { testDefaults } from '../utils'
|
||||
|
||||
test('auto install non-optional peer dependencies', async () => {
|
||||
@@ -71,7 +71,7 @@ test('hoist a peer dependency in order to reuse it by other dependencies, when i
|
||||
const project = prepareEmpty()
|
||||
await addDependenciesToPackage({}, ['@pnpm/xyz-parent-parent-parent-parent', '@pnpm/xyz-parent-parent-with-xyz'], await testDefaults({ autoInstallPeers: true }))
|
||||
const lockfile = await project.readLockfile()
|
||||
const suffix = createPeersFolderSuffix([{ name: '@pnpm/x', version: '1.0.0' }, { name: '@pnpm/y', version: '1.0.0' }, { name: '@pnpm/z', version: '1.0.0' }])
|
||||
const suffix = createPeersDirSuffix([{ name: '@pnpm/x', version: '1.0.0' }, { name: '@pnpm/y', version: '1.0.0' }, { name: '@pnpm/z', version: '1.0.0' }])
|
||||
expect(Object.keys(lockfile.packages)).toStrictEqual([
|
||||
'/@pnpm/x@1.0.0',
|
||||
`/@pnpm/xyz-parent-parent-parent-parent@1.0.0${suffix}`,
|
||||
@@ -94,8 +94,8 @@ test('don\'t hoist a peer dependency when there is a root dependency by that nam
|
||||
`http://localhost:${REGISTRY_MOCK_PORT}/@pnpm/y/-/y-2.0.0.tgz`,
|
||||
], await testDefaults({ autoInstallPeers: true }))
|
||||
const lockfile = await project.readLockfile()
|
||||
const suffix1 = createPeersFolderSuffix([{ name: '@pnpm/y', version: '2.0.0' }, { name: '@pnpm/z', version: '1.0.0' }, { name: '@pnpm.e2e/peer-a', version: '1.0.0' }])
|
||||
const suffix2 = createPeersFolderSuffix([{ name: '@pnpm/x', version: '1.0.0' }, { name: '@pnpm/y', version: '1.0.0' }, { name: '@pnpm/z', version: '1.0.0' }])
|
||||
const suffix1 = createPeersDirSuffix([{ name: '@pnpm/y', version: '2.0.0' }, { name: '@pnpm/z', version: '1.0.0' }, { name: '@pnpm.e2e/peer-a', version: '1.0.0' }])
|
||||
const suffix2 = createPeersDirSuffix([{ name: '@pnpm/x', version: '1.0.0' }, { name: '@pnpm/y', version: '1.0.0' }, { name: '@pnpm/z', version: '1.0.0' }])
|
||||
expect(Object.keys(lockfile.packages).sort()).toStrictEqual([
|
||||
'/@pnpm.e2e/peer-a@1.0.0',
|
||||
'/@pnpm/x@1.0.0',
|
||||
@@ -121,7 +121,7 @@ test('don\'t auto-install a peer dependency, when that dependency is in the root
|
||||
`http://localhost:${REGISTRY_MOCK_PORT}/@pnpm/y/-/y-2.0.0.tgz`,
|
||||
], await testDefaults({ autoInstallPeers: true }))
|
||||
const lockfile = await project.readLockfile()
|
||||
const suffix = createPeersFolderSuffix([{ name: '@pnpm/y', version: '2.0.0' }, { name: '@pnpm/z', version: '1.0.0' }, { name: '@pnpm.e2e/peer-a', version: '1.0.0' }])
|
||||
const suffix = createPeersDirSuffix([{ name: '@pnpm/y', version: '2.0.0' }, { name: '@pnpm/z', version: '1.0.0' }, { name: '@pnpm.e2e/peer-a', version: '1.0.0' }])
|
||||
expect(Object.keys(lockfile.packages).sort()).toStrictEqual([
|
||||
`/@pnpm/xyz-parent-parent-parent-parent@1.0.0${suffix}`,
|
||||
`/@pnpm/xyz-parent-parent-parent@1.0.0${suffix}`,
|
||||
@@ -143,7 +143,7 @@ test('don\'t install the same missing peer dependency twice', async () => {
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(Object.keys(lockfile.packages).sort()).toStrictEqual([
|
||||
'/@pnpm/y@1.0.0',
|
||||
`/@pnpm.e2e/has-has-y-peer-peer@1.0.0${createPeersFolderSuffix([{ name: '@pnpm/y', version: '1.0.0' }, { name: '@pnpm.e2e/has-y-peer', version: '1.0.0' }])}`,
|
||||
`/@pnpm.e2e/has-has-y-peer-peer@1.0.0${createPeersDirSuffix([{ name: '@pnpm/y', version: '1.0.0' }, { name: '@pnpm.e2e/has-y-peer', version: '1.0.0' }])}`,
|
||||
'/@pnpm.e2e/has-y-peer@1.0.0(@pnpm/y@1.0.0)',
|
||||
].sort())
|
||||
})
|
||||
|
||||
@@ -3,7 +3,7 @@ import { prepareEmpty } from '@pnpm/prepare'
|
||||
import { addDistTag } from '@pnpm/registry-mock'
|
||||
import { addDependenciesToPackage } from '@pnpm/core'
|
||||
import deepRequireCwd from 'deep-require-cwd'
|
||||
import { createPeersFolderSuffix } from '@pnpm/dependency-path'
|
||||
import { createPeersDirSuffix } from '@pnpm/dependency-path'
|
||||
import exists from 'path-exists'
|
||||
import { testDefaults } from '../utils'
|
||||
|
||||
@@ -26,7 +26,7 @@ test('don\'t install the default peer dependency when it may be resolved from pa
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(Object.keys(lockfile.packages)).toStrictEqual([
|
||||
'/@pnpm.e2e/dep-of-pkg-with-1-dep@101.0.0',
|
||||
`/@pnpm.e2e/has-default-peer@1.0.0${createPeersFolderSuffix([{ name: '@pnpm.e2e/dep-of-pkg-with-1-dep', version: '101.0.0' }])}`,
|
||||
`/@pnpm.e2e/has-default-peer@1.0.0${createPeersDirSuffix([{ name: '@pnpm.e2e/dep-of-pkg-with-1-dep', version: '101.0.0' }])}`,
|
||||
])
|
||||
})
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ import {
|
||||
mutateModulesInSingleProject,
|
||||
} from '@pnpm/core'
|
||||
import rimraf from '@zkochan/rimraf'
|
||||
import { createPeersFolderSuffix } from '@pnpm/dependency-path'
|
||||
import { createPeersDirSuffix } from '@pnpm/dependency-path'
|
||||
import loadJsonFile from 'load-json-file'
|
||||
import exists from 'path-exists'
|
||||
import pick from 'ramda/src/pick'
|
||||
@@ -1475,8 +1475,8 @@ test('resolve a subdependency from the workspace and use it as a peer', async ()
|
||||
const project = assertProject(process.cwd())
|
||||
|
||||
const wantedLockfile = await project.readLockfile()
|
||||
const suffix1 = createPeersFolderSuffix([{ name: '@pnpm.e2e/peer-a', version: '@pnpm.e2e+peer-a' }, { name: '@pnpm.e2e/peer-b', version: '1.0.0' }])
|
||||
const suffix2 = createPeersFolderSuffix([{ name: '@pnpm.e2e/peer-a', version: '@pnpm.e2e+peer-a' }, { name: '@pnpm.e2e/peer-b', version: '1.0.0' }, { name: '@pnpm.e2e/peer-c', version: '1.0.1' }])
|
||||
const suffix1 = createPeersDirSuffix([{ name: '@pnpm.e2e/peer-a', version: '@pnpm.e2e+peer-a' }, { name: '@pnpm.e2e/peer-b', version: '1.0.0' }])
|
||||
const suffix2 = createPeersDirSuffix([{ name: '@pnpm.e2e/peer-a', version: '@pnpm.e2e+peer-a' }, { name: '@pnpm.e2e/peer-b', version: '1.0.0' }, { name: '@pnpm.e2e/peer-c', version: '1.0.1' }])
|
||||
expect(Object.keys(wantedLockfile.packages).sort()).toStrictEqual(
|
||||
[
|
||||
'/@pnpm.e2e/abc-grand-parent-with-c@1.0.0',
|
||||
|
||||
@@ -19,7 +19,7 @@ import rimraf from '@zkochan/rimraf'
|
||||
import exists from 'path-exists'
|
||||
import sinon from 'sinon'
|
||||
import deepRequireCwd from 'deep-require-cwd'
|
||||
import { createPeersFolderSuffix, depPathToFilename } from '@pnpm/dependency-path'
|
||||
import { createPeersDirSuffix, depPathToFilename } from '@pnpm/dependency-path'
|
||||
import { testDefaults } from '../utils'
|
||||
|
||||
const f = fixtures(__dirname)
|
||||
@@ -551,7 +551,7 @@ test('peer dependencies are linked when running one named installation', async (
|
||||
|
||||
const pkgVariation1 = path.join(
|
||||
'node_modules/.pnpm',
|
||||
depPathToFilename(`/@pnpm.e2e/abc@1.0.0${createPeersFolderSuffix([{ name: '@pnpm.e2e/peer-a', version: '1.0.0' }, { name: '@pnpm.e2e/peer-b', version: '1.0.0' }, { name: '@pnpm.e2e/peer-c', version: '1.0.0' }])}`),
|
||||
depPathToFilename(`/@pnpm.e2e/abc@1.0.0${createPeersDirSuffix([{ name: '@pnpm.e2e/peer-a', version: '1.0.0' }, { name: '@pnpm.e2e/peer-b', version: '1.0.0' }, { name: '@pnpm.e2e/peer-c', version: '1.0.0' }])}`),
|
||||
'node_modules'
|
||||
)
|
||||
await okFile(path.join(pkgVariation1, '@pnpm.e2e/abc'))
|
||||
@@ -562,7 +562,7 @@ test('peer dependencies are linked when running one named installation', async (
|
||||
|
||||
const pkgVariation2 = path.join(
|
||||
'node_modules/.pnpm',
|
||||
depPathToFilename(`/@pnpm.e2e/abc@1.0.0${createPeersFolderSuffix([{ name: '@pnpm.e2e/peer-a', version: '1.0.0' }, { name: '@pnpm.e2e/peer-b', version: '1.0.0' }, { name: '@pnpm.e2e/peer-c', version: '1.0.0' }])}`),
|
||||
depPathToFilename(`/@pnpm.e2e/abc@1.0.0${createPeersDirSuffix([{ name: '@pnpm.e2e/peer-a', version: '1.0.0' }, { name: '@pnpm.e2e/peer-b', version: '1.0.0' }, { name: '@pnpm.e2e/peer-c', version: '1.0.0' }])}`),
|
||||
'node_modules'
|
||||
)
|
||||
await okFile(path.join(pkgVariation2, '@pnpm.e2e/abc'))
|
||||
@@ -590,7 +590,7 @@ test('peer dependencies are linked when running two separate named installations
|
||||
|
||||
const pkgVariation1 = path.join(
|
||||
'node_modules/.pnpm',
|
||||
depPathToFilename(`/@pnpm.e2e/abc@1.0.0${createPeersFolderSuffix([{ name: '@pnpm.e2e/peer-a', version: '1.0.0' }, { name: '@pnpm.e2e/peer-b', version: '1.0.0' }, { name: '@pnpm.e2e/peer-c', version: '1.0.0' }])}`),
|
||||
depPathToFilename(`/@pnpm.e2e/abc@1.0.0${createPeersDirSuffix([{ name: '@pnpm.e2e/peer-a', version: '1.0.0' }, { name: '@pnpm.e2e/peer-b', version: '1.0.0' }, { name: '@pnpm.e2e/peer-c', version: '1.0.0' }])}`),
|
||||
'node_modules'
|
||||
)
|
||||
await okFile(path.join(pkgVariation1, '@pnpm.e2e/abc'))
|
||||
@@ -601,7 +601,7 @@ test('peer dependencies are linked when running two separate named installations
|
||||
|
||||
const pkgVariation2 = path.join(
|
||||
'node_modules/.pnpm',
|
||||
depPathToFilename(`/@pnpm.e2e/abc@1.0.0${createPeersFolderSuffix([{ name: '@pnpm.e2e/peer-a', version: '1.0.0' }, { name: '@pnpm.e2e/peer-b', version: '1.0.0' }, { name: '@pnpm.e2e/peer-c', version: '2.0.0' }])}`),
|
||||
depPathToFilename(`/@pnpm.e2e/abc@1.0.0${createPeersDirSuffix([{ name: '@pnpm.e2e/peer-a', version: '1.0.0' }, { name: '@pnpm.e2e/peer-b', version: '1.0.0' }, { name: '@pnpm.e2e/peer-c', version: '2.0.0' }])}`),
|
||||
'node_modules'
|
||||
)
|
||||
await okFile(path.join(pkgVariation2, '@pnpm.e2e/abc'))
|
||||
@@ -661,7 +661,7 @@ test('peer bins are linked', async () => {
|
||||
|
||||
await addDependenciesToPackage({}, ['@pnpm.e2e/for-testing-peers-having-bins'], await testDefaults({ fastUnpack: false }))
|
||||
|
||||
const suffix = createPeersFolderSuffix([{ name: '@pnpm.e2e/peer-with-bin', version: '1.0.0' }])
|
||||
const suffix = createPeersDirSuffix([{ name: '@pnpm.e2e/peer-with-bin', version: '1.0.0' }])
|
||||
const pkgVariation = path.join('.pnpm', depPathToFilename(`/@pnpm.e2e/pkg-with-peer-having-bin@1.0.0${suffix}`), 'node_modules')
|
||||
|
||||
await project.isExecutable(path.join(pkgVariation, '@pnpm.e2e/pkg-with-peer-having-bin/node_modules/.bin', 'peer-with-bin'))
|
||||
@@ -986,7 +986,7 @@ test('peer dependency is resolved from parent package via its alias', async () =
|
||||
}, await testDefaults())
|
||||
|
||||
const lockfile = await readYamlFile<Lockfile>(WANTED_LOCKFILE)
|
||||
const suffix = createPeersFolderSuffix([{ name: '@pnpm.e2e/tango-tango', version: '1.0.0' }])
|
||||
const suffix = createPeersDirSuffix([{ name: '@pnpm.e2e/tango-tango', version: '1.0.0' }])
|
||||
expect(Object.keys(lockfile.packages ?? {})).toStrictEqual([
|
||||
`/@pnpm.e2e/has-tango-as-peer-dep@1.0.0${suffix}`,
|
||||
`/@pnpm.e2e/tango-tango@1.0.0${suffix}`,
|
||||
@@ -1303,7 +1303,7 @@ test('deduplicate packages that have optional and non-optional peers', async ()
|
||||
const lockfile = await readYamlFile<Lockfile>(path.resolve(WANTED_LOCKFILE))
|
||||
const depPaths = Object.keys(lockfile.packages ?? {})
|
||||
expect(depPaths.length).toBe(5)
|
||||
expect(depPaths).toContain(`/@pnpm.e2e/abc-optional-peers@1.0.0${createPeersFolderSuffix([{ name: '@pnpm.e2e/peer-a', version: '1.0.0' }, { name: '@pnpm.e2e/peer-b', version: '1.0.0' }, { name: '@pnpm.e2e/peer-c', version: '1.0.0' }])}`)
|
||||
expect(depPaths).toContain(`/@pnpm.e2e/abc-optional-peers@1.0.0${createPeersDirSuffix([{ name: '@pnpm.e2e/peer-a', version: '1.0.0' }, { name: '@pnpm.e2e/peer-b', version: '1.0.0' }, { name: '@pnpm.e2e/peer-c', version: '1.0.0' }])}`)
|
||||
})
|
||||
|
||||
test('deduplicate packages that have peers', async () => {
|
||||
@@ -1321,8 +1321,8 @@ test('deduplicate packages that have peers', async () => {
|
||||
const lockfile = await readYamlFile<Lockfile>(path.resolve(WANTED_LOCKFILE))
|
||||
const depPaths = Object.keys(lockfile.packages ?? {})
|
||||
expect(depPaths.length).toBe(8)
|
||||
expect(depPaths).toContain(`/@pnpm.e2e/abc@1.0.0${createPeersFolderSuffix([{ name: '@pnpm.e2e/peer-a', version: '1.0.0' }, { name: '@pnpm.e2e/peer-b', version: '1.0.0' }, { name: '@pnpm.e2e/peer-c', version: '1.0.0' }])}`)
|
||||
expect(depPaths).toContain(`/@pnpm.e2e/abc-parent-with-ab@1.0.0${createPeersFolderSuffix([{ name: '@pnpm.e2e/peer-c', version: '1.0.0' }])}`)
|
||||
expect(depPaths).toContain(`/@pnpm.e2e/abc@1.0.0${createPeersDirSuffix([{ name: '@pnpm.e2e/peer-a', version: '1.0.0' }, { name: '@pnpm.e2e/peer-b', version: '1.0.0' }, { name: '@pnpm.e2e/peer-c', version: '1.0.0' }])}`)
|
||||
expect(depPaths).toContain(`/@pnpm.e2e/abc-parent-with-ab@1.0.0${createPeersDirSuffix([{ name: '@pnpm.e2e/peer-c', version: '1.0.0' }])}`)
|
||||
})
|
||||
|
||||
test('deduplicate packages that have peers, when adding new dependency in a workspace', async () => {
|
||||
@@ -1385,8 +1385,8 @@ test('deduplicate packages that have peers, when adding new dependency in a work
|
||||
const lockfile = await readYamlFile<Lockfile>(path.resolve(WANTED_LOCKFILE))
|
||||
const depPaths = Object.keys(lockfile.packages ?? {})
|
||||
expect(depPaths.length).toBe(8)
|
||||
expect(depPaths).toContain(`/@pnpm.e2e/abc@1.0.0${createPeersFolderSuffix([{ name: '@pnpm.e2e/peer-a', version: '1.0.0' }, { name: '@pnpm.e2e/peer-b', version: '1.0.0' }, { name: '@pnpm.e2e/peer-c', version: '1.0.0' }])}`)
|
||||
expect(depPaths).toContain(`/@pnpm.e2e/abc-parent-with-ab@1.0.0${createPeersFolderSuffix([{ name: '@pnpm.e2e/peer-c', version: '1.0.0' }])}`)
|
||||
expect(depPaths).toContain(`/@pnpm.e2e/abc@1.0.0${createPeersDirSuffix([{ name: '@pnpm.e2e/peer-a', version: '1.0.0' }, { name: '@pnpm.e2e/peer-b', version: '1.0.0' }, { name: '@pnpm.e2e/peer-c', version: '1.0.0' }])}`)
|
||||
expect(depPaths).toContain(`/@pnpm.e2e/abc-parent-with-ab@1.0.0${createPeersDirSuffix([{ name: '@pnpm.e2e/peer-c', version: '1.0.0' }])}`)
|
||||
})
|
||||
|
||||
test('resolve peer dependencies from aliased subdependencies if they are dependencies of a parent package', async () => {
|
||||
|
||||
@@ -6,7 +6,7 @@ import type {
|
||||
PeerDependencyIssues,
|
||||
PeerDependencyIssuesByProjects,
|
||||
} from '@pnpm/types'
|
||||
import { depPathToFilename, createPeersFolderSuffix } from '@pnpm/dependency-path'
|
||||
import { depPathToFilename, createPeersDirSuffix } from '@pnpm/dependency-path'
|
||||
import mapValues from 'ramda/src/map'
|
||||
import partition from 'ramda/src/partition'
|
||||
import pick from 'ramda/src/pick'
|
||||
@@ -386,7 +386,7 @@ function resolvePeersOfNode<T extends PartialResolvedPackage> (
|
||||
if (allResolvedPeers.size === 0) {
|
||||
depPath = resolvedPackage.depPath
|
||||
} else {
|
||||
const peersFolderSuffix = createPeersFolderSuffix(
|
||||
const peersFolderSuffix = createPeersDirSuffix(
|
||||
[...allResolvedPeers.entries()]
|
||||
.map(([alias, nodeId]) => {
|
||||
if (nodeId.startsWith('link:')) {
|
||||
|
||||
@@ -2,7 +2,7 @@ import { promises as fs } from 'fs'
|
||||
import path from 'path'
|
||||
import { type Lockfile } from '@pnpm/lockfile-types'
|
||||
import { prepare, preparePackages } from '@pnpm/prepare'
|
||||
import { createPeersFolderSuffix } from '@pnpm/dependency-path'
|
||||
import { createPeersDirSuffix } from '@pnpm/dependency-path'
|
||||
import readYamlFile from 'read-yaml-file'
|
||||
import loadJsonFile from 'load-json-file'
|
||||
import writeYamlFile from 'write-yaml-file'
|
||||
@@ -613,7 +613,7 @@ test('readPackage hook is used during removal inside a workspace', async () => {
|
||||
|
||||
process.chdir('..')
|
||||
const lockfile = await readYamlFile<Lockfile>('pnpm-lock.yaml')
|
||||
const suffix = createPeersFolderSuffix([{ name: '@pnpm.e2e/peer-a', version: '1.0.0' }, { name: 'is-negative', version: '1.0.0' }])
|
||||
const suffix = createPeersDirSuffix([{ name: '@pnpm.e2e/peer-a', version: '1.0.0' }, { name: 'is-negative', version: '1.0.0' }])
|
||||
expect(lockfile.packages![`/@pnpm.e2e/abc@1.0.0${suffix}`].peerDependencies!['is-negative']).toBe('1.0.0')
|
||||
})
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import { type Lockfile } from '@pnpm/lockfile-types'
|
||||
import { preparePackages } from '@pnpm/prepare'
|
||||
import { addDistTag } from '@pnpm/registry-mock'
|
||||
import { sync as readYamlFile } from 'read-yaml-file'
|
||||
import { createPeersFolderSuffix } from '@pnpm/dependency-path'
|
||||
import { createPeersDirSuffix } from '@pnpm/dependency-path'
|
||||
import { sync as loadJsonFile } from 'load-json-file'
|
||||
import { sync as writeYamlFile } from 'write-yaml-file'
|
||||
import { execPnpm } from '../utils'
|
||||
@@ -44,8 +44,8 @@ auto-install-peers=false`, 'utf8')
|
||||
const lockfile = readYamlFile<Lockfile>(path.resolve(WANTED_LOCKFILE))
|
||||
const depPaths = Object.keys(lockfile.packages ?? {})
|
||||
expect(depPaths.length).toBe(8)
|
||||
expect(depPaths).toContain(`/@pnpm.e2e/abc@1.0.0${createPeersFolderSuffix([{ name: '@pnpm.e2e/peer-a', version: '1.0.0' }, { name: '@pnpm.e2e/peer-b', version: '1.0.0' }, { name: '@pnpm.e2e/peer-c', version: '1.0.0' }])}`)
|
||||
expect(depPaths).toContain(`/@pnpm.e2e/abc-parent-with-ab@1.0.0${createPeersFolderSuffix([{ name: '@pnpm.e2e/peer-c', version: '1.0.0' }])}`)
|
||||
expect(depPaths).toContain(`/@pnpm.e2e/abc@1.0.0${createPeersDirSuffix([{ name: '@pnpm.e2e/peer-a', version: '1.0.0' }, { name: '@pnpm.e2e/peer-b', version: '1.0.0' }, { name: '@pnpm.e2e/peer-c', version: '1.0.0' }])}`)
|
||||
expect(depPaths).toContain(`/@pnpm.e2e/abc-parent-with-ab@1.0.0${createPeersDirSuffix([{ name: '@pnpm.e2e/peer-c', version: '1.0.0' }])}`)
|
||||
})
|
||||
|
||||
test('partial update in a workspace should work with dedupe-peer-dependents is true', async () => {
|
||||
|
||||
Reference in New Issue
Block a user