diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 318fbb01c..00df971b2 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -45,7 +45,6 @@ jobs:
web:
runs-on: ubuntu-latest
- if: false
strategy:
matrix:
diff --git a/package.json b/package.json
index d1e5491a3..abe7c9818 100644
--- a/package.json
+++ b/package.json
@@ -87,13 +87,17 @@
"@typescript-eslint/eslint-plugin": "^7.2.0",
"@typescript-eslint/parser": "^7.2.0",
"chai": "^4.4.1",
+ "esbuild": "^0.21.2",
"eslint": "^8.57.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-prettier": "^5.1.3",
"eslint-plugin-security": "^2.1.1",
+ "express": "^4.19.2",
+ "express-http-proxy": "^2.0.0",
"mocha": "^10.3.0",
"npm-run-all": "^4.1.5",
"prettier": "^3.2.5",
+ "puppeteer": "^22.8.2",
"semver": "^7.6.0",
"source-map-support": "^0.5.21",
"typedoc": "^0.25.12",
diff --git a/smoke-test.js b/smoke-test.mjs
similarity index 70%
rename from smoke-test.js
rename to smoke-test.mjs
index aac954f22..26694caec 100644
--- a/smoke-test.js
+++ b/smoke-test.mjs
@@ -1,21 +1,35 @@
-"use strict";
-const puppeteer = require("puppeteer");
+import esbuild from "esbuild";
+import { createRequire } from "module";
+
+const require = createRequire(import.meta.url);
+
const express = require("express");
const proxy = require("express-http-proxy");
-const { createReadStream } = require("fs");
+const puppeteer = require("puppeteer");
+
+const result = await esbuild.build({
+ entryPoints: ["build/esm/index.js"],
+ bundle: true,
+ format: "esm",
+ write: false,
+});
const app = express();
app.get("/smoke", (_req, res) => {
res.type("html");
- res.end('');
-});
-app.get("/smoke/web.js", (_req, res) => {
- res.type("js");
- createReadStream("build/web.js").pipe(res);
+ res.end(`
+
+`);
});
-app.get("/smoke/web.js.map", (_req, res) => {
+app.get("/smoke/index.js", (_req, res) => {
res.type("js");
- createReadStream("build/web.js.map").pipe(res);
+ res.end(result.outputFiles[0].text);
});
app.use("/", proxy("arangodb:8529"));
@@ -29,7 +43,7 @@ app.listen(8529, () => {
waitUntil: "networkidle2",
});
const response = await page.evaluate(async () => {
- // eslint-disable-next-line no-undef
+ const arangojs = await import("arangojs");
const Database = arangojs.Database;
const db = new Database();
try {