diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6cc016009..924c6d81c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,8 +9,9 @@ jobs: runs-on: ubuntu-latest strategy: + fail-fast: false matrix: - node-version: [18, lts/*] + node-version: [18, lts/*, latest] steps: - name: Checkout repository diff --git a/test/unit/annotation_spec.js b/test/unit/annotation_spec.js index 6791d8419..4b421d2ee 100644 --- a/test/unit/annotation_spec.js +++ b/test/unit/annotation_spec.js @@ -26,6 +26,7 @@ import { AnnotationFieldFlag, AnnotationFlag, AnnotationType, + isNodeJS, OPS, RenderingIntentFlag, stringToBytes, @@ -34,6 +35,7 @@ import { import { CMAP_URL, createIdFactory, + getNodeVersion, STANDARD_FONT_DATA_URL, XRefMock, } from "./test_utils.js"; @@ -2207,6 +2209,12 @@ describe("annotation", function () { }); it("should compress and save text", async function () { + if (isNodeJS && getNodeVersion().major === 21) { + pending( + "CompressionStream behaves differently in Node.js 21, " + + "compared to Firefox, Chrome, and Node.js 18/20." + ); + } const textWidgetRef = Ref.get(123, 0); const xref = new XRefMock([ { ref: textWidgetRef, data: textWidgetDict }, diff --git a/test/unit/test_utils.js b/test/unit/test_utils.js index 111c05006..7dcdc5542 100644 --- a/test/unit/test_utils.js +++ b/test/unit/test_utils.js @@ -144,11 +144,22 @@ function createIdFactory(pageIndex) { return page._localIdFactory; } +function getNodeVersion() { + if (!isNodeJS) { + throw new Error("getNodeVersion - only valid in Node.js environments."); + } + const [major, minor, patch] = process.versions.node + .split(".") + .map(parseFloat); + return { major, minor, patch }; +} + export { buildGetDocumentParams, CMAP_URL, createIdFactory, DefaultFileReaderFactory, + getNodeVersion, STANDARD_FONT_DATA_URL, TEST_PDFS_PATH, XRefMock,