write test script for cypress

to properly kill the process
This commit is contained in:
MapleLeaf
2022-01-10 23:03:29 -06:00
parent b0e937f896
commit d3f6c8af4d
4 changed files with 32 additions and 9 deletions

View File

@@ -4,7 +4,7 @@
"scripts": { "scripts": {
"prepare": "remix setup node", "prepare": "remix setup node",
"dev": "concurrently 'typedoc --watch' 'remix dev'", "dev": "concurrently 'typedoc --watch' 'remix dev'",
"test": "pnpm build && pnpm start & wait-on http-get://localhost:3000 && cypress run && exit 0", "test": "esmo ./scripts/test.ts",
"test-dev": "pnpm dev & wait-on http-get://localhost:3000 && cypress open", "test-dev": "pnpm dev & wait-on http-get://localhost:3000 && cypress open",
"build": "typedoc && remix build", "build": "typedoc && remix build",
"start": "remix-serve build", "start": "remix-serve build",
@@ -37,6 +37,8 @@
"@types/tailwindcss": "^3.0.2", "@types/tailwindcss": "^3.0.2",
"concurrently": "^7.0.0", "concurrently": "^7.0.0",
"cypress": "^9.2.1", "cypress": "^9.2.1",
"esno": "^0.13.0",
"execa": "^6.0.0",
"rehype-prism-plus": "^1.3.0", "rehype-prism-plus": "^1.3.0",
"typedoc": "^0.22.10", "typedoc": "^0.22.10",
"typescript": "^4.5.4", "typescript": "^4.5.4",

View File

@@ -0,0 +1,3 @@
{
"type": "module"
}

View File

@@ -0,0 +1,9 @@
import cypress from "cypress"
import { execa } from "execa"
import waitOn from "wait-on"
await execa("pnpm", ["build"], { stdio: "inherit" })
const app = execa("pnpm", ["start"], { stdio: "inherit" })
await waitOn({ resources: ["http-get://localhost:3000"] })
await cypress.run()
app.kill()

25
pnpm-lock.yaml generated
View File

@@ -53,6 +53,8 @@ importers:
clsx: ^1.1.1 clsx: ^1.1.1
concurrently: ^7.0.0 concurrently: ^7.0.0
cypress: ^9.2.1 cypress: ^9.2.1
esno: ^0.13.0
execa: ^6.0.0
fast-glob: ^3.2.10 fast-glob: ^3.2.10
gray-matter: ^4.0.3 gray-matter: ^4.0.3
postcss: ^8.4.5 postcss: ^8.4.5
@@ -92,6 +94,8 @@ importers:
'@types/tailwindcss': 3.0.2 '@types/tailwindcss': 3.0.2
concurrently: 7.0.0 concurrently: 7.0.0
cypress: 9.2.1 cypress: 9.2.1
esno: 0.13.0_typescript@4.5.4
execa: 6.0.0
rehype-prism-plus: 1.3.0 rehype-prism-plus: 1.3.0
typedoc: 0.22.10_typescript@4.5.4 typedoc: 0.22.10_typescript@4.5.4
typescript: 4.5.4 typescript: 4.5.4
@@ -3522,6 +3526,19 @@ packages:
- typescript - typescript
dev: true dev: true
/esno/0.13.0_typescript@4.5.4:
resolution: {integrity: sha512-rgVOc/t+4QgAHTsQiFKX2olzJLIcBOYGYUb/moEDLXcz0pIf8NxwuFu5nOAMmOsNiFfhSrfgcLgVCOtmBIBeuQ==}
hasBin: true
dependencies:
cross-spawn: 7.0.3
esbuild: 0.14.11
esbuild-node-loader: 0.6.3_typescript@4.5.4
esbuild-register: 3.3.1_esbuild@0.14.11
import-meta-resolve: 1.1.1
transitivePeerDependencies:
- typescript
dev: true
/espree/9.3.0: /espree/9.3.0:
resolution: {integrity: sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==} resolution: {integrity: sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -3682,7 +3699,6 @@ packages:
onetime: 6.0.0 onetime: 6.0.0
signal-exit: 3.0.6 signal-exit: 3.0.6
strip-final-newline: 3.0.0 strip-final-newline: 3.0.0
dev: false
/executable/4.1.1: /executable/4.1.1:
resolution: {integrity: sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==} resolution: {integrity: sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==}
@@ -4491,7 +4507,6 @@ packages:
/human-signals/3.0.1: /human-signals/3.0.1:
resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==} resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==}
engines: {node: '>=12.20.0'} engines: {node: '>=12.20.0'}
dev: false
/iconv-lite/0.4.24: /iconv-lite/0.4.24:
resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
@@ -4911,7 +4926,6 @@ packages:
/is-stream/3.0.0: /is-stream/3.0.0:
resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
dev: false
/is-string/1.0.7: /is-string/1.0.7:
resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
@@ -5928,7 +5942,6 @@ packages:
/mimic-fn/4.0.0: /mimic-fn/4.0.0:
resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
engines: {node: '>=12'} engines: {node: '>=12'}
dev: false
/mimic-response/1.0.1: /mimic-response/1.0.1:
resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==}
@@ -6194,7 +6207,6 @@ packages:
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
dependencies: dependencies:
path-key: 4.0.0 path-key: 4.0.0
dev: false
/object-assign/4.1.1: /object-assign/4.1.1:
resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=} resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=}
@@ -6303,7 +6315,6 @@ packages:
engines: {node: '>=12'} engines: {node: '>=12'}
dependencies: dependencies:
mimic-fn: 4.0.0 mimic-fn: 4.0.0
dev: false
/open/7.4.2: /open/7.4.2:
resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==}
@@ -6591,7 +6602,6 @@ packages:
/path-key/4.0.0: /path-key/4.0.0:
resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
engines: {node: '>=12'} engines: {node: '>=12'}
dev: false
/path-parse/1.0.7: /path-parse/1.0.7:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
@@ -7763,7 +7773,6 @@ packages:
/strip-final-newline/3.0.0: /strip-final-newline/3.0.0:
resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
engines: {node: '>=12'} engines: {node: '>=12'}
dev: false
/strip-indent/3.0.0: /strip-indent/3.0.0:
resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}