mirror of
https://github.com/pnpm/pnpm.git
synced 2026-01-17 03:18:58 -05:00
121 lines
2.0 KiB
TypeScript
121 lines
2.0 KiB
TypeScript
import { createPackageExtender } from '../lib/createPackageExtender'
|
|
|
|
const packageExtender = createPackageExtender({
|
|
foo: {
|
|
dependencies: {
|
|
a: '1',
|
|
},
|
|
optionalDependencies: {
|
|
b: '2',
|
|
},
|
|
peerDependencies: {
|
|
c: '3',
|
|
},
|
|
peerDependenciesMeta: {
|
|
c: {
|
|
optional: true,
|
|
},
|
|
},
|
|
},
|
|
'bar@1': {
|
|
dependencies: {
|
|
d: '1',
|
|
},
|
|
},
|
|
qar: {
|
|
dependencies: {
|
|
e: '1',
|
|
f: '1',
|
|
},
|
|
},
|
|
})
|
|
|
|
test('createPackageExtender() extends the supported fields', () => {
|
|
expect(
|
|
packageExtender({
|
|
name: 'foo',
|
|
dependencies: {
|
|
bar: '^1.0.0',
|
|
},
|
|
})
|
|
).toStrictEqual({
|
|
name: 'foo',
|
|
dependencies: {
|
|
bar: '^1.0.0',
|
|
a: '1',
|
|
},
|
|
optionalDependencies: {
|
|
b: '2',
|
|
},
|
|
peerDependencies: {
|
|
c: '3',
|
|
},
|
|
peerDependenciesMeta: {
|
|
c: {
|
|
optional: true,
|
|
},
|
|
},
|
|
})
|
|
})
|
|
|
|
test('createPackageExtender() does not change packages that should not be extended', () => {
|
|
const manifest = { name: 'ignore' }
|
|
expect(packageExtender(manifest)).toStrictEqual(manifest)
|
|
})
|
|
|
|
test('createPackageExtender() matches by version', () => {
|
|
expect(
|
|
packageExtender({
|
|
name: 'bar',
|
|
version: '1.0.0',
|
|
})
|
|
).toStrictEqual({
|
|
name: 'bar',
|
|
version: '1.0.0',
|
|
dependencies: {
|
|
d: '1',
|
|
},
|
|
})
|
|
})
|
|
|
|
test('createPackageExtender() does not override existing fields', () => {
|
|
expect(
|
|
packageExtender({
|
|
name: 'qar',
|
|
version: '1.0.0',
|
|
dependencies: {
|
|
e: '100',
|
|
},
|
|
})
|
|
).toStrictEqual({
|
|
name: 'qar',
|
|
version: '1.0.0',
|
|
dependencies: {
|
|
e: '100',
|
|
f: '1',
|
|
},
|
|
})
|
|
})
|
|
|
|
test('createPackageExtender() should works for odd names', () => {
|
|
const extender = createPackageExtender({
|
|
constructor: {
|
|
dependencies: {
|
|
foo: '1',
|
|
},
|
|
},
|
|
})
|
|
expect(
|
|
extender({
|
|
name: 'constructor',
|
|
dependencies: {
|
|
},
|
|
})
|
|
).toStrictEqual({
|
|
name: 'constructor',
|
|
dependencies: {
|
|
foo: '1',
|
|
},
|
|
})
|
|
})
|