Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
32 changes: 32 additions & 0 deletions .github/workflows/internal-e2e-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Internal E2E Tests

on:
push:
branches:
- main
pull_request:
branches:
- main

permissions:
contents: read

jobs:
test:
name: Internal E2E Tests
runs-on: ubuntu-24.04

steps:
- uses: actions/checkout@v6

- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: 22.20.0

- name: Install dependencies
run: npm ci

- name: Run e2e-tests
working-directory: internal/e2e-tests
run: npm run test
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -69,4 +69,7 @@ internal/documentation/.vitepress/cache
internal/documentation/dist
internal/documentation/schema/*
internal/documentation/docs/api
internal/documentation/tmp
internal/documentation/tmp

# E2E-tests
internal/e2e-tests/tmp
34 changes: 34 additions & 0 deletions internal/e2e-tests/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# E2E Tests for UI5 CLI

End-to-end test environment for the UI5 CLI containing realistic user scenarios.

## Usage

```bash
npm install
npm run unit
```

## How It Works

Tests are run with the **Node.js built-in test runner**. Each test:

1. Copies a fixture project to a temporary directory (`./tmp`)
2. Runs `npm install` there (child process)
3. Runs `ui5 build` with varying configurations (child process)

The UI5 CLI executables are sourced directly from this repository at `packages/cli/bin/ui5.cjs`.

Some scenarios include multiple sequential builds with file modifications in between to simulate real-world development workflows. Node modules are getting installed on the fly for the first build and reused for subsequent builds (no reinstall).




## Fixtures

Located under `./fixtures/`:

| Fixture | Description |
|---|---|
| `application.a` | Sample JavaScript project (controller + `manifest.json`) |
| `application.a.ts` | Sample TypeScript project (based on [generator-ui5-ts-app](https://github.com/ui5-community/generator-ui5-ts-app)) |
Loading
Loading