From fcfb79fa363156dfa6ac3ee03e06868f9ccda690 Mon Sep 17 00:00:00 2001 From: Andrei Radchenko Date: Tue, 14 Oct 2025 15:03:55 +0200 Subject: [PATCH] Add test case for symlinked dependencies bug fix - added test/symlinked scenario - verifies nodejs.req correctly generates requirements for symlinked deps - added mock 'external' packages to support this test --- test/external_deps/test300/package.json | 1 + test/external_deps/test301/package.json | 1 + test/external_deps/test302/package.json | 1 + test/run | 2 +- test/symlinked/node_modules/test300 | 1 + test/symlinked/node_modules/test301 | 1 + test/symlinked/node_modules/test302 | 1 + test/symlinked/nodejs.prov.err.exp | 0 test/symlinked/nodejs.prov.out.exp | 1 + test/symlinked/nodejs.req.err.exp | 0 test/symlinked/nodejs.req.out.exp | 4 ++++ test/symlinked/package.json.in | 12 ++++++++++++ 12 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 test/external_deps/test300/package.json create mode 100644 test/external_deps/test301/package.json create mode 100644 test/external_deps/test302/package.json create mode 120000 test/symlinked/node_modules/test300 create mode 120000 test/symlinked/node_modules/test301 create mode 120000 test/symlinked/node_modules/test302 create mode 100644 test/symlinked/nodejs.prov.err.exp create mode 100644 test/symlinked/nodejs.prov.out.exp create mode 100644 test/symlinked/nodejs.req.err.exp create mode 100644 test/symlinked/nodejs.req.out.exp create mode 100644 test/symlinked/package.json.in diff --git a/test/external_deps/test300/package.json b/test/external_deps/test300/package.json new file mode 100644 index 0000000..d977d89 --- /dev/null +++ b/test/external_deps/test300/package.json @@ -0,0 +1 @@ +{"name": "test300", "version": "1.2.3"} \ No newline at end of file diff --git a/test/external_deps/test301/package.json b/test/external_deps/test301/package.json new file mode 100644 index 0000000..78b75bb --- /dev/null +++ b/test/external_deps/test301/package.json @@ -0,0 +1 @@ +{"name": "test301", "version": "2.1.0"} \ No newline at end of file diff --git a/test/external_deps/test302/package.json b/test/external_deps/test302/package.json new file mode 100644 index 0000000..174b06a --- /dev/null +++ b/test/external_deps/test302/package.json @@ -0,0 +1 @@ +{"name": "test302", "version": "1.5.2"} \ No newline at end of file diff --git a/test/run b/test/run index 7897b24..8f60c62 100755 --- a/test/run +++ b/test/run @@ -4,7 +4,7 @@ ln -sf nodejs.req nodejs_req.py "$(command -v python2 || echo :)" -m doctest nodejs_req.py || exit 1 "$(command -v python3 || echo :)" -m doctest nodejs_req.py || exit 1 -for test in unbundled bundled bundled_namespace +for test in unbundled bundled bundled_namespace symlinked do sed -e "s|//.*$||" < test/$test/package.json.in > test/$test/package.json diff --git a/test/symlinked/node_modules/test300 b/test/symlinked/node_modules/test300 new file mode 120000 index 0000000..9793048 --- /dev/null +++ b/test/symlinked/node_modules/test300 @@ -0,0 +1 @@ +../../external_deps/test300 \ No newline at end of file diff --git a/test/symlinked/node_modules/test301 b/test/symlinked/node_modules/test301 new file mode 120000 index 0000000..939be7a --- /dev/null +++ b/test/symlinked/node_modules/test301 @@ -0,0 +1 @@ +../../external_deps/test301 \ No newline at end of file diff --git a/test/symlinked/node_modules/test302 b/test/symlinked/node_modules/test302 new file mode 120000 index 0000000..211f791 --- /dev/null +++ b/test/symlinked/node_modules/test302 @@ -0,0 +1 @@ +../../external_deps/test302 \ No newline at end of file diff --git a/test/symlinked/nodejs.prov.err.exp b/test/symlinked/nodejs.prov.err.exp new file mode 100644 index 0000000..e69de29 diff --git a/test/symlinked/nodejs.prov.out.exp b/test/symlinked/nodejs.prov.out.exp new file mode 100644 index 0000000..4dea41f --- /dev/null +++ b/test/symlinked/nodejs.prov.out.exp @@ -0,0 +1 @@ +npm(test) = 1.0.0 \ No newline at end of file diff --git a/test/symlinked/nodejs.req.err.exp b/test/symlinked/nodejs.req.err.exp new file mode 100644 index 0000000..e69de29 diff --git a/test/symlinked/nodejs.req.out.exp b/test/symlinked/nodejs.req.out.exp new file mode 100644 index 0000000..f24e98c --- /dev/null +++ b/test/symlinked/nodejs.req.out.exp @@ -0,0 +1,4 @@ +nodejs(engine) >= 6 +(npm(test300) >= 1.0.0 with npm(test300) < 2) +(npm(test301) >= 2.0.0 with npm(test301) < 3) +(npm(test302) >= 1.5.0 with npm(test302) < 2) \ No newline at end of file diff --git a/test/symlinked/package.json.in b/test/symlinked/package.json.in new file mode 100644 index 0000000..4f36fe1 --- /dev/null +++ b/test/symlinked/package.json.in @@ -0,0 +1,12 @@ +{ + "name": "test", + "version": "1.0.0", + "engines": { + "node": ">=6" + }, + "dependencies": { + "test300": "^1.0.0", + "test301": "^2.0.0", + "test302": "^1.5.0" + } +} \ No newline at end of file