diff options
| author | Maxim Cournoyer <maxim@guixotic.coop> | 2026-08-04 15:13:08 +0900 |
|---|---|---|
| committer | Maxim Cournoyer <maxim@guixotic.coop> | 2026-08-27 10:59:22 +0900 |
| commit | b8c45293f72f1bc4694608566ecb15fdc4b1b9ee (patch) | |
| tree | a1b32ec66becd9c840b429c7398808758840c7b1 | |
| parent | 844b7c591994791a1dbac8ebdb30b62863d34a03 (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.scm | 5 | ||||
| -rw-r--r-- | 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 | |||
| 114 | only after the 'patch-dependencies' phase." | 114 | only 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) |
