diff --git a/package-lock.json b/package-lock.json index d6e53b331..6f9bf86e5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -46,7 +46,7 @@ "istanbul-lib-coverage": "^3.2.2", "istanbul-lib-report": "^3.0.1", "istanbul-reports": "^3.2.0", - "jasmine": "^5.13.0", + "jasmine": "^6.1.0", "jsdoc": "^4.0.5", "jstransformer-nunjucks": "^1.2.0", "metalsmith": "^2.7.0", @@ -2518,6 +2518,13 @@ "node": ">=8" } }, + "node_modules/@jasminejs/reporters": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@jasminejs/reporters/-/reporters-1.0.0.tgz", + "integrity": "sha512-rM3GG4vx2H1Gp5kYCTr9aKlOEJFd43pzpiMAiy5b1+FUc2ub4e6bS6yCi/WQNDzAa5MVp9++dwcoEtcIfoEnhA==", + "dev": true, + "license": "MIT" + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", @@ -9239,23 +9246,24 @@ } }, "node_modules/jasmine": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-5.13.0.tgz", - "integrity": "sha512-oLCXIhEb5e0zzjn9GyuvcuisvLBwUjmgz7a0RNGWKwQtJCDld4m+vwKUpAIJVLB5vbmQFdtKhT86/tIZlJ5gYw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-6.1.0.tgz", + "integrity": "sha512-WPphPqEMY0uBRMjuhRHoVoxQNvJuxIMqz0yIcJ3k3oYxBedeGoH60/NXNgasxnx2FvfXrq5/r+2wssJ7WE8ABw==", "dev": true, "license": "MIT", "dependencies": { - "glob": "^10.2.2", - "jasmine-core": "~5.13.0" + "@jasminejs/reporters": "^1.0.0", + "glob": "^10.2.2 || ^11.0.3 || ^12.0.0 || ^13.0.0", + "jasmine-core": "~6.1.0" }, "bin": { "jasmine": "bin/jasmine.js" } }, "node_modules/jasmine-core": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.13.0.tgz", - "integrity": "sha512-vsYjfh7lyqvZX5QgqKc4YH8phs7g96Z8bsdIFNEU3VqXhlHaq+vov/Fgn/sr6MiUczdZkyXRC3TX369Ll4Nzbw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-6.1.0.tgz", + "integrity": "sha512-p/tjBw58O6vxKIWMlrU+yys8lqR3+l3UrqwNTT7wpj+dQ7N4etQekFM8joI+cWzPDYqZf54kN+hLC1+s5TvZvg==", "dev": true, "license": "MIT" }, diff --git a/package.json b/package.json index c68020f66..63b754926 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "istanbul-lib-coverage": "^3.2.2", "istanbul-lib-report": "^3.0.1", "istanbul-reports": "^3.2.0", - "jasmine": "^5.13.0", + "jasmine": "^6.1.0", "jsdoc": "^4.0.5", "jstransformer-nunjucks": "^1.2.0", "metalsmith": "^2.7.0", diff --git a/test/font/font_os2_spec.js b/test/font/font_os2_spec.js index 2b7350183..f364740e6 100644 --- a/test/font/font_os2_spec.js +++ b/test/font/font_os2_spec.js @@ -5,7 +5,7 @@ import { Name } from "../../src/core/primitives.js"; import { Stream } from "../../src/core/stream.js"; import { ToUnicodeMap } from "../../src/core/to_unicode_map.js"; -describe("font_post", function () { +describe("font_os2", function () { const font2154 = Uint8Array.fromBase64( // eslint-disable-next-line max-len "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A5r/8wLMABID1wDhAQIAQgPXASEEWAAUBM0AKQI3AAACqgBCBIgA1ANSAAoEiABdBIgABAOaAZ0C3wAvBIgBLQOaAHACzABnA1UAMQbNAUcCRAAhA5oAcASIAS8DGQBUBOEAtAI3AEwCNwBQBIgB7gQA/5AEiAEMAkQAiQSIAXwCNwBkAswAIANVAC0FFwBkBRcAZAUXAFADiwBMBOEAzwThALQEiAE9AJgAAAI5AAAB7AAAAewAAACYAAABugAAAboAAAFoAAABaAAAAJgAAAI5AAAAmAAAAFwAAAGNAAACNwAlAj0A5wUXBB8FFwDnAjcASARvAFADxQBIAqoANQOLAAQENQBeAnEANwJxADUEbwA/BG8AGQI3AFADGQAjA4sAMwOLADMEqABSBG8AXgI3AD8CqgA/BG8AFAP8AB8DiwAbA8UAWAPFAC0D/AA1BDUAUgOLABIFFwAZBKgAOQRaADcEWgBQBAcAUAGNAAwCqgBzAz8AcQM/AD8EiABOCAAA6AJEAEgCRABhAkQAGwPeAEYD3gBfA94AEQSIAJ0EiACeBTMAzggAAM4JEQAyAd4AMQHeACgF0wBmBGcAZwMZACMDGQAjA4v/RAOL/0QD/AAfBG8AUARvAFAEbwBQA4sAGwJxADcDxQBIA4sAMwPFAFgEb//LBRcAGQUXABkFFwAZBRcAGQPFAEgCqgA1A4sABAQ1AF4CcQA3AqoAFARvABkCNwAzAxkAIwOLADMDiwAzBG8AXgKqAD8EbwAUA8UAWAP8ADUENQBSA4sAEgUXABkEqAA5AAAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAw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" diff --git a/test/font/jasmine-boot.js b/test/font/jasmine-boot.js index 71e1ba496..09f37bf85 100644 --- a/test/font/jasmine-boot.js +++ b/test/font/jasmine-boot.js @@ -66,70 +66,20 @@ async function initializePDFJS(callback) { extend(window, jasmineInterface); // Runner Parameters - const queryString = new jasmine.QueryString({ - getWindowLocation() { - return window.location; - }, - }); + const urls = new jasmine.HtmlReporterV2Urls(); - const config = { - failFast: queryString.getParam("failFast"), - oneFailurePerSpec: queryString.getParam("oneFailurePerSpec"), - hideDisabled: queryString.getParam("hideDisabled"), - }; - - const random = queryString.getParam("random"); - if (random !== undefined && random !== "") { - config.random = random; - } - - const seed = queryString.getParam("seed"); - if (seed) { - config.seed = seed; - } + env.configure(urls.configFromCurrentUrl()); // Reporters - const htmlReporter = new jasmine.HtmlReporter({ - env, - navigateWithNewParam(key, value) { - return queryString.navigateWithNewParam(key, value); - }, - addToExistingQueryString(key, value) { - return queryString.fullStringWithNewParam(key, value); - }, - getContainer() { - return document.body; - }, - createElement() { - return document.createElement(...arguments); - }, - createTextNode() { - return document.createTextNode(...arguments); - }, - timer: new jasmine.Timer(), - }); + const htmlReporter = new jasmine.HtmlReporterV2({ env, urls }); env.addReporter(htmlReporter); - if (queryString.getParam("browser")) { - const testReporter = new TestReporter(queryString.getParam("browser")); + if (urls.queryString.getParam("browser")) { + const testReporter = new TestReporter(urls.queryString.getParam("browser")); env.addReporter(testReporter); } - // Filter which specs will be run by matching the start of the full name - // against the `spec` query param. - const specFilter = new jasmine.HtmlSpecFilter({ - filterString() { - return queryString.getParam("spec"); - }, - }); - - config.specFilter = function (spec) { - return specFilter.matches(spec.getFullName()); - }; - - env.configure(config); - // Sets longer timeout. jasmine.DEFAULT_TIMEOUT_INTERVAL = 30000; @@ -142,7 +92,6 @@ async function initializePDFJS(callback) { function fontTestInit() { initializePDFJS(function () { - htmlReporter.initialize(); env.execute(); }); } diff --git a/test/integration/jasmine-boot.js b/test/integration/jasmine-boot.js index 44cb39bdb..097e4141e 100644 --- a/test/integration/jasmine-boot.js +++ b/test/integration/jasmine-boot.js @@ -69,13 +69,7 @@ async function runTests(results) { console.log(`TEST-UNEXPECTED-FAIL | ${result.description}`); } }, - suiteStarted(result) { - // Report on the result of `beforeAll` invocations. - if (result.failedExpectations.length > 0) { - ++results.failures; - console.log(`TEST-UNEXPECTED-FAIL | ${result.description}`); - } - }, + suiteStarted(result) {}, }); return jasmine.execute(); diff --git a/test/reporter.js b/test/reporter.js index 4c5b6b890..8308a7f5a 100644 --- a/test/reporter.js +++ b/test/reporter.js @@ -57,16 +57,7 @@ const TestReporter = function (browser) { sendInfo(`Started ${total} tests for ${browser} with seed ${seed}.`); }; - this.suiteStarted = function (result) { - // Report on the result of `beforeAll` invocations. - if (result.failedExpectations.length > 0) { - let failedMessages = ""; - for (const item of result.failedExpectations) { - failedMessages += `${item.message} `; - } - sendResult("TEST-UNEXPECTED-FAIL", result.description, failedMessages); - } - }; + this.suiteStarted = function (result) {}; this.specStarted = function (result) {}; diff --git a/test/unit/jasmine-boot.js b/test/unit/jasmine-boot.js index 3b383c172..6d359969b 100644 --- a/test/unit/jasmine-boot.js +++ b/test/unit/jasmine-boot.js @@ -127,70 +127,20 @@ async function initializePDFJS(callback) { extend(window, jasmineInterface); // Runner Parameters - const queryString = new jasmine.QueryString({ - getWindowLocation() { - return window.location; - }, - }); + const urls = new jasmine.HtmlReporterV2Urls(); - const config = { - failFast: queryString.getParam("failFast"), - oneFailurePerSpec: queryString.getParam("oneFailurePerSpec"), - hideDisabled: queryString.getParam("hideDisabled"), - }; - - const random = queryString.getParam("random"); - if (random !== undefined && random !== "") { - config.random = random; - } - - const seed = queryString.getParam("seed"); - if (seed) { - config.seed = seed; - } + env.configure(urls.configFromCurrentUrl()); // Reporters - const htmlReporter = new jasmine.HtmlReporter({ - env, - navigateWithNewParam(key, value) { - return queryString.navigateWithNewParam(key, value); - }, - addToExistingQueryString(key, value) { - return queryString.fullStringWithNewParam(key, value); - }, - getContainer() { - return document.body; - }, - createElement() { - return document.createElement(...arguments); - }, - createTextNode() { - return document.createTextNode(...arguments); - }, - timer: new jasmine.Timer(), - }); + const htmlReporter = new jasmine.HtmlReporterV2({ env, urls }); env.addReporter(htmlReporter); - if (queryString.getParam("browser")) { - const testReporter = new TestReporter(queryString.getParam("browser")); + if (urls.queryString.getParam("browser")) { + const testReporter = new TestReporter(urls.queryString.getParam("browser")); env.addReporter(testReporter); } - // Filter which specs will be run by matching the start of the full name - // against the `spec` query param. - const specFilter = new jasmine.HtmlSpecFilter({ - filterString() { - return queryString.getParam("spec"); - }, - }); - - config.specFilter = function (spec) { - return specFilter.matches(spec.getFullName()); - }; - - env.configure(config); - // Sets longer timeout. jasmine.DEFAULT_TIMEOUT_INTERVAL = 30000; @@ -203,7 +153,6 @@ async function initializePDFJS(callback) { function unitTestInit() { initializePDFJS(function () { - htmlReporter.initialize(); env.execute(); }); }