Parcourir la source

test(e2e): make global setup readiness check node14-compatible

Stefan Stidl il y a 3 mois
Parent
commit
aa332c2528
1 fichiers modifiés avec 16 ajouts et 2 suppressions
  1. 16 2
      tests/e2e/global-setup.js

+ 16 - 2
tests/e2e/global-setup.js

@@ -1,13 +1,27 @@
 const { execSync } = require('node:child_process');
+const http = require('node:http');
+const https = require('node:https');
 
 const COMPOSE_FILE = 'tests/docker-compose-playwright.yml';
 
+function isHttpOk(url) {
+  return new Promise((resolve, reject) => {
+    const client = url.startsWith('https://') ? https : http;
+    const req = client.get(url, (res) => {
+      const status = res.statusCode || 0;
+      // Drain body so sockets can be reused/closed cleanly.
+      res.resume();
+      resolve(status >= 200 && status < 300);
+    });
+    req.on('error', reject);
+  });
+}
+
 async function waitForReady(name, url, timeoutMs) {
   const start = Date.now();
   while (Date.now() - start < timeoutMs) {
     try {
-      const response = await fetch(url, { redirect: 'manual' });
-      if (response.ok) {
+      if (await isHttpOk(url)) {
         return;
       }
     } catch {