Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
81d566f
feature: add puppeteer tests
Apr 18, 2026
e4f21a0
fix: update test file structure and improve template usage
Apr 18, 2026
2487dd0
fix: enhance navigation timeout and improve project URL handling in p…
Apr 18, 2026
68bad85
feature: add test for current changes and test against npm run start
Apr 18, 2026
dc53b47
fix: update puppeteer workflow for local testing and enhance browser …
Apr 18, 2026
8d937df
fix: changed test url for local
Apr 18, 2026
e4e7baf
chore: updated node versio for action
Apr 18, 2026
cabec28
fix: reduced code duplication with matrix strategies
Apr 18, 2026
900810b
fix: replaced manual globals config
Apr 18, 2026
44b1b44
fix: https project url for prod
Apr 18, 2026
90eddf9
fix: removed puppeteer folder husky, we now use web-IDE offered one
Apr 18, 2026
29a3bb7
feature: single browser instance multiple page approach
Apr 18, 2026
58cf357
feature: dispose test
Apr 18, 2026
3c70bd6
feature: separation of concern for github workflows
Apr 18, 2026
2545cde
fix: wait for editor on test
Apr 18, 2026
17db5f0
feature: updated selector with data-testid
Apr 18, 2026
300af5b
feature: one browser per file, one page per test inside file
Apr 18, 2026
0e65f08
chore: updated documentation
Apr 18, 2026
57b35ec
fix: redirect to 404 on all project load errors; fix local test proje…
Apr 18, 2026
9b3a7bd
feature: mock firebase test when starting workflow web-ide application
Apr 18, 2026
de86857
fix: updated timings to emulate the cm-session
Apr 18, 2026
1c94514
feature: reduce node timings with node cache
Apr 18, 2026
420c543
fix: fix editor test CI timeout and add debug artifacts
Apr 18, 2026
d782be8
fix: missing chrome cache
Apr 18, 2026
9c250c5
fix: prevent double fire
Apr 18, 2026
a30fb32
Merge branch 'develop' into puppeteer
Apr 18, 2026
df27876
feature: cache for all e2e test
Apr 18, 2026
47cf981
feature: update to use new ide layout. removed error with previous fi…
Apr 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 78 additions & 0 deletions .github/workflows/e2e-dev.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: E2E — Dev

on:
push:
branches: [develop]

concurrency:
group: e2e-dev-${{ github.sha }}
cancel-in-progress: true

jobs:
install:
name: Install dependencies
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '24'
cache: 'npm'
cache-dependency-path: puppeteer-tests/package-lock.json

- name: Install test dependencies
working-directory: puppeteer-tests
run: npm ci

- name: Cache node_modules and Puppeteer browsers
uses: actions/cache/save@v4
with:
path: |
puppeteer-tests/node_modules
~/.cache/puppeteer
key: nm-puppeteer-${{ runner.os }}-${{ hashFiles('puppeteer-tests/package-lock.json') }}

e2e:
name: E2E dev — ${{ matrix.suite }}
needs: install
runs-on: ubuntu-latest
timeout-minutes: 10

strategy:
fail-fast: false
matrix:
suite: [home, editor]

steps:
- uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '24'

- name: Restore node_modules and Puppeteer browsers
uses: actions/cache/restore@v4
with:
path: |
puppeteer-tests/node_modules
~/.cache/puppeteer
key: nm-puppeteer-${{ runner.os }}-${{ hashFiles('puppeteer-tests/package-lock.json') }}

- name: Run ${{ matrix.suite }} tests
working-directory: puppeteer-tests
run: node --test tests/${{ matrix.suite }}.js
env:
TARGET: dev

- name: Upload debug artifacts
if: failure()
uses: actions/upload-artifact@v4
with:
name: e2e-debug-dev-${{ matrix.suite }}
path: puppeteer-tests/screenshots/
retention-days: 7
if-no-files-found: ignore
91 changes: 91 additions & 0 deletions .github/workflows/e2e-local.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
name: E2E — Local

on:
pull_request:
types: [opened, synchronize, reopened]
workflow_dispatch:

concurrency:
group: e2e-local-${{ github.ref }}
cancel-in-progress: true

jobs:
install:
name: Install dependencies
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '24'
cache: 'npm'

- name: Install project dependencies
run: npm ci

- name: Install test dependencies
working-directory: puppeteer-tests
run: npm ci

- name: Cache node_modules and Puppeteer browsers
uses: actions/cache/save@v4
with:
path: |
node_modules
puppeteer-tests/node_modules
~/.cache/puppeteer
key: nm-${{ runner.os }}-${{ hashFiles('package-lock.json', 'puppeteer-tests/package-lock.json') }}

e2e:
name: E2E local — ${{ matrix.suite }}
needs: install
runs-on: ubuntu-latest
timeout-minutes: 15

strategy:
fail-fast: false
matrix:
suite: [home, editor]

steps:
- uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '24'

- name: Restore node_modules and Puppeteer browsers
uses: actions/cache/restore@v4
with:
path: |
node_modules
puppeteer-tests/node_modules
~/.cache/puppeteer
key: nm-${{ runner.os }}-${{ hashFiles('package-lock.json', 'puppeteer-tests/package-lock.json') }}

- name: Start dev server
run: npm run start -- --open false &
env:
BROWSER: none

- name: Wait for dev server
run: npx wait-on http://localhost:3000 --timeout 120000

- name: Run ${{ matrix.suite }} tests
working-directory: puppeteer-tests
run: node --test tests/${{ matrix.suite }}.js
env:
TARGET: local

- name: Upload debug artifacts
if: failure()
uses: actions/upload-artifact@v4
with:
name: e2e-debug-${{ matrix.suite }}
path: puppeteer-tests/screenshots/
retention-days: 7
if-no-files-found: ignore
78 changes: 78 additions & 0 deletions .github/workflows/e2e-prod.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: E2E — Prod

on:
push:
branches: [main]

concurrency:
group: e2e-prod-${{ github.sha }}
cancel-in-progress: true

jobs:
install:
name: Install dependencies
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '24'
cache: 'npm'
cache-dependency-path: puppeteer-tests/package-lock.json

- name: Install test dependencies
working-directory: puppeteer-tests
run: npm ci

- name: Cache node_modules and Puppeteer browsers
uses: actions/cache/save@v4
with:
path: |
puppeteer-tests/node_modules
~/.cache/puppeteer
key: nm-puppeteer-${{ runner.os }}-${{ hashFiles('puppeteer-tests/package-lock.json') }}

e2e:
name: E2E prod — ${{ matrix.suite }}
needs: install
runs-on: ubuntu-latest
timeout-minutes: 10

strategy:
fail-fast: false
matrix:
suite: [home, editor]

steps:
- uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '24'

- name: Restore node_modules and Puppeteer browsers
uses: actions/cache/restore@v4
with:
path: |
puppeteer-tests/node_modules
~/.cache/puppeteer
key: nm-puppeteer-${{ runner.os }}-${{ hashFiles('puppeteer-tests/package-lock.json') }}

- name: Run ${{ matrix.suite }} tests
working-directory: puppeteer-tests
run: node --test tests/${{ matrix.suite }}.js
env:
TARGET: prod

- name: Upload debug artifacts
if: failure()
uses: actions/upload-artifact@v4
with:
name: e2e-debug-prod-${{ matrix.suite }}
path: puppeteer-tests/screenshots/
retention-days: 7
if-no-files-found: ignore
3 changes: 1 addition & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
firebase-debug.log

# dependencies
/node_modules
**/node_modules

# testing
/coverage
Expand Down Expand Up @@ -38,7 +38,6 @@ yarn-error*

# Search app
search/service-key.json
search/node_modules
dev-database.json
prod-database.json
database.json
Expand Down
1 change: 1 addition & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
npm run precommit-hook
cd puppeteer-tests && npm run lint && npm run format -- --check
2 changes: 2 additions & 0 deletions puppeteer-tests/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
node_modules/
screenshots/
Loading
Loading