diff options
6 files changed, 93 insertions, 0 deletions
diff --git a/lib/bb/tests/fetch-testdata/npm-local-link-sources/inner/npm-shrinkwrap-v1.json b/lib/bb/tests/fetch-testdata/npm-local-link-sources/inner/npm-shrinkwrap-v1.json new file mode 100644 index 000000000..bcdca7de9 --- /dev/null +++ b/lib/bb/tests/fetch-testdata/npm-local-link-sources/inner/npm-shrinkwrap-v1.json @@ -0,0 +1,11 @@ +{ + "name": "@npm-local-link-sources/inner", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@npm-local-link-sources/upper": { + "version": "file:.." + } + } +} diff --git a/lib/bb/tests/fetch-testdata/npm-local-link-sources/inner/npm-shrinkwrap-v2.json b/lib/bb/tests/fetch-testdata/npm-local-link-sources/inner/npm-shrinkwrap-v2.json new file mode 100644 index 000000000..2427acf2d --- /dev/null +++ b/lib/bb/tests/fetch-testdata/npm-local-link-sources/inner/npm-shrinkwrap-v2.json @@ -0,0 +1,28 @@ +{ + "name": "@npm-local-link-sources/inner", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "@npm-local-link-sources/inner", + "version": "1.0.0", + "dependencies": { + "@npm-local-link-sources/upper": "file:../" + } + }, + "..": { + "name": "@npm-local-link-sources/upper", + "version": "1.0.0" + }, + "node_modules/@npm-local-link-sources/upper": { + "resolved": "..", + "link": true + } + }, + "dependencies": { + "@npm-local-link-sources/upper": { + "version": "file:.." + } + } +} diff --git a/lib/bb/tests/fetch-testdata/npm-local-link-sources/inner/npm-shrinkwrap-v3.json b/lib/bb/tests/fetch-testdata/npm-local-link-sources/inner/npm-shrinkwrap-v3.json new file mode 100644 index 000000000..99e0e8f6b --- /dev/null +++ b/lib/bb/tests/fetch-testdata/npm-local-link-sources/inner/npm-shrinkwrap-v3.json @@ -0,0 +1,23 @@ +{ + "name": "@npm-local-link-sources/inner", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@npm-local-link-sources/inner", + "version": "1.0.0", + "dependencies": { + "@npm-local-link-sources/upper": "file:../" + } + }, + "..": { + "name": "@npm-local-link-sources/upper", + "version": "1.0.0" + }, + "node_modules/@npm-local-link-sources/upper": { + "resolved": "..", + "link": true + } + } +} diff --git a/lib/bb/tests/fetch-testdata/npm-local-link-sources/inner/package.json b/lib/bb/tests/fetch-testdata/npm-local-link-sources/inner/package.json new file mode 100644 index 000000000..a578771b9 --- /dev/null +++ b/lib/bb/tests/fetch-testdata/npm-local-link-sources/inner/package.json @@ -0,0 +1,8 @@ +{ + "name": "@npm-local-link-sources/inner", + "version": "1.0.0", + "description": "Inner project in npm-local-link-sources example", + "dependencies": { + "@npm-local-link-sources/upper": "file:../" + } +} diff --git a/lib/bb/tests/fetch-testdata/npm-local-link-sources/package.json b/lib/bb/tests/fetch-testdata/npm-local-link-sources/package.json new file mode 100644 index 000000000..42176c3ed --- /dev/null +++ b/lib/bb/tests/fetch-testdata/npm-local-link-sources/package.json @@ -0,0 +1,5 @@ +{ + "name": "@npm-local-link-sources/upper", + "version": "1.0.0", + "description": "Upper project in npm-local-link-sources example" +} diff --git a/lib/bb/tests/fetch.py b/lib/bb/tests/fetch.py index 85c1f79ff..5233ab5c8 100644 --- a/lib/bb/tests/fetch.py +++ b/lib/bb/tests/fetch.py @@ -2891,6 +2891,24 @@ class NPMTest(FetcherTest): self.assertTrue(os.path.exists(os.path.join(self.dldir, 'git2', 'gitlab.com.gitlab-examples.nodejs.git'))) @skipIfNoNpm() + def test_npmsw_local_link_sources(self): + # generated with npm-10 in: + # lib/bb/tests/fetch-testdata/npm-local-link-sources/inner/ + testdata = os.path.dirname(os.path.abspath(__file__)) + "/fetch-testdata" + testdir = os.path.join(testdata, 'npm-local-link-sources') + + self.sdir = os.path.join(self.unpackdir, testdata[1:], 'npm-local-link-sources', 'inner') + self.d.setVar('S', os.path.join(self.sdir)) + + fetcher = bb.fetch.Fetch(['file://%s/' % testdir, 'npmsw://%s/inner/npm-shrinkwrap-v3.json' % testdir], self.d) + fetcher.download() + fetcher.unpack(self.unpackdir) + + swf = os.path.join(self.sdir, 'npm-shrinkwrap-v3.json') + pkgf = os.path.join(self.sdir, 'node_modules', '@npm-local-link-sources/upper', 'package.json') + self.assertTrue(os.path.exists(swf), msg="%s doesn't exist" % swf) + self.assertTrue(os.path.exists(pkgf), msg="%s doesn't exist" % pkgf) + @skipIfNoNetwork() def test_npmsw_dev(self): swfile = self.create_shrinkwrap_file({ |