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 5 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 # 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 ```bash
# Restore & build
cd backend cd backend
# Full solution restore + build
dotnet restore Squidex.slnx dotnet restore Squidex.slnx
dotnet build Squidex.slnx dotnet build Squidex.slnx
# Run unit tests # Build only the chosen module (fast)
dotnet test tests/tests.sln 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 # Run all tests in the Core model test project
cd tests && pwsh RunCoverage.ps1 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) ## Frontend (Angular)
```bash ```bash
cd frontend cd frontend
npm ci npm ci
npm run build npm run build # production build
npm test npm test # Vitest unit tests (headless)
``` ```
---
## End-to-end (Playwright) ## End-to-end (Playwright)
```bash ```bash
@ -34,14 +72,19 @@ npm ci
npx playwright test npx playwright test
``` ```
---
## Docker / local stack ## Docker / local stack
```bash ```bash
# Build image from repo root
docker build -t squidex:local . docker build -t squidex:local .
``` ```
## TODO — complete during Crawl ---
## TODO
- [ ] Confirm env vars needed for `dotnet run` - [ ] Document env vars needed for `dotnet run` (MongoDB connection string etc.)
- [ ] Add any seed-data or migration steps - [ ] Add seed-data / migration steps for local dev
- [ ] Note CI pipeline entry points - [ ] 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); 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