311 lines
9.3 KiB
JSON
311 lines
9.3 KiB
JSON
[{
|
|
"manifest": {
|
|
"__info": [],
|
|
"dependencyTreeRoots": [{
|
|
"name": "root",
|
|
"reference": "workspace:."
|
|
}],
|
|
"ignorePatternData": null,
|
|
"enableTopLevelFallback": false,
|
|
"fallbackPool": [],
|
|
"fallbackExclusionList": [],
|
|
"packageRegistryData": [
|
|
[null, [
|
|
[null, {
|
|
"packageLocation": "./",
|
|
"packageDependencies": [["test", "npm:1.0.0"]],
|
|
"linkType": "SOFT"
|
|
}]
|
|
]],
|
|
["root", [
|
|
["workspace:.", {
|
|
"packageLocation": "./",
|
|
"packageDependencies": [["test", "npm:1.0.0"]],
|
|
"linkType": "SOFT"
|
|
}]
|
|
]],
|
|
["workspace-alias-dependency", [
|
|
["workspace:workspace-alias-dependency", {
|
|
"packageLocation": "./workspace-alias-dependency/",
|
|
"packageDependencies": [["alias", ["test", "npm:1.0.0"]]],
|
|
"linkType": "SOFT"
|
|
}]
|
|
]],
|
|
["workspace-self-dependency", [
|
|
["workspace:workspace-self-dependency", {
|
|
"packageLocation": "./workspace-self-dependency/",
|
|
"packageDependencies": [["workspace-self-dependency", "workspace:workspace-self-dependency"]],
|
|
"linkType": "SOFT"
|
|
}]
|
|
]],
|
|
["workspace-unfulfilled-peer-dependency", [
|
|
["workspace:workspace-unfulfilled-peer-dependency", {
|
|
"packageLocation": "./workspace-unfulfilled-peer-dependency/",
|
|
"packageDependencies": [["test", null]],
|
|
"linkType": "SOFT"
|
|
}]
|
|
]],
|
|
["longer", [
|
|
["workspace:longer", {
|
|
"packageLocation": "./longer/",
|
|
"packageDependencies": [["test", "npm:2.0.0"]],
|
|
"linkType": "SOFT"
|
|
}]
|
|
]],
|
|
["long", [
|
|
["workspace:long", {
|
|
"packageLocation": "./long/",
|
|
"packageDependencies": [["test", "npm:1.0.0"]],
|
|
"linkType": "SOFT"
|
|
}]
|
|
]],
|
|
["longerer", [
|
|
["workspace:longerer", {
|
|
"packageLocation": "./longerer/",
|
|
"packageDependencies": [["test", "npm:3.0.0"]],
|
|
"linkType": "SOFT"
|
|
}]
|
|
]],
|
|
["test", [
|
|
["npm:1.0.0", {
|
|
"packageLocation": "./test-1.0.0/",
|
|
"packageDependencies": [],
|
|
"linkType": "HARD"
|
|
}],
|
|
["npm:2.0.0", {
|
|
"packageLocation": "./test-2.0.0/",
|
|
"packageDependencies": [],
|
|
"linkType": "HARD"
|
|
}],
|
|
["npm:3.0.0", {
|
|
"packageLocation": "./test-3.0.0/",
|
|
"packageDependencies": [],
|
|
"linkType": "HARD"
|
|
}]
|
|
]]
|
|
]
|
|
},
|
|
"tests": [{
|
|
"it": "should allow a package to import one of its dependencies",
|
|
"imported": "test",
|
|
"importer": "/path/to/project/",
|
|
"expected": "/path/to/project/test-1.0.0/"
|
|
}, {
|
|
"it": "should allow a package to import itself, if specified in its own dependencies",
|
|
"imported": "workspace-self-dependency",
|
|
"importer": "/path/to/project/workspace-self-dependency/",
|
|
"expected": "/path/to/project/workspace-self-dependency/"
|
|
}, {
|
|
"it": "should allow a package to import an aliased dependency",
|
|
"imported": "alias",
|
|
"importer": "/path/to/project/workspace-alias-dependency/",
|
|
"expected": "/path/to/project/test-1.0.0/"
|
|
}, {
|
|
"it": "shouldn't allow a package to import something that isn't one of its dependencies",
|
|
"imported": "missing-dependency",
|
|
"importer": "/path/to/project/",
|
|
"expected": "error!"
|
|
}, {
|
|
"it": "shouldn't accidentally discard the trailing slash from the package locations",
|
|
"imported": "test",
|
|
"importer": "/path/to/project/long/",
|
|
"expected": "/path/to/project/test-1.0.0/"
|
|
}, {
|
|
"it": "should throw an exception when trying to access an unfulfilled peer dependency",
|
|
"imported": "test",
|
|
"importer": "/path/to/project/workspace-unfulfilled-peer-dependency/",
|
|
"expected": "error!"
|
|
}]
|
|
}, {
|
|
"manifest": {
|
|
"__info": [],
|
|
"dependencyTreeRoots": [{
|
|
"name": "root",
|
|
"reference": "workspace:."
|
|
}],
|
|
"ignorePatternData": null,
|
|
"enableTopLevelFallback": true,
|
|
"fallbackPool": [
|
|
["test-2", "npm:1.0.0"],
|
|
["alias", ["test-1", "npm:1.0.0"]]
|
|
],
|
|
"fallbackExclusionList": [[
|
|
"workspace-no-fallbacks",
|
|
["workspace:workspace-no-fallbacks"]
|
|
]],
|
|
"packageRegistryData": [
|
|
[null, [
|
|
[null, {
|
|
"packageLocation": "./",
|
|
"packageDependencies": [["test-1", "npm:1.0.0"]],
|
|
"linkType": "SOFT"
|
|
}]
|
|
]],
|
|
["root", [
|
|
["workspace:.", {
|
|
"packageLocation": "./",
|
|
"packageDependencies": [["test-1", "npm:1.0.0"]],
|
|
"linkType": "SOFT"
|
|
}]
|
|
]],
|
|
["workspace-no-fallbacks", [
|
|
["workspace:workspace-no-fallbacks", {
|
|
"packageLocation": "./workspace-no-fallbacks/",
|
|
"packageDependencies": [],
|
|
"linkType": "SOFT"
|
|
}]
|
|
]],
|
|
["workspace-with-fallbacks", [
|
|
["workspace:workspace-with-fallbacks", {
|
|
"packageLocation": "./workspace-with-fallbacks/",
|
|
"packageDependencies": [],
|
|
"linkType": "SOFT"
|
|
}]
|
|
]],
|
|
["workspace-unfulfilled-peer-dependency", [
|
|
["workspace:workspace-unfulfilled-peer-dependency", {
|
|
"packageLocation": "./workspace-unfulfilled-peer-dependency/",
|
|
"packageDependencies": [
|
|
["test-1", null],
|
|
["test-2", null]
|
|
],
|
|
"linkType": "SOFT"
|
|
}]
|
|
]],
|
|
["test-1", [
|
|
["npm:1.0.0", {
|
|
"packageLocation": "./test-1/",
|
|
"packageDependencies": [],
|
|
"linkType": "HARD"
|
|
}]
|
|
]],
|
|
["test-2", [
|
|
["npm:1.0.0", {
|
|
"packageLocation": "./test-2/",
|
|
"packageDependencies": [],
|
|
"linkType": "HARD"
|
|
}]
|
|
]]
|
|
]
|
|
},
|
|
"tests": [{
|
|
"it": "should allow resolution coming from the fallback pool if enableTopLevelFallback is set to true",
|
|
"imported": "test-1",
|
|
"importer": "/path/to/project/",
|
|
"expected": "/path/to/project/test-1/"
|
|
}, {
|
|
"it": "should allow the fallback pool to contain aliases",
|
|
"imported": "alias",
|
|
"importer": "/path/to/project/",
|
|
"expected": "/path/to/project/test-1/"
|
|
}, {
|
|
"it": "shouldn't use the fallback pool when the importer package is listed in fallbackExclusionList",
|
|
"imported": "test-1",
|
|
"importer": "/path/to/project/workspace-no-fallbacks/",
|
|
"expected": "error!"
|
|
}, {
|
|
"it": "should implicitly use the top-level package dependencies as part of the fallback pool",
|
|
"imported": "test-2",
|
|
"importer": "/path/to/project/workspace-with-fallbacks/",
|
|
"expected": "/path/to/project/test-2/"
|
|
}, {
|
|
"it": "should throw an error if a resolution isn't in in the package dependencies, nor inside the fallback pool",
|
|
"imported": "test-3",
|
|
"importer": "/path/to/project/workspace-with-fallbacks/",
|
|
"expected": "error!"
|
|
}, {
|
|
"it": "should use the top-level fallback if a dependency is missing because of an unfulfilled peer dependency",
|
|
"imported": "test-1",
|
|
"importer": "/path/to/project/workspace-unfulfilled-peer-dependency/",
|
|
"expected": "/path/to/project/test-1/"
|
|
}, {
|
|
"it": "should use the fallback pool if a dependency is missing because of an unfulfilled peer dependency",
|
|
"imported": "test-2",
|
|
"importer": "/path/to/project/workspace-unfulfilled-peer-dependency/",
|
|
"expected": "/path/to/project/test-2/"
|
|
}]
|
|
}, {
|
|
"manifest": {
|
|
"__info": [],
|
|
"dependencyTreeRoots": [{
|
|
"name": "root",
|
|
"reference": "workspace:."
|
|
}],
|
|
"ignorePatternData": null,
|
|
"enableTopLevelFallback": false,
|
|
"fallbackPool": [
|
|
["test", "npm:1.0.0"]
|
|
],
|
|
"fallbackExclusionList": [],
|
|
"packageRegistryData": [
|
|
[null, [
|
|
[null, {
|
|
"packageLocation": "./",
|
|
"packageDependencies": [],
|
|
"linkType": "SOFT"
|
|
}]
|
|
]],
|
|
["root", [
|
|
["workspace:.", {
|
|
"packageLocation": "./",
|
|
"packageDependencies": [],
|
|
"linkType": "SOFT"
|
|
}]
|
|
]],
|
|
["test", [
|
|
["npm:1.0.0", {
|
|
"packageLocation": "./test-1/",
|
|
"packageDependencies": [],
|
|
"linkType": "HARD"
|
|
}]
|
|
]]
|
|
]
|
|
},
|
|
"tests": [{
|
|
"it": "should ignore the fallback pool if enableTopLevelFallback is set to false",
|
|
"imported": "test",
|
|
"importer": "/path/to/project/",
|
|
"expected": "error!"
|
|
}]
|
|
}, {
|
|
"manifest": {
|
|
"__info": [],
|
|
"dependencyTreeRoots": [{
|
|
"name": "root",
|
|
"reference": "workspace:."
|
|
}],
|
|
"ignorePatternData": "^not-a-workspace(/|$)",
|
|
"enableTopLevelFallback": false,
|
|
"fallbackPool": [],
|
|
"fallbackExclusionList": [],
|
|
"packageRegistryData": [
|
|
[null, [
|
|
[null, {
|
|
"packageLocation": "./",
|
|
"packageDependencies": [],
|
|
"linkType": "SOFT"
|
|
}]
|
|
]],
|
|
["root", [
|
|
["workspace:.", {
|
|
"packageLocation": "./",
|
|
"packageDependencies": [["test", "npm:1.0.0"]],
|
|
"linkType": "SOFT"
|
|
}]
|
|
]],
|
|
["test", [
|
|
["npm:1.0.0", {
|
|
"packageLocation": "./test/",
|
|
"packageDependencies": [],
|
|
"linkType": "HARD"
|
|
}]
|
|
]]
|
|
]
|
|
},
|
|
"tests": [{
|
|
"it": "shouldn't go through PnP when trying to resolve dependencies from packages covered by ignorePatternData",
|
|
"imported": "test",
|
|
"importer": "/path/to/project/not-a-workspace/",
|
|
"expected": "error!"
|
|
}]
|
|
}]
|