guix_mirror_bot pushed a commit to branch master
in repository guix.
commit d81fa56f93e2b810ecbb8a77f5eca745b65cf167
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)