DFSG NEW Queue

DFSG, Licensing & New Packages Team

Review: node-marijn-testtool 0.1.3-1

Package Information

Descriptionrun Mocha test suites in Node.js and in a browser

testtool is a utility for running collections of Mocha test files that contain both Node-based and browser-based tests. It finds test/*.js and test/webtest-*.js files, serves the web tests from a small HTTP server together with the modules they import, and drives a browser to run them.

The browser tests need a WebDriver implementation, such as the chromedriver server from the chromium-driver package.

It is used by the ProseMirror packages through the pm-runtests command from node-prosemirror-buildhelper.

Node.js is an event-based server-side JavaScript engine.

MaintainerDebian Javascript Maintainers <pkg-javascript-devel@lists.alioth.debian.org>
Changed ByEmfox Zhou <emfox@debian.org>
Sponsoremfox@debian.org
Distributionunstable
Architectureall
VCSgit: https://salsa.debian.org/js-team/node-marijn-testtool.git (browse)
Closes#1150579
Trackerhttps://tracker.debian.org/pkg/node-marijn-testtool
Uploaded27 days ago

New Package Report

.changes◂
DateSun, 11 Oct 2026 10:05:00 +0800
Sourcenode-marijn-testtool
Version0.1.3-1
Changed-ByEmfox Zhou <emfox@debian.org>
Architecturesource all
Distributionunstable
Changelog◂
node-marijn-testtool (0.1.3-1) unstable; urgency=medium
 .
   * Initial release. (Closes: #1150579)
.dsc◂
Package-Listnode-marijn-testtool deb javascript optional arch=all
Sectionjavascript
Priorityoptional
Componentmain
debian/copyright◂
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: testtool
Source: https://code.haverbeke.berlin/marijn/testtool

Files: *
Copyright: 2022 Marijn Haverbeke <marijn@haverbeke.berlin>
License: Expat

Files: debian/*
Copyright: 2026 Emfox Zhou <emfox@debian.org>
License: Expat

License: Expat
 Permission is hereby granted, free of charge, to any person obtaining a
 copy of this software and associated documentation files (the "Software"),
 to deal in the Software without restriction, including without limitation
 the rights to use, copy, modify, merge, publish, distribute, sublicense,
 and/or sell copies of the Software, and to permit persons to whom the
 Software is furnished to do so, subject to the following conditions:
 .
 The above copyright notice and this permission notice shall be included in
 all copies or substantial portions of the Software.
 .
 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 DEALINGS IN THE SOFTWARE.

DFSG Assistant LLM REVIEW 1 blocker, 1 important, 1 minor

This is an LLM based review using a Debian Inference based workflow. It was not written by a member of the DFSG team and has not been checked by one. It is not a decision on the package: it may be wrong, and it may have missed things.

Reviewed 21 days ago.

Report◂

DFSG NEW review for node-marijn-testtool version 0.1.3-1

Summary

  • Licensing is DFSG-compliant and debian/copyright is accurate: No
  • Packaging is of good quality: No
  • Issues: 1 blocker, 1 important, 1 minor
  • debian/watch: version 5
  • debian/copyright: machine-readable
  • Scan before the review: nothing found

Licensing

The upstream code is Expat/MIT and DFSG-free: package.json declares "license": "MIT", the README points to the MIT licence, and the upstream files contain no other notices. debian/copyright is DEP-5 and reproduces the full Expat text. It is however inaccurate: use-system-chromedriver.patch creates src/browserdriver.js and rewrites part of src/testtool.js, yet Files: * attributes every upstream-path file to Marijn Haverbeke, and nothing attributes the Debian-authored code in src/ to its author.

Packaging

Most of debian/ is well done: compat 14 with pkg-js-tools, DEP-3 patches, a man page, a correct debian/nodejs/links entry, autopkgtest and a README.Debian explaining the known limitation; dependencies all exist in the archive and the compat-14 substvar handling is correct. But the shipped CLI crashes on --help and on the documented --server option owing to two undefined identifiers, and the browser-test half of the tool cannot work with Debian's mocha because require.resolve("mocha/mocha") has no target there.

Issues

blocker licensing 1. debian/copyright attributes Debian-authored src/ files to upstream ◂
  • Files: debian/copyright:5-7, src/browserdriver.js:1, debian/patches/use-system-chromedriver.patch
  • Basis: checked, in the package or with a reference tool
  • Evidence: Files: * / Copyright: 2022 Marijn Haverbeke <marijn@haverbeke.berlin>; the patch adds new file mode 100644 for src/browserdriver.js (119 lines, no copyright header) and rewrites runBrowserTests in src/testtool.js. Only debian/* names Emfox Zhou.
  • Problem: src/browserdriver.js is new code written for Debian by Emfox Zhou, and src/testtool.js now contains his replacement of the selenium code; neither is covered by the debian/* stanza, so Files: * misattributes both to the upstream author. The copyright file must name the copyright holder of every file in the source.
  • Fix: Add stanzas such as Files: src/browserdriver.js with Copyright: 2026 Emfox Zhou <emfox@debian.org> and License: Expat, and Files: src/testtool.js naming both Marijn Haverbeke (2022) and Emfox Zhou (2026), keeping the existing Expat licence paragraph.
important packaging 2. testtool --help and --server crash with ReferenceError ◂
  • Files: bin/testtool.js:15, bin/testtool.js:32, debian/testtool.1
  • Basis: checked, in the package or with a reference tool
  • Evidence: else if (arg == "--help") exit(0) but the function defined is help(exit = 1); and root: dirs.length == 1 ? dirs[0] : path.dirname(dirs[0]) while the file only does const {resolve} = require("path").
  • Problem: testtool --help calls an undefined exit and dies with ReferenceError: exit is not defined; testtool --server, which the man page documents (--server: Do not run any test, only start the HTTP server), dies with path is not defined. Both are user-visible crashes in the installed /usr/bin/testtool.
  • Fix: Call help(0) for --help and import/use dirname (or path.dirname). Forward the fix upstream, and add at least a smoke line for testtool --help to debian/tests/pkg-js/test.
minor packaging 3. Browser tests cannot run with Debian's mocha, but the Description still advertises them ◂
  • Files: src/testtool.js:81, src/testtool.js:108, debian/README.Debian:5-11, debian/control
  • Basis: checked, in the package or with a reference tool
  • Evidence: let base = require.resolve("mocha/mocha"); the installed mocha has /usr/share/nodejs/mocha/{index.js,browser-entry.js,mocha.css} and no mocha.js. README.Debian says: Browser tests (test/webtest-*.js) do not work at the moment ... Cannot find module 'mocha/mocha'.
  • Problem: Every browser-test run throws before the browser starts, so half of what the package's synopsis ("run Mocha test suites in Node.js and in a browser") and Recommends: chromium-driver promise is unusable. The limitation is honestly documented and blocked by the mocha packaging bug named in README.Debian, hence not a blocker for this package, but the Description should not keep advertising the browser half unqualified.
  • Fix: Either patch createTestServer to serve a browser build mocha actually ships in Debian (none at present) or qualify the Description and drop Recommends: chromium-driver until mocha bug #1150583 is fixed, keeping the README.Debian note.
Verified ◂
  • Read every file under debian/ (copyright, control, rules, changelog, gbp.conf, links, manpages, tests, metadata, README.Debian, source/format, both patches and the series) and every upstream file: package.json, README.md, bin/testtool.js, src/testtool.js, src/browserdriver.js, .gitignore, .npmignore; .pc/ was excluded as instructed.
  • Upstream licensing: the only licence statements are "license": "MIT" in package.json and the MIT link in README.md; no file carries a different notice, and there is no vendored third-party code, minified JavaScript, generated file, archive or binary in the tree. The pre-review scan listed no suspect files and its six scanned source files' holder, Marijn Haverbeke, is named in debian/copyright.
  • The two patches carry DEP-3 headers (Description, Origin: vendor, Forwarded: not-needed) and the applied tree matches them; src/browserdriver.js is the only file they create.
  • The trailing comma after node-serve-static in Build-Depends is harmless: Dpkg::Deps::deps_parse splits on commas and Perl drops the empty trailing item (and the shipped .dsc shows no trailing comma).
  • Build-depends packages mocha, node-esmoduleserve, node-ist and node-serve-static exist in the archive; dh-sequence-single-binary is provided by debhelper 14.5; chromium-driver exists.
  • Compat 14: dh_gencontrol automatically appends ${misc:Depends} (including the nodejs:any that pkg-js's debian/nodejs/links handling adds) to Depends, so its absence from debian/control is not a fault; execute_after_dh_fixperms is a supported hook, and dh_fixperms' own *.js -> 0644 rule makes the chmod 755 in debian/rules necessary and correctly targeted.
  • debian/nodejs/links is the pkg-js-tools mechanism (read by Debian::Debhelper::Buildsystem::nodejs), whose source is relative to /usr/share/nodejs, so @marijn/testtool/bin/testtool.js /usr/bin/testtool is correct, not a dangling link.
  • Standards-Version: 4.7.4 against Policy 4.7.4.1; debian/source/format is 3.0 (quilt); the changelog distribution is unstable, version 0.1.3-1, and the date's weekday is consistent.
  • uscan found the packaged version as the newest upstream release (upstream 0.1.3, packaged 0.1.3).
Not confirmed ◂
  • No build or autopkgtest was run. Not verified: the executable mode of debian/tests/pkg-js/test, the exact working directory it is run from (whether src/testtool.js is present there), and the installed man page/mode of /usr/bin/testtool.
  • The Debian bug numbers cited in the changelog and README.Debian (#1150579, #1150583) could not be checked without network access.
Proposed changes ◂

None.

Uploader's response to the LLM review

The uploader hasn't responded yet, and is welcome to at any time. The 24-hour hold has ended, so the package is now open for review as usual.

Review Information

accepted — allocated to babelouest 18 days ago, started 18 days ago, completed 18 days ago.

Final Comment

Back to Dashboard | View all reviews for this package