Also test the latest Node.js version in GitHub Actions

Hopefully this will allow us to catch bugs in new Node.js versions earlier, rather than having to wait for bug reports.

Given that `CompressionStream` is (currently) only potentially used when saving a *modified* PDF document, which is unlikely to be a common use-case in Node.js environments, let's just disable the affected unit-test for now.
This commit is contained in:
Jonas Jenwald 2023-10-29 14:21:13 +01:00
parent f528f6f07b
commit 99522c3201
3 changed files with 21 additions and 1 deletions

View File

@ -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

View File

@ -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 },

View File

@ -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,