You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -284,6 +285,8 @@ Local `AGENTS.md` files may tighten these values, but they must not loosen them
284
285
- Do not use mocks, fakes, stubs, or service doubles in verification.
285
286
- Exercise internal and external dependencies through real containers, test instances, or sandbox environments that match the real contract.
286
287
- Flaky tests are failures. Fix the cause.
288
+
- Do not hide multiple verification scenarios inside one test with a `foreach`; split them into separate TUnit data-driven test cases so failures stay isolated and the runner can schedule the cases independently.
289
+
- Supporting TUnit suites should use environment-aware parallel limits: cap CI worker counts lower than local runs, and keep timer-, storage-, or culture-mutation-heavy classes isolated when they prove flaky under suite-wide parallelism.
287
290
- Changed production code MUST reach at least 80% line coverage, and at least 70% branch coverage where branch coverage is available.
288
291
- Critical flows and public contracts MUST reach at least 90% line coverage with explicit success and failure assertions.
289
292
- Repository or module coverage must not decrease without an explicit written exception. Coverage after the change must stay at least at the previous baseline or improve.
Tests["tests/*<br/>TUnit + bUnit + Playwright + shared test support"]
54
54
55
55
App --> Shared
56
56
Shared --> Core
@@ -65,7 +65,8 @@ flowchart LR
65
65
66
66
-`src/PrompterOne.Shared` keeps routed UI in feature slices: `AppShell`, `Diagnostics`, `Editor`, `Library`, `Learn`, `Teleprompter`, `GoLive`, `Settings`, and `Media`.
67
67
-`src/PrompterOne.Core` keeps host-neutral behavior in matching domain slices: `Tps`, `Editor`, `Workspace`, `Library`, `Rsvp`, `Media`, `Streaming`, and `Localization`.
68
-
-`tests/PrompterOne.Core.Tests`, `tests/PrompterOne.Web.Tests`, and `tests/PrompterOne.Web.UITests` mirror those feature slices and reserve `Support` or `Infrastructure` for shared harness code.
68
+
-`tests/PrompterOne.Core.Tests`, `tests/PrompterOne.Web.Tests`, and `tests/PrompterOne.Web.UITests` mirror those feature slices.
69
+
-`tests/PrompterOne.Testing` owns reusable test assertions and runner configuration shared across multiple test projects.
69
70
70
71
## Design And Structure Principles
71
72
@@ -530,10 +531,13 @@ sequenceDiagram
530
531
531
532
```mermaid
532
533
flowchart LR
534
+
TestSupport["tests/PrompterOne.Testing"]
533
535
CoreTests["tests/PrompterOne.Core.Tests"]
534
536
AppTests["tests/PrompterOne.Web.Tests"]
535
537
UiTests["tests/PrompterOne.Web.UITests"]
536
538
539
+
CoreTests --> TestSupport
540
+
AppTests --> TestSupport
537
541
CoreTests --> Core["src/PrompterOne.Core"]
538
542
AppTests --> Shared["src/PrompterOne.Shared"]
539
543
UiTests --> App["src/PrompterOne.Web"]
@@ -544,6 +548,7 @@ flowchart LR
544
548
-`PrompterOne.Core.Tests`: domain correctness and regression tests grouped by core slice plus `Support/`
545
549
-`PrompterOne.Web.Tests`: bUnit coverage grouped by routed feature slice plus `Support/`
546
550
-`PrompterOne.Web.UITests`: Playwright browser flows grouped by browser feature slice plus `Infrastructure/`, `Scenarios/`, `Media/`, and `Support/`
551
+
-`PrompterOne.Testing`: shared test-only infrastructure such as assertion adapters and environment-aware runner limits
0 commit comments