Run dotenv in E2E codebase itself

This commit is contained in:
Stan Wohlwend 2024-06-18 18:38:30 +02:00
parent 5366ba708f
commit b79bee6606
7 changed files with 34 additions and 64 deletions

View File

@ -34,10 +34,10 @@ jobs:
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Create .env.local file for stack-backend
- name: Create .env.production.local file for stack-backend
run: cp apps/backend/.env.development apps/backend/.env.production.local
- name: Create .env.local file for stack-dashboard
- name: Create .env.production.local file for stack-dashboard
run: cp apps/dashboard/.env.development apps/dashboard/.env.production.local
- name: Build stack-backend
@ -51,6 +51,11 @@ jobs:
- name: Initialize database
run: pnpm run prisma -- migrate reset --force
- name: Start stack-backend in background
run: pnpm run start:backend &
- name: Wait for stack-backend to start
run: npx wait-on@7.2.0 http://localhost:8102
- name: Start stack-dashboard in background
run: pnpm run start:dashboard &
- name: Wait for stack-dashboard to start

View File

@ -4,13 +4,13 @@
"private": true,
"type": "module",
"scripts": {
"test:watch": "dotenv -c development -- vitest watch",
"test": "dotenv -c development -- vitest run",
"test:watch": "vitest watch",
"test": "vitest run",
"lint": "eslint --ext .tsx,.ts .",
"clean": "rimraf dist && rimraf node_modules"
},
"dependencies": {},
"devDependencies": {
"dotenv-cli": "7.4.1"
"dotenv": "^16.4.5"
}
}

View File

@ -40,13 +40,11 @@ async function signInWithEmailPassword(email: string, password: string) {
describe("Various internal project tests", () => {
test("Main Page", async () => {
const response = await request(BASE_URL).get("/");
console.log(response);
expect(response.status).toBe(307);
});
test("API root (no authentication)", async () => {
const response = await request(BASE_URL).get("/api/v1");
console.log(response);
expect(response.status).toBe(200);
expect(response.text).contains("Stack API");
expect(response.text).contains("Authentication: None");
@ -54,21 +52,18 @@ describe("Various internal project tests", () => {
test("Credential sign up", async () => {
const { response } = await signUpWithEmailPassword();
console.log(response);
expect(response.status).toBe(200);
});
test("Credential sign in", async () => {
const { email, password } = await signUpWithEmailPassword();
const { response } = await signInWithEmailPassword(email, password);
console.log(response);
expect(response.status).toBe(200);
});
test("No current user without authentication", async () => {
const response = await request(BASE_URL).get("/api/v1/current-user").set(AUTH_HEADER);
console.log(response);
expect(response.status).toBe(200);
expect(response.body).toBe(null);
});

View File

@ -0,0 +1,14 @@
import dotenv from "dotenv";
export default function globalSetup() {
dotenv.config({
path: [
".env.development.local",
".env.local",
".env.development",
".env",
],
});
return () => {};
}

View File

@ -5,8 +5,8 @@
"rootDir": "tests",
"declaration": true,
"target": "ESNext",
"module": "NodeNext",
"moduleResolution": "NodeNext",
"module": "ESNext",
"moduleResolution": "Bundler",
"esModuleInterop": true,
"noErrorTruncation": true,
"strict": true,

View File

@ -1,10 +1,11 @@
import { defineConfig } from 'vitest/config'
import react from '@vitejs/plugin-react'
export default defineConfig({
plugins: [react()],
test: {
environment: 'node',
testTimeout: 20_000,
globalSetup: './tests/global-setup.ts',
},
})

View File

@ -506,9 +506,9 @@ importers:
apps/e2e:
devDependencies:
dotenv-cli:
specifier: 7.4.1
version: 7.4.1
dotenv:
specifier: ^16.4.5
version: 16.4.5
docs:
dependencies:
@ -10018,7 +10018,7 @@ snapshots:
rollup: 2.78.0
stacktrace-parser: 0.1.10
optionalDependencies:
webpack: 5.92.0(@swc/core@1.3.101)(esbuild@0.21.5)
webpack: 5.92.0(@swc/core@1.3.101(@swc/helpers@0.5.11))(esbuild@0.19.11)
transitivePeerDependencies:
- encoding
- supports-color
@ -14994,7 +14994,7 @@ snapshots:
term-size@2.2.1: {}
terser-webpack-plugin@5.3.10(@swc/core@1.3.101(@swc/helpers@0.5.11))(esbuild@0.19.11)(webpack@5.92.0(@swc/core@1.3.101)(esbuild@0.21.5)):
terser-webpack-plugin@5.3.10(@swc/core@1.3.101(@swc/helpers@0.5.11))(esbuild@0.19.11)(webpack@5.92.0(@swc/core@1.3.101(@swc/helpers@0.5.11))(esbuild@0.19.11)):
dependencies:
'@jridgewell/trace-mapping': 0.3.25
jest-worker: 27.5.1
@ -15006,19 +15006,6 @@ snapshots:
'@swc/core': 1.3.101(@swc/helpers@0.5.11)
esbuild: 0.19.11
terser-webpack-plugin@5.3.10(@swc/core@1.3.101)(esbuild@0.21.5)(webpack@5.92.0(@swc/core@1.3.101)(esbuild@0.21.5)):
dependencies:
'@jridgewell/trace-mapping': 0.3.25
jest-worker: 27.5.1
schema-utils: 3.3.0
serialize-javascript: 6.0.2
terser: 5.31.1
webpack: 5.92.0(@swc/core@1.3.101)(esbuild@0.21.5)
optionalDependencies:
'@swc/core': 1.3.101(@swc/helpers@0.5.11)
esbuild: 0.21.5
optional: true
terser@5.31.1:
dependencies:
'@jridgewell/source-map': 0.3.6
@ -15508,7 +15495,7 @@ snapshots:
neo-async: 2.6.2
schema-utils: 3.3.0
tapable: 2.2.1
terser-webpack-plugin: 5.3.10(@swc/core@1.3.101(@swc/helpers@0.5.11))(esbuild@0.19.11)(webpack@5.92.0(@swc/core@1.3.101)(esbuild@0.21.5))
terser-webpack-plugin: 5.3.10(@swc/core@1.3.101(@swc/helpers@0.5.11))(esbuild@0.19.11)(webpack@5.92.0(@swc/core@1.3.101(@swc/helpers@0.5.11))(esbuild@0.19.11))
watchpack: 2.4.1
webpack-sources: 3.2.3
transitivePeerDependencies:
@ -15516,38 +15503,6 @@ snapshots:
- esbuild
- uglify-js
webpack@5.92.0(@swc/core@1.3.101)(esbuild@0.21.5):
dependencies:
'@types/eslint-scope': 3.7.7
'@types/estree': 1.0.5
'@webassemblyjs/ast': 1.12.1
'@webassemblyjs/wasm-edit': 1.12.1
'@webassemblyjs/wasm-parser': 1.12.1
acorn: 8.12.0
acorn-import-attributes: 1.9.5(acorn@8.12.0)
browserslist: 4.23.1
chrome-trace-event: 1.0.4
enhanced-resolve: 5.17.0
es-module-lexer: 1.5.3
eslint-scope: 5.1.1
events: 3.3.0
glob-to-regexp: 0.4.1
graceful-fs: 4.2.11
json-parse-even-better-errors: 2.3.1
loader-runner: 4.3.0
mime-types: 2.1.35
neo-async: 2.6.2
schema-utils: 3.3.0
tapable: 2.2.1
terser-webpack-plugin: 5.3.10(@swc/core@1.3.101)(esbuild@0.21.5)(webpack@5.92.0(@swc/core@1.3.101)(esbuild@0.21.5))
watchpack: 2.4.1
webpack-sources: 3.2.3
transitivePeerDependencies:
- '@swc/core'
- esbuild
- uglify-js
optional: true
whatwg-encoding@3.1.1:
dependencies:
iconv-lite: 0.6.3