Browse Source

GHCP — Crawl: Ex2 Build/test baseline + 1 deterministic test

## Summary
- Updated ai-track-docs/build-test.md with exact verified build and test commands
- Added Should_enumerate_all_configured_language_keys to LanguagesConfigTests.cs
- Files touched: ai-track-docs/build-test.md, backend/tests/Squidex.Domain.Apps.Core.Tests/Model/Apps/LanguagesConfigTests.cs

## Evidence
- Tests/logs/metrics:
  dotnet test ... --filter Should_enumerate_all_configured_language_keys
  → Passed! - Failed: 0, Passed: 1, Skipped: 0, Total: 1, Duration: 41 ms

## Risk & Rollback
- Risk: low
- Rollback: git revert ce4b27e192

## Track
- Level: Crawl
- Exercise: Ex2
pull/1321/head
martin-vladkov 2 months ago
parent
commit
5a53520efd
  1. 69
      ai-track-docs/build-test.md
  2. 14
      backend/tests/Squidex.Domain.Apps.Core.Tests/Model/Apps/LanguagesConfigTests.cs

69
ai-track-docs/build-test.md

@ -1,31 +1,69 @@
# Build & Test Reference
> **Status:** Placeholder — verify commands during the Crawl phase and update.
> **Last verified:** Crawl Exercise 2 (2026-05-29, .NET 10, macOS arm64)
## Backend (ASP.NET Core)
---
## Chosen module: `Squidex.Domain.Apps.Core.Model`
All commands below are run from the **`backend/`** directory unless stated otherwise.
---
## Backend build
```bash
# Restore & build
cd backend
# Full solution restore + build
dotnet restore Squidex.slnx
dotnet build Squidex.slnx
# Run unit tests
dotnet test tests/tests.sln
# Build only the chosen module (fast)
dotnet build src/Squidex.Domain.Apps.Core.Model/Squidex.Domain.Apps.Core.Model.csproj
```
Expected output: `Build succeeded. 0 Warning(s) 0 Error(s)`
---
## Backend tests — chosen module only
```bash
cd backend
# Run with coverage
cd tests && pwsh RunCoverage.ps1
# Run all tests in the Core model test project
dotnet test tests/Squidex.Domain.Apps.Core.Tests/Squidex.Domain.Apps.Core.Tests.csproj
# Run a single test by name filter
dotnet test tests/Squidex.Domain.Apps.Core.Tests/Squidex.Domain.Apps.Core.Tests.csproj \
--filter "Should_enumerate_all_configured_language_keys"
```
Expected output: `Passed! - Failed: 0, Passed: N, Skipped: 0`
---
## Backend tests — full suite
```bash
cd backend
dotnet test tests/tests.sln
```
---
## Frontend (Angular)
```bash
cd frontend
npm ci
npm run build
npm test
npm run build # production build
npm test # Vitest unit tests (headless)
```
---
## End-to-end (Playwright)
```bash
@ -34,14 +72,19 @@ npm ci
npx playwright test
```
---
## Docker / local stack
```bash
# Build image from repo root
docker build -t squidex:local .
```
## TODO — complete during Crawl
---
## TODO
- [ ] Confirm env vars needed for `dotnet run`
- [ ] Add any seed-data or migration steps
- [ ] Note CI pipeline entry points
- [ ] Document env vars needed for `dotnet run` (MongoDB connection string etc.)
- [ ] Add seed-data / migration steps for local dev
- [ ] Link to CI workflow files once confirmed

14
backend/tests/Squidex.Domain.Apps.Core.Tests/Model/Apps/LanguagesConfigTests.cs

@ -274,4 +274,18 @@ public class LanguagesConfigTests
Assert.Equal(Language.EN, config_2.Master);
}
[Fact]
public void Should_enumerate_all_configured_language_keys()
{
var config =
LanguagesConfig.English
.Set(Language.DE)
.Set(Language.IT);
Assert.Equal(3, config.AllKeys.Count());
Assert.Contains((string)Language.EN, config.AllKeys);
Assert.Contains((string)Language.DE, config.AllKeys);
Assert.Contains((string)Language.IT, config.AllKeys);
}
}

Loading…
Cancel
Save