paperclip/ui/src/adapters/sandboxed-parser-worker.tes...

26 lines
1016 B
TypeScript

import { describe, expect, it } from "vitest";
import { getWorkerBootstrapSource } from "./sandboxed-parser-worker";
describe("sandboxed parser worker bootstrap", () => {
it("disables child worker and object URL escape hatches", () => {
const source = getWorkerBootstrapSource();
expect(source).toContain("self.Worker = _undefined");
expect(source).toContain("self.SharedWorker = _undefined");
expect(source).toContain("self.Blob = _undefined");
expect(source).toContain("self.RTCPeerConnection = _undefined");
expect(source).toContain("self.RTCDataChannel = _undefined");
expect(source).toContain('"createObjectURL"');
expect(source).toContain('"revokeObjectURL"');
});
it("evaluates parser source in strict mode", () => {
expect(getWorkerBootstrapSource()).toContain('\\"use strict\\";\\n{\\n" + msg.source');
});
it("does not include the unused parse_batch protocol branch", () => {
expect(getWorkerBootstrapSource()).not.toContain("parse_batch");
});
});