summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim@guixotic.coop>2026-08-04 15:13:08 +0900
committerMaxim Cournoyer <maxim@guixotic.coop>2026-08-27 10:59:22 +0900
commitb8c45293f72f1bc4694608566ecb15fdc4b1b9ee (patch)
treea1b32ec66becd9c840b429c7398808758840c7b1
parent844b7c591994791a1dbac8ebdb30b62863d34a03 (diff)
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
-rw-r--r--guix/build/node-build-system.scm5
-rw-r--r--tests/node.scm51
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
114only after the 'patch-dependencies' phase." 114only after the 'patch-dependencies' phase."
115 (let ((predicate (lambda (dependency) 115 (let ((predicate (lambda (dependency)
116 (member (car dependency) dependencies-to-remove))) 116 (member (car dependency) dependencies-to-remove)))
117 (dependency? (cut member <> %dependency-keys))) 117 (dependency? (cut member <> dependency-keys)))
118 (lambda (pkg-meta) 118 (lambda (pkg-meta)
119 (map (match-lambda 119 (map (match-lambda
120 (((? dependency? key) . dependencies) 120 (((? dependency? key) . dependencies)
@@ -122,7 +122,8 @@ only after the 'patch-dependencies' phase."
122 (partition ((if negate? negate identity) 122 (partition ((if negate? negate identity)
123 predicate) 123 predicate)
124 dependencies))) 124 dependencies)))
125 (format #t "deleting ~s dependencies: ~y~%" key removed) 125 (unless (null? removed)
126 (format #t "deleting ~s dependencies: ~y~%" key removed))
126 (cons key kept))) 127 (cons key kept)))
127 (otherwise otherwise)) 128 (otherwise otherwise))
128 pkg-meta)))) 129 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."
77(test-begin "node related tests") 77(test-begin "node related tests")
78 78
79(test-equal "delete-dependencies" 79(test-equal "delete-dependencies"
80 '(("domelementtype" . "^3.0.0")) 80 (list '(("domelementtype" . "^3.0.0"))
81 (assoc-ref (modify-json* 81 ;; Ensure development dependencies are unaffected.
82 (delete-dependencies '("boolbase"))) 82 '(("typescript-eslint" . "^8.61.0") ;devDependencies
83 "dependencies")) 83 ("typescript" . "^5.9.3")
84 ("typedoc" . "^0.28.19")
85 ("htmlparser2" . "^10.1.0")
86 ("eslint" . "^10.4.1")
87 ("@types/node" . "^25.9.2"))
88 '(("mkdirp" . ">=1.0.0") ;peerDependencies
89 ("react" . "^16.8.0")))
90 (let ((result (modify-json* (delete-dependencies
91 '("boolbase")))))
92 (list (assoc-ref result "dependencies")
93 (assoc-ref result "devDependencies")
94 (assoc-ref result "peerDependencies"))))
84 95
85(test-equal "delete-dependencies/except" 96(test-equal "delete-dependencies/except"
86 '(("boolbase" . ">=2.0.0")) 97 (list '(("boolbase" . ">=2.0.0")) ;in 'dependencies'
87 (assoc-ref (modify-json* 98 ;; Ensure development dependencies are not affected (as boolbase is
88 (delete-dependencies/except '("boolbase"))) 99 ;; not in their set).
89 "dependencies")) 100 '() ;devDependencies
101 '()) ;peerDependencies
102 (let ((result (modify-json* (delete-dependencies/except
103 '("boolbase")))))
104 (list (assoc-ref result "dependencies")
105 (assoc-ref result "devDependencies")
106 (assoc-ref result "peerDependencies"))))
90 107
91(test-equal "delete-dev-dependencies/except" 108(test-equal "delete-dev-dependencies/except"
92 '(("typescript" . "^5.9.3") 109 (list '(("typescript" . "^5.9.3") ;devDependencies
93 ("@types/node" . "^25.9.2")) 110 ("@types/node" . "^25.9.2"))
94 (assoc-ref (modify-json* 111 '(("react" . "^16.8.0")) ;peerDependencies
95 (delete-dev-dependencies/except 112 ;; Ensure normal dependencies are unaffected.
96 '("typescript" "@types/node"))) 113 '(("domelementtype" . "^3.0.0")
97 "devDependencies")) 114 ("boolbase" . ">=2.0.0")))
115 (let ((result (modify-json* (delete-dev-dependencies/except
116 '("typescript" "@types/node" ;devDependencies
117 "react"))))) ;peerDependencies
118 (list (assoc-ref result "devDependencies")
119 (assoc-ref result "peerDependencies")
120 (assoc-ref result "dependencies"))))
98 121
99(test-end) 122(test-end)