Checkpoint web parity through Chromium input tasks
This commit is contained in:
21
web/tests/unit/pointer-contract.test.mjs
Normal file
21
web/tests/unit/pointer-contract.test.mjs
Normal file
@@ -0,0 +1,21 @@
|
||||
import assert from "node:assert/strict";
|
||||
import fs from "node:fs";
|
||||
import path from "node:path";
|
||||
import test from "node:test";
|
||||
import ts from "../../node_modules/typescript/lib/typescript.js";
|
||||
|
||||
const root = path.resolve(import.meta.dirname, "../../..");
|
||||
const sourcePath = path.join(root, "web/protocol/pointer-contract.ts");
|
||||
const output = ts.transpileModule(fs.readFileSync(sourcePath, "utf8"), { compilerOptions: { module: ts.ModuleKind.ES2022, target: ts.ScriptTarget.ES2022 }, fileName: sourcePath, reportDiagnostics: true });
|
||||
assert.deepEqual(output.diagnostics, []);
|
||||
const pointer = await import(`data:text/javascript;base64,${Buffer.from(output.outputText).toString("base64")}`);
|
||||
|
||||
test("M14-04C preserves pointer identity and bounded pen fields", () => {
|
||||
assert.deepEqual(pointer.observePointerEvent({ type: "pointerdown", pointerType: "pen", pointerId: 7, pressure: 1.4, tiltX: 120, tiltY: -100, button: 0, buttons: 1 }), { schemaVersion: 1, pointerType: "pen", pointerId: 7, pressure: 1, tiltX: 90, tiltY: -90, button: 0, buttons: 1, cancelled: false });
|
||||
assert.equal(pointer.observePointerEvent({ type: "pointercancel", pointerType: "touch", pointerId: 2, pressure: 0.4, button: 0, buttons: 0 }).cancelled, true);
|
||||
});
|
||||
|
||||
test("M14-04C rejects unknown pointer and invalid id", () => {
|
||||
assert.throws(() => pointer.observePointerEvent({ pointerType: "trackpad", pointerId: 1 }), /POINTER_TYPE_UNSUPPORTED/);
|
||||
assert.throws(() => pointer.observePointerEvent({ pointerType: "mouse", pointerId: -1 }), /POINTER_ID_INVALID/);
|
||||
});
|
||||
Reference in New Issue
Block a user