summaryrefslogtreecommitdiff
path: root/packages/integrations/cloudflare/test/wasm.test.js
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/cloudflare/test/wasm.test.js')
-rw-r--r--packages/integrations/cloudflare/test/wasm.test.js120
1 files changed, 36 insertions, 84 deletions
diff --git a/packages/integrations/cloudflare/test/wasm.test.js b/packages/integrations/cloudflare/test/wasm.test.js
index 279a00cd1..7f440922e 100644
--- a/packages/integrations/cloudflare/test/wasm.test.js
+++ b/packages/integrations/cloudflare/test/wasm.test.js
@@ -1,85 +1,37 @@
-import { loadFixture, runCLI } from './test-utils.js';
-import { expect } from 'chai';
-import cloudflare from '../dist/index.js';
-
-describe('Wasm import', () => {
- describe('in cloudflare workerd', () => {
- /** @type {import('./test-utils.js').Fixture} */
- let fixture;
- /** @type {import('./test-utils.js').WranglerCLI} */
- let cli;
-
- before(async function () {
- fixture = await loadFixture({
- root: './fixtures/wasm/',
- });
- await fixture.build();
-
- cli = await runCLI('./fixtures/wasm/', {
- silent: true,
- onTimeout: (ex) => {
- console.log(ex);
- // if fail to start, skip for now as it's very flaky
- this.skip();
- },
- });
- });
-
- after(async () => {
- await cli?.stop();
- });
-
- it('can render', async () => {
- let res = await fetch(`http://127.0.0.1:${cli.port}/add/40/2`);
- expect(res.status).to.equal(200);
- const json = await res.json();
- expect(json).to.deep.equal({ answer: 42 });
- });
- });
- describe('astro dev server', () => {
- /** @type {import('./test-utils').Fixture} */
- let fixture;
- let devServer;
-
- before(async () => {
- fixture = await loadFixture({
- root: './fixtures/wasm/',
- });
- devServer = undefined;
- });
-
- after(async () => {
- await devServer?.stop();
- });
-
- it('can serve wasm', async () => {
- devServer = await fixture.startDevServer();
- let res = await fetch(`http://localhost:${devServer.address.port}/add/60/3`);
- expect(res.status).to.equal(200);
- const json = await res.json();
- expect(json).to.deep.equal({ answer: 63 });
- });
-
- it('fails to build intelligently when wasm is disabled', async () => {
- let ex;
- try {
- await fixture.build({
- adapter: cloudflare({
- wasmModuleImports: false,
- }),
- });
- } catch (err) {
- ex = err;
- }
- expect(ex?.message).to.have.string('add `wasmModuleImports: true` to your astro config');
- });
-
- it('can import wasm in both SSR and SSG pages', async () => {
- await fixture.build({ output: 'hybrid' });
- const staticContents = await fixture.readFile('./hybrid');
- expect(staticContents).to.be.equal('{"answer":21}');
- const assets = await fixture.readdir('./_astro');
- expect(assets.map((x) => x.slice(x.lastIndexOf('.')))).to.contain('.wasm');
- });
- });
+import { expect } from "chai";
+import { fileURLToPath } from "node:url";
+import { astroCli, wranglerCli } from "./_test-utils.js";
+
+const root = new URL("./fixtures/wasm/", import.meta.url);
+
+describe("Wasm import", () => {
+ before(async function () {
+ await astroCli(fileURLToPath(root), "build");
+
+ wrangler = wranglerCli(fileURLToPath(root));
+ await new Promise((resolve) => {
+ wrangler.stdout.on("data", (data) => {
+ console.log("[stdout]", data.toString());
+ if (data.toString().includes("http://127.0.0.1:8788")) resolve();
+ });
+ wrangler.stderr.on("data", (data) => {
+ console.log("[stderr]", data.toString());
+ });
+ });
+ });
+
+ after((done) => {
+ wrangler.kill();
+ setTimeout(() => {
+ console.log("CLEANED");
+ done();
+ }, 1000);
+ });
+
+ it("can render", async () => {
+ let res = await fetch(`http://127.0.0.1:8788/add/40/2`);
+ expect(res.status).to.equal(200);
+ const json = await res.json();
+ expect(json).to.deep.equal({ answer: 42 });
+ });
});