]> git.ipfire.org Git - thirdparty/vuejs/router.git/commitdiff
ci: run server with tests
authorEduardo San Martin Morote <posva13@gmail.com>
Thu, 9 Jun 2022 12:33:05 +0000 (14:33 +0200)
committerEduardo San Martin Morote <posva@users.noreply.github.com>
Thu, 30 Jun 2022 07:59:00 +0000 (09:59 +0200)
packages/router/e2e/devServer.js [new file with mode: 0644]
packages/router/e2e/runner.js
packages/router/e2e/vite.config.js [moved from packages/router/e2e/vite.config.ts with 85% similarity]
packages/router/nightwatch.conf.js
packages/router/old-e2e/devServer.js [deleted file]
packages/router/package.json

diff --git a/packages/router/e2e/devServer.js b/packages/router/e2e/devServer.js
new file mode 100644 (file)
index 0000000..181ee45
--- /dev/null
@@ -0,0 +1,27 @@
+const { createServer, resolveConfig } = require('vite')
+const viteConfig = require('./vite.config')
+const config = viteConfig({ prod: false })
+
+/** @type {import('vite').ViteDevServer} */
+let server = null
+
+;(async () => {
+  const app = await createServer({
+    configFile: false,
+    ...config,
+  })
+  server = await app.listen(process.env.PORT || 3000)
+  internalResolve(server)
+})()
+
+let internalResolve = () => {}
+
+module.exports = function getServer() {
+  return new Promise((resolve, reject) => {
+    if (server) {
+      resolve(server)
+    } else {
+      internalResolve = resolve
+    }
+  })
+}
index 0f29036300f7a4388ef927d01a611488b52e62ba..4b69b71a09500d1d13d8c9c1adf14f727334e4af 100644 (file)
@@ -19,41 +19,55 @@ const args = process.argv.slice(2)
 // note this works because nighwatch doesn't use this option
 const isLocal = args.indexOf('--local') > -1
 
-try {
-  require.main.filename = path.resolve(
-    __dirname,
-    '../../../node_modules/.bin/nightwatch'
-  )
+const getServer =
+  args.indexOf('--dev') > -1
+    ? null
+    : // : process.env.CI || args.indexOf('--ci') > -1
+      // ? require('./staticServer')
+      require('./devServer')
 
-  // Code to start browserstack local before start of test
-  console.log('Connecting local')
+;(async () => {
+  const server = await getServer()
 
-  /** @type {import('browserstack-local').Local} */
-  let bs_local
-  if (isLocal) {
-    bs_local = new browserstack.Local()
-    Nightwatch.bs_local = bs_local
+  try {
+    require.main.filename = path.resolve(
+      __dirname,
+      '../../../node_modules/.bin/nightwatch'
+    )
 
-    bs_local.start(
-      { key: process.env.BROWSERSTACK_ACCESS_KEY },
-      async error => {
-        if (error) throw error
+    /** @type {import('browserstack-local').Local} */
+    let bs_local
+    if (isLocal) {
+      // Code to start browserstack local before start of test
+      console.log('Connecting local')
+      bs_local = new browserstack.Local()
+      Nightwatch.bs_local = bs_local
 
-        console.log('Connected. Now testing...')
-        await runNighwatchCli().finally(() => {
-          // Code to stop browserstack local after end of single test
-          bs_local.stop(() => {})
-        })
-      }
-    )
-  } else {
-    runNighwatchCli()
+      bs_local.start(
+        { key: process.env.BROWSERSTACK_ACCESS_KEY },
+        async error => {
+          if (error) throw error
+
+          console.log('Connected. Now testing...')
+          await runNighwatchCli().finally(() => {
+            // Code to stop browserstack local after end of single test
+            bs_local.stop(() => {
+              server.close()
+            })
+          })
+        }
+      )
+    } else {
+      await runNighwatchCli()
+      server.close()
+    }
+  } catch (ex) {
+    console.log('There was an error while starting the test runner:\n\n')
+    process.stderr.write(ex.stack + '\n')
+    server.close()
+    process.exit(2)
   }
-} catch (ex) {
-  console.log('There was an error while starting the test runner:\n\n')
-  process.stderr.write(ex.stack + '\n')
-  process.exit(2)
-}
+})()
 
 function runNighwatchCli() {
   return new Promise((resolve, reject) => {
similarity index 85%
rename from packages/router/e2e/vite.config.ts
rename to packages/router/e2e/vite.config.js
index 67a562f82cea6f3bb3b4faec751809ffd79b3ff6..d50e52ffaad2f447a7ee77f5a87c3702d5168b1d 100644 (file)
@@ -1,10 +1,11 @@
-import fs from 'fs'
-import { resolve, join } from 'path'
-import { defineConfig } from 'vite'
-import vue from '@vitejs/plugin-vue'
-import history from 'connect-history-api-fallback'
+const fs = require('fs')
+const { resolve, join } = require('path')
+const { defineConfig } = require('vite')
+const vue = require('@vitejs/plugin-vue')
+const history = require('connect-history-api-fallback')
 
-const examples: string[] = []
+/** @type {string[]} */
+const examples = []
 fs.readdirSync(__dirname).forEach(dir => {
   const fullDir = join(__dirname, dir)
   const entry = join(fullDir, 'index.ts')
@@ -14,7 +15,12 @@ fs.readdirSync(__dirname).forEach(dir => {
 })
 
 // https://vitejs.dev/config/
-const config = (env: Record<string, string> = {}) => {
+/**
+ *
+ * @param {Record<string, string>} env
+ * @returns
+ */
+const config = env => {
   return defineConfig({
     root: resolve(__dirname),
     resolve: {
@@ -39,7 +45,8 @@ const config = (env: Record<string, string> = {}) => {
             entries[name] = resolve(__dirname, name, 'index.html')
             return entries
           },
-          { index: resolve(__dirname, 'index.html') } as Record<string, string>
+          /** @type {Record<string, string>} */
+          { index: resolve(__dirname, 'index.html') }
         ),
       },
     },
index ba1ccf1994e9a002c83f19f72f914510ce39b6d4..1636bee561e9d29446042765d33ece34e8d0eb4d 100644 (file)
@@ -104,9 +104,10 @@ module.exports = {
           // w3c:false tells Chromedriver to run using the legacy JSONWire protocol (not required in Chrome 78)
           w3c: true,
           args: [
-            //'--no-sandbox',
+            // needed for ci
+            '--no-sandbox',
             //'--ignore-certificate-errors',
-            //'--allow-insecure-localhost',
+            '--allow-insecure-localhost',
             //'--headless'
           ],
         },
diff --git a/packages/router/old-e2e/devServer.js b/packages/router/old-e2e/devServer.js
deleted file mode 100644 (file)
index fbac528..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-const { createServer } = require('vite')
-const viteConfig = require('./vite.config')
-const config = viteConfig({ prod: false })
-
-let server = null
-
-;(async () => {
-  const app = await createServer({
-    configFile: false,
-    ...config,
-  })
-  const port = process.env.PORT || 3000
-  server = await app.listen(port)
-})()
-
-module.exports = server
index cb47bf0ed633494b228bb81ccc6a5a0ffa217ee5..a48da77f84bffe9ae1f357f40adf5f80321bb286 100644 (file)
@@ -55,7 +55,7 @@
     "build:playground": "vue-tsc --noEmit && vite build --config playground/vite.config.js",
     "build:e2e": "vue-tsc --noEmit && vite build --config e2e/vite.config.js",
     "build:size": "pnpm run build && rollup -c size-checks/rollup.config.js",
-    "dev:e2e": "vite --config e2e/vite.config.ts",
+    "dev:e2e": "vite --config e2e/vite.config.js",
     "docs": "vitepress dev docs",
     "docs:build": "vitepress build docs",
     "lint": "pnpm run lint:script && pnpm run lint:html",