-
Notifications
You must be signed in to change notification settings - Fork 776
Comparing changes
Open a pull request
base repository: qunitjs/qunit
base: 2.23.1
head repository: qunitjs/qunit
compare: 2.24.2
- 17 commits
- 52 files changed
- 1 contributor
Commits on Jan 18, 2025
-
Core: Exclude or grey internal stack frames in TAP reporter (2.x back…
…port) Cherry-picked from 9fed286 (3.0.0-dev): > Core: Exclude or grey internal frames from stack traces in TAP reporter > Internal frames are those from qunit.js, or Node.js runtime. > > * Remove any internal frames from the top of the stack. > * Grey out later internal frames anywhere in the stack. > > This change is applied to the TAP reporter, which the QUnit CLI uses > by default. > > Ref #1789. Cherry-picked from 95105aa (3.0.0-dev): > Fix fragile code in stracktrace.js that previously worked only because > of Babel transformations masking a violation of the Temporal Dead Zone > between `const fileName` and the functions it uses to compute that > value.
Configuration menu - View commit details
-
Copy full SHA for c244704 - Browse repository at this point
Copy the full SHA c244704View commit details -
Configuration menu - View commit details
-
Copy full SHA for 62f6d7d - Browse repository at this point
Copy the full SHA 62f6d7dView commit details -
CLI: Include
.mjsand.cjsin default test file extensionsThese have been included by watch mode since QUnit 2.18, but so far only benefited you there if you manually passed these as individual files, or loaded them indirectly at runtime, or used your own glob that includes mjs and/or cjs. If you currently run qunit by passing a directory and have matching files that you want to skip, opt-out by passing `test/*.js` or `test/**/*.js` explicitly instead of `test/`. Follows-up #1676. Cherry-picked from 6f72eeb (3.0.0-dev). Cherry-picked from 53ee0a7 (3.0.0-dev).
Configuration menu - View commit details
-
Copy full SHA for db1d3be - Browse repository at this point
Copy the full SHA db1d3beView commit details
Commits on Jan 19, 2025
-
Configuration menu - View commit details
-
Copy full SHA for 61c2501 - Browse repository at this point
Copy the full SHA 61c2501View commit details -
HTML Reporter: Fix unexpected pointer cursor on "Source:" label
`#qunit-tests li strong` also applied to `#qunit-tests li .qunit-source strong` Cherry-picked from 52bfa69 (3.0.0-dev).
Configuration menu - View commit details
-
Copy full SHA for f8cce2b - Browse repository at this point
Copy the full SHA f8cce2bView commit details -
Demos: Introduce q4000 benchmark
Cherry-picked from 58d93b9 (3.0.0-dev).
Configuration menu - View commit details
-
Copy full SHA for 567ab7d - Browse repository at this point
Copy the full SHA 567ab7dView commit details -
HTML Reporter: Faster "Hide passed" toggling on large test suites
Optimize the hidepassed click handler for large test suites by avoiding internal function call overhead for the iterator, as well as copying cost for the array. Shaves off ~100ms milliseconds on the q4000 demo 1.65s to 1.5s (Chrome, CPU throttle 6x), and seems to defer some unattributed costs to outside the critical path. Cherry-picked from a729421 (3.0.0-dev).
Configuration menu - View commit details
-
Copy full SHA for b13ade0 - Browse repository at this point
Copy the full SHA b13ade0View commit details
Commits on Jan 20, 2025
-
Core: Add memory to the
runEndevent to allow late event listenersWhile this is not in any way a documented API, it is quite common for QUnit runners that are based on Selenium/Webdriver to use HTML scraping to obtain a simple summary of whether the run passed. Intruce memory for `runEnd` event so that anything JS-based has a stable and documented way to obtain the result in a machine-readable format, without needing to resort to HTML scraping. One common reason sometimes avoid the event emitter is that, depending on various circumstances, a custom test runner might end up injecting code slightly too late, at which point JS code to listen for our event might not fire, whereas the DOM is still available. This is rare, but can happen: * if the file is served as-is. browserstack-runner and QTap solves this by proxying the HTML file and inject an inline script to reliable listen early. Karma solves this by proxing the test framework instead (qunit.js) and adapting it to include relevant event listeners upfront. * and, if the browser is driven without early JS control. When WebDriver v1 is used, something like webdriver "execute" is not guruanteed to run before DOM-ready or window.onload. If the Node.js process is slow or far away from the browser (e.g. cloud), and if the test suite is relatively small/fast, then the injected code might arrive after the tests have already finished. grunt-contrib-qunit avoids this by using Puppeteer and its `Page.evaluateOnNewDocument()` method, to reliably run a script before any others. * and, if the test is relatively small/fast. Example at mauriciolauffer/wdio-qunit-service#13 Solve this once and for all by adding memory to the `runEnd` event. This allows late event listers to handle the event retroactively. Cherry-picked from 8f25f26 (3.0.0-dev).
Configuration menu - View commit details
-
Copy full SHA for 27a33d1 - Browse repository at this point
Copy the full SHA 27a33d1View commit details -
Configuration menu - View commit details
-
Copy full SHA for ca5e5ac - Browse repository at this point
Copy the full SHA ca5e5acView commit details
Commits on Jan 25, 2025
-
CLI: Fix TAP compliance for actual/expected indent and skip/todo colors
Cherry-picked from adc4493 (3.0.0-dev).
Configuration menu - View commit details
-
Copy full SHA for b4d48fc - Browse repository at this point
Copy the full SHA b4d48fcView commit details
Commits on Jan 26, 2025
-
CLI: Fix TAP compliance for early errors (e.g. syntax error in test f…
…ile) Cherry-picked from 62ca15a (3.0.0-dev). > Core: Convert "No tests were run." from fake test to error Early errors produced output like so: ``` not ok 1 global failure --- message: ReferenceError: boom is not defined stack: | ReferenceError: boom is not defined at /example.test.js ... Bail out! ReferenceError: boom is not defined TAP version 13 1..1 ``` Instead of: ``` TAP version 13 not ok 1 global failure --- message: ReferenceError: boom is not defined stack: | ReferenceError: boom is not defined at /example.test.js ... Bail out! ReferenceError: boom is not defined 1..1 ``` Because prior to the introduction of the "error" event in 2.17.0, the only failures were test failures, and those would not begin until after QUnit.begin() / "runStart" event.
Configuration menu - View commit details
-
Copy full SHA for 01f7780 - Browse repository at this point
Copy the full SHA 01f7780View commit details -
Core: Add memory to the
errorevent to allow late event listenersConfiguration menu - View commit details
-
Copy full SHA for 7c2f871 - Browse repository at this point
Copy the full SHA 7c2f871View commit details -
Configuration menu - View commit details
-
Copy full SHA for 00aa314 - Browse repository at this point
Copy the full SHA 00aa314View commit details
Commits on Oct 10, 2025
-
Build: Upgrade from ubuntu-20 to ubuntu-22, drop SpiderMonkey 68 cove…
…rage Cherry-picked from 497748b (3.0.0-dev).
Configuration menu - View commit details
-
Copy full SHA for 7d0c65c - Browse repository at this point
Copy the full SHA 7d0c65cView commit details -
Tests: Run TapReporter independently of stdout.isTTY or env.FORCE_COLOR
Cherry-picked from abeac18 (3.0.0-dev). > Tests should pass even when running in a subshell or otherwise > without TTY or FORCE_COLOR=1.
Configuration menu - View commit details
-
Copy full SHA for a4cbc1c - Browse repository at this point
Copy the full SHA a4cbc1cView commit details -
CLI: Fix TAP compliance for colon in unquoted YAML diag
Cherry-picked from f0af617 (3.0.0-dev). > When an assertion message contained a colon followed by a space, > and otherwise is a single line of ASCII characters, we formatted it > as an unquoted string. This is invalid in YAML 1.2, and thus tap-parser > would ignore the diagnostic block. > > This does not affect the TAP result itself (the test name and failure > status are separate from this), and it does not affect the QUnit CLI > output where the information is shown either way. > > When passing the CLI output to tap-parser (such as in QTap), it > silently ignored the "diag" block containing the assertion > message/actual/expected value, because it is not valid YAML. > > Note that YAML 1.2 does allow literal colons and hash tags in unquoted > strings, when they are not followed by or preceded by a space, but > I'm keeping our version simpler by erring toward quoted strings when > these appear. Just because we could squeeze one more edge case with > plain unquoted strings, doesn't mean we have to. This way keeps our > format a bit more intuitive by making it predictable and easy to > deduce why a string is quoted or not, based solely on the chars used > and not based on obscure YAML internals. > > Ref https://yaml.org/spec/1.2.2/#733-plain-style
Configuration menu - View commit details
-
Copy full SHA for dbc02fb - Browse repository at this point
Copy the full SHA dbc02fbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2753920 - Browse repository at this point
Copy the full SHA 2753920View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff 2.23.1...2.24.2