Skip to content
Merged
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
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
node-version: 22

- name: Install dependencies
run: npm install
run: npm ci

- name: Lint
run: npm run lint
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
registry-url: https://npm.pkg.github.com

- name: Install dependencies
run: npm install
run: npm ci

- name: Run tests
run: npm test
Expand Down
3 changes: 1 addition & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,4 @@ yarn-error.log*
.env.local
.idea/
.vscode/
.eslintcache
package-lock.json
.eslintcache
18 changes: 9 additions & 9 deletions docs/ensemble-test.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# `ensemble test`

Thin wrapper around [`ensemble_test_runner`](https://github.com/EnsembleUI/ensemble/tree/support-test-cases/packages/ensemble_test_runner). Splices a temporary dev dependency, runs tests, restores `pubspec.yaml`.
Thin wrapper around [`ensemble_test_runner`](https://github.com/EnsembleUI/ensemble/tree/main/packages/ensemble_test_runner). Splices a temporary dev dependency at the app's `ensemble:` git ref, runs tests, restores `pubspec.yaml`.

```bash
ensemble test [--project <path>] [runner flags...]
```

- Run from **starter root** or **`ensemble/apps/<app>`** (not subdirs). From an app dir, starter root is 2 parents up (`apps` → `ensemble` → starter).
- `--project` sets starter root explicitly. All other flags pass through (`--timeout=`, `--verbose`, `--doctor`, etc.).
- Uses `fvm dart` when `.fvmrc` exists. Requires Flutter **≥ 3.35**.
- Uses `fvm dart` when `.fvmrc` exists. Requires Flutter **≥ 3.35** and ensemble **≥ v1.2.47** (test runner shipped in [v1.2.47](https://github.com/EnsembleUI/ensemble/releases/tag/ensemble-v1.2.47)).

---

Expand All @@ -17,7 +17,7 @@ ensemble test [--project <path>] [runner flags...]
```
test.ts
├── starterProject.ts starter root or ensemble/apps/<app>
├── pubspecTestRunner.ts splice/restore ensemble_test_runner dev_dep
├── pubspecTestRunner.ts splice/restore test runner at app's ensemble ref
└── dartToolchain.ts fvm dart when .fvmrc exists
```

Expand All @@ -26,18 +26,18 @@ sequenceDiagram
participant CLI
participant Runner as ensemble_test_runner

CLI->>CLI: resolve starter root
CLI->>CLI: read ensemble git ref from pubspec
CLI->>CLI: backup pubspec, splice dev_dep if missing
CLI->>Runner: dart run ensemble_test_runner:ensemble_test [flags]
Note over Runner: resolves deps if needed
Runner-->>CLI: exit code
CLI->>CLI: restore pubspec in finally
```

| Module | Role |
| ---------------------- | ------------------------------------------------------------------------ |
| `starterProject.ts` | Resolve starter root from cwd or 2 parents up from `ensemble/apps/<app>` |
| `pubspecTestRunner.ts` | Insert fixed git dev_dep block; restore in `finally` |
| `dartToolchain.ts` | `fvm dart` vs `dart` |
| Module | Role |
| ---------------------- | ------------------------------------------------------------------------------- |
| `starterProject.ts` | Resolve starter root from cwd or 2 parents up from `ensemble/apps/<app>` |
| `pubspecTestRunner.ts` | Splice test runner at app's `ensemble:` ref (min v1.2.47); restore in `finally` |
| `dartToolchain.ts` | `fvm dart` vs `dart` |

**Not duplicated in CLI:** test discovery, asset patching, `flutter test`, doctor/validate — owned by the runtime package.
Loading
Loading