From 8fdb5bd554c263b60a25da5fde607d2d47667230 Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Tue, 14 Nov 2023 19:31:49 -0500 Subject: [PATCH 1/5] Setup database in end-to-end testing --- .github/workflows/example.env | 1 + .github/workflows/test.yml | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/.github/workflows/example.env b/.github/workflows/example.env index 64d039b..56fd5b6 100644 --- a/.github/workflows/example.env +++ b/.github/workflows/example.env @@ -1,3 +1,4 @@ +DATABASE_URL="postgres://db-user:1234@postgres:5432/test?schema=public" EMAIL_FROM="noreply@example.com" SMTP_SERVER_ADDRESS="mail.example.com" SMTP_SERVER_PORT="465" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index cfc1f9d..0856f1a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,6 +9,20 @@ on: jobs: test: runs-on: ubuntu-latest + container: node:20-bookworm + + services: + postgres: + image: postgres:15 + env: + POSTGRES_DB: test + POSTGRES_USERNAME: db-user + POSTGRES_PASSWORD: 1234 + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 steps: - uses: actions/checkout@v4 @@ -19,6 +33,12 @@ jobs: - name: Add config run: cp ".github/workflows/example.env" .env + - name: Generate artifacts + run: npx prisma generate + + - name: Run migrations + run: npx prisma migrate reset + - name: Unit tests run: npm run test:unit From 17de7b131c31d0f30f802c65c1eb0fb7b5c7edc7 Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Tue, 14 Nov 2023 19:36:45 -0500 Subject: [PATCH 2/5] Fix postgres variable --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0856f1a..dd2f41b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -16,7 +16,7 @@ jobs: image: postgres:15 env: POSTGRES_DB: test - POSTGRES_USERNAME: db-user + POSTGRES_USER: db-user POSTGRES_PASSWORD: 1234 options: >- --health-cmd pg_isready From 28dd0411d994ef735caffb6a66e26f6ce20d296e Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Tue, 14 Nov 2023 19:41:08 -0500 Subject: [PATCH 3/5] Try migrate deploy --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index dd2f41b..efcee84 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -37,7 +37,7 @@ jobs: run: npx prisma generate - name: Run migrations - run: npx prisma migrate reset + run: npx prisma migrate deploy - name: Unit tests run: npm run test:unit From 155f2e1351c8fa81c3e23a873bb0b6b6e7d102e1 Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Tue, 14 Nov 2023 19:45:33 -0500 Subject: [PATCH 4/5] Install Playwright dependencies --- .github/workflows/test.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index efcee84..4fa2346 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -45,5 +45,8 @@ jobs: - name: Install Playwright run: npx playwright install + - name: Install Playwright Dependencies + run: npx playwright install-deps + - name: Integrations tests run: npm run test:integration From 4042c781134c6655c052edc3c128c89a485be6b3 Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Tue, 14 Nov 2023 22:20:01 -0500 Subject: [PATCH 5/5] simplify --- .github/workflows/test.yml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4fa2346..2194a5c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -43,10 +43,14 @@ jobs: run: npm run test:unit - name: Install Playwright - run: npx playwright install - - - name: Install Playwright Dependencies - run: npx playwright install-deps + run: npx playwright install --with-deps - name: Integrations tests run: npm run test:integration + + - uses: actions/upload-artifact@v3 + if: always() + with: + name: playwright-report + path: playwright-report/ + retention-days: 30