guix_mirror_bot pushed a commit to branch javascript-team in repository guix.
commit b8c45293f72f1bc4694608566ecb15fdc4b1b9ee Author: Maxim Cournoyer <[email protected]> AuthorDate: Tue Aug 4 15:13:08 2026 +0900 tests: Fix `delete-dependencies' & cie. * guix/build/node-build-system.scm (delete-dependencies): Properly pass the #:dependency-keys keyword. Avoid printing deletion message when no deletion occurs. * tests/node.scm ("delete-dependencies", "delete-dependencies/except") ("delete-dev-dependencies/except"): Control other dependency sections. Fixes: #10332 --- guix/build/node-build-system.scm | 5 ++-- tests/node.scm | 51 +++++++++++++++++++++++++++++----------- 2 files changed, 40 insertions(+), 16 deletions(-) diff --git a/guix/build/node-build-system.scm b/guix/build/node-build-system.scm index d08935eeed4..102fc1e0cf1 100644 --- a/guix/build/node-build-system.scm +++ b/guix/build/node-build-system.scm @@ -114,7 +114,7 @@ To prevent the deleted dependencies from being reintroduced, use this function only after the 'patch-dependencies' phase." (let ((predicate (lambda (dependency) (member (car dependency) dependencies-to-remove))) - (dependency? (cut member <> %dependency-keys))) + (dependency? (cut member <> dependency-keys))) (lambda (pkg-meta) (map (match-lambda (((? dependency? key) . dependencies) @@ -122,7 +122,8 @@ only after the 'patch-dependencies' phase." (partition ((if negate? negate identity) predicate) dependencies))) - (format #t "deleting ~s dependencies: ~y~%" key removed) + (unless (null? removed) + (format #t "deleting ~s dependencies: ~y~%" key removed)) (cons key kept))) (otherwise otherwise)) pkg-meta)))) diff --git a/tests/node.scm b/tests/node.scm index 55236f0df43..96048cf5cb5 100644 --- a/tests/node.scm +++ b/tests/node.scm @@ -77,23 +77,46 @@ It also returns the data as an alist directly." (test-begin "node related tests") (test-equal "delete-dependencies" - '(("domelementtype" . "^3.0.0")) - (assoc-ref (modify-json* - (delete-dependencies '("boolbase"))) - "dependencies")) + (list '(("domelementtype" . "^3.0.0")) + ;; Ensure development dependencies are unaffected. + '(("typescript-eslint" . "^8.61.0") ;devDependencies + ("typescript" . "^5.9.3") + ("typedoc" . "^0.28.19") + ("htmlparser2" . "^10.1.0") + ("eslint" . "^10.4.1") + ("@types/node" . "^25.9.2")) + '(("mkdirp" . ">=1.0.0") ;peerDependencies + ("react" . "^16.8.0"))) + (let ((result (modify-json* (delete-dependencies + '("boolbase"))))) + (list (assoc-ref result "dependencies") + (assoc-ref result "devDependencies") + (assoc-ref result "peerDependencies")))) (test-equal "delete-dependencies/except" - '(("boolbase" . ">=2.0.0")) - (assoc-ref (modify-json* - (delete-dependencies/except '("boolbase"))) - "dependencies")) + (list '(("boolbase" . ">=2.0.0")) ;in 'dependencies' + ;; Ensure development dependencies are not affected (as boolbase is + ;; not in their set). + '() ;devDependencies + '()) ;peerDependencies + (let ((result (modify-json* (delete-dependencies/except + '("boolbase"))))) + (list (assoc-ref result "dependencies") + (assoc-ref result "devDependencies") + (assoc-ref result "peerDependencies")))) (test-equal "delete-dev-dependencies/except" - '(("typescript" . "^5.9.3") - ("@types/node" . "^25.9.2")) - (assoc-ref (modify-json* - (delete-dev-dependencies/except - '("typescript" "@types/node"))) - "devDependencies")) + (list '(("typescript" . "^5.9.3") ;devDependencies + ("@types/node" . "^25.9.2")) + '(("react" . "^16.8.0")) ;peerDependencies + ;; Ensure normal dependencies are unaffected. + '(("domelementtype" . "^3.0.0") + ("boolbase" . ">=2.0.0"))) + (let ((result (modify-json* (delete-dev-dependencies/except + '("typescript" "@types/node" ;devDependencies + "react"))))) ;peerDependencies + (list (assoc-ref result "devDependencies") + (assoc-ref result "peerDependencies") + (assoc-ref result "dependencies")))) (test-end)
