Skip to content

Commit f12f5e2

Browse files
committed
fix: Add web worker unit test
Fix worker issue (missing globalThis) Signed-off-by: Gordon Smith <[email protected]>
1 parent 92aebf3 commit f12f5e2

File tree

6 files changed

+43
-4
lines changed

6 files changed

+43
-4
lines changed

.github/workflows/testPullRequest.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
runs-on: ubuntu-20.04
1212

1313
steps:
14-
- uses: actions/checkout@v2
14+
- uses: actions/checkout@v3
1515
- uses: actions/setup-node@v2
1616
with:
1717
node-version: "16.x"

karma.conf.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@ module.exports = function (config) {
44
files: [
55
'dist-test/index.js',
66
{ pattern: 'dist/*.wasm', watched: false, included: false, served: true },
7+
{ pattern: 'dist-test/*.js', watched: false, included: false, served: true },
78
],
89
proxies: {
9-
"/dist/": "/base/dist/"
10+
"/dist/": "/base/dist/",
11+
"/dist-test/": "/base/dist-test/"
1012
},
1113
reporters: ['spec'],
1214
port: 9876, // karma web server port

rollup.config.mjs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ export default [
100100

101101
browserTpl("lib-es6/__tests__/index", "dist-test/index", "dist-test/index.es6"),
102102
nodeTpl("lib-es6/__tests__/index", "dist-test/index.node", "dist-test/index.node.es6"),
103+
browserTpl("lib-es6/__tests__/worker", "dist-test/worker", "dist-test/worker.es6"),
103104

104105
binTpl("lib-es6/__bin__/dot-wasm", "bin/dot-wasm.mjs"),
105106
binTpl("lib-es6/__bin__/sfx-wasm", "bin/sfx-wasm.mjs"),

src/__tests__/base91.ts

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ describe("base91", function () {
2020
expect(data).to.deep.equal(data2);
2121
});
2222

23-
it("compressed", async function () {
23+
it("encoded", async function () {
2424
const zstd = await Zstd.load();
2525
const data = new Uint8Array(Array.from({ length: 1000000 }, (_, i) => i % 256));
2626
const compressed_data = zstd.compress(data);
@@ -34,4 +34,32 @@ describe("base91", function () {
3434
const data2 = zstd.decompress(compressed_data2);
3535
expect(data).to.deep.equal(data2);
3636
});
37+
38+
if (globalThis.window?.Worker) {
39+
it("worker", async function () {
40+
const data = new Uint8Array(Array.from({ length: 1000 }, (_, i) => i % 256));
41+
42+
const value = await new Promise(resolve => {
43+
const myWorker = new Worker("dist-test/worker.js");
44+
myWorker.postMessage(data);
45+
myWorker.onmessage = function (e) {
46+
resolve(e.data);
47+
};
48+
});
49+
expect(value).to.deep.equal(data);
50+
});
51+
52+
it("worker-es6", async function () {
53+
const data = new Uint8Array(Array.from({ length: 1000 }, (_, i) => i % 256));
54+
55+
const value = await new Promise(resolve => {
56+
const myWorker = new Worker("dist-test/worker.es6.js");
57+
myWorker.postMessage(data);
58+
myWorker.onmessage = function (e) {
59+
resolve(e.data);
60+
};
61+
});
62+
expect(value).to.deep.equal(data);
63+
});
64+
}
3765
});

src/__tests__/worker.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { Base91 } from "../index";
2+
3+
onmessage = async function (e) {
4+
const base91 = await Base91.load();
5+
const base91Str = base91.encode(e.data);
6+
const data = base91.decode(base91Str);
7+
postMessage(data);
8+
};

src/fetch-browser.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
let _scriptDir = (document?.currentScript as any)?.src ?? "";
1+
let _scriptDir = (globalThis.document?.currentScript as any)?.src ?? "";
22
export const scriptDir = _scriptDir.substring(0, _scriptDir.replace(/[?#].*/, "").lastIndexOf('/') + 1) + "../dist";

0 commit comments

Comments
 (0)