From 597bbc6e3905273cbcaed650c8fd82fb382adff3 Mon Sep 17 00:00:00 2001 From: Alan Plum Date: Tue, 30 Apr 2024 18:55:31 +0200 Subject: [PATCH] Re-implement smoke test with esbuild --- .github/workflows/tests.yml | 1 - package.json | 4 ++++ smoke-test.js => smoke-test.mjs | 36 +++++++++++++++++++++++---------- 3 files changed, 29 insertions(+), 12 deletions(-) rename smoke-test.js => smoke-test.mjs (70%) 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 {