-
-
Notifications
You must be signed in to change notification settings - Fork 933
/
licenses.spec.ts
101 lines (96 loc) · 2.74 KB
/
licenses.spec.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
import { findDependencyLicenses } from '@pnpm/license-scanner'
import { LOCKFILE_VERSION } from '@pnpm/constants'
import { ProjectManifest, Registries } from '@pnpm/types'
import { Lockfile } from '@pnpm/lockfile-file'
import { LicensePackage } from '../lib/licenses'
import { GetPackageInfoOptions, PackageInfo } from '../lib/getPkgInfo'
jest.mock('../lib/getPkgInfo', () => {
const actualModule = jest.requireActual('../lib/getPkgInfo')
return {
...actualModule,
getPkgInfo: async (pkg: PackageInfo, _opts: GetPackageInfoOptions): Promise<
{
from: string
description?: string
} & Omit<LicensePackage, 'belongsTo'>
> => {
const packageInfo = {
from: pkg.name!,
name: pkg.name!,
version: pkg.version!,
description: 'Package Description',
license: pkg.name === 'bar' ? 'MIT' : 'Unknown',
licenseContents: pkg.name === 'bar' ? undefined : 'The MIT License',
author: 'Package Author',
homepage: 'Homepage',
repository: 'Repository',
path: `/path/to/package/${pkg.name!}@${pkg.version!}/node_modules`,
}
return packageInfo
},
}
})
describe('licences', () => {
test('findDependencyLicenses()', async () => {
const lockfile: Lockfile = {
importers: {
'.': {
dependencies: {
foo: '1.0.0',
},
specifiers: {
foo: '^1.0.0',
},
},
},
lockfileVersion: LOCKFILE_VERSION,
packages: {
'/bar/1.0.0': {
resolution: {
integrity: 'bar-integrity',
},
},
'/foo/1.0.0': {
dependencies: {
bar: '1.0.0',
},
resolution: {
integrity: 'foo-integrity',
},
},
},
}
const licensePackages = await findDependencyLicenses({
lockfileDir: '/opt/pnpm',
manifest: {} as ProjectManifest,
virtualStoreDir: '/.pnpm',
registries: {} as Registries,
wantedLockfile: lockfile,
storeDir: '/opt/.pnpm',
})
expect(licensePackages).toEqual([
{
belongsTo: 'dependencies',
version: '1.0.0',
name: 'bar',
license: 'MIT',
licenseContents: undefined,
author: 'Package Author',
homepage: 'Homepage',
repository: 'Repository',
path: '/path/to/package/bar@1.0.0/node_modules',
},
{
belongsTo: 'dependencies',
version: '1.0.0',
name: 'foo',
license: 'Unknown',
licenseContents: 'The MIT License',
author: 'Package Author',
homepage: 'Homepage',
repository: 'Repository',
path: '/path/to/package/foo@1.0.0/node_modules',
},
] as LicensePackage[])
})
})