bert.hausmans
e1551b24bc
test(form-builder): per-purpose pipeline smoke for the 6 non-event_registration purposes (WS-6)
RFC §3 Q9 contract — applicator is purpose-agnostic; per-purpose
differences live in PurposeSubjectResolver. Sessie 2's smoke matrix
covered only event_registration; this commit fills the remaining six.
Coverage per file (18 tests total, all passing):
- SignatureContractPurposePipelineTest (3 tests)
happy path + conflict resolution + no_auth missing-context
target: User via auth (User::email/first_name/last_name)
- UserProfilePurposePipelineTest (3 tests)
happy path + conflict resolution + no_auth missing-context
target: User via auth
- SupplierIntakePurposePipelineTest (3 tests)
happy path + conflict resolution + no_production_request missing-context
target: Company subject pre-set by production_request flow
- PostEventEvaluationPurposePipelineTest (4 tests)
happy path + conflict resolution + no_person_for_user + no_auth
target: Person via auth user → Person.event_id link
- IncidentReportPurposePipelineTest (4 tests)
happy path (auth + Person link)
+ conflict resolution
+ anonymous-allowed (null subject → COMPLETED, empty applications)
+ auth-without-Person (null subject branch)
Unique purpose: only one allowed to legitimately resolve to no subject.
- ArtistAdvancePurposePipelineTest (1 test)
no_portal_token missing-context only.
Happy path + subject_not_found branches require the Artist model
(BACKLOG: ARCH-09); morphTo can't materialise a non-existent class.
Documented inline; full coverage follows once ARCH-09 lands.
Each test wires the schema_snapshot directly with the applicator-shape
binding entries (matches sessie 2's FormBindingApplicatorIntegrationTest
pattern). All bindings use registered binding-target attributes from
config/form_builder/binding_targets.php to satisfy BindingTypeRegistry's
strict resolve() at apply time.
Refs: RFC-WS-6.md §3 Q9, ARCH-BINDINGS.md § 6.5
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 00:14:11 +02:00
..
2026-04-25 02:33:21 +02:00
2026-04-15 23:49:51 +02:00
2026-04-10 23:04:55 +02:00
2026-04-14 08:16:36 +02:00
2026-04-10 11:15:51 +02:00
2026-04-15 20:12:21 +02:00
2026-04-16 20:42:25 +02:00
2026-04-14 08:16:36 +02:00
2026-04-29 00:14:11 +02:00
2026-04-15 20:12:21 +02:00
2026-04-14 08:16:36 +02:00
2026-04-13 00:44:34 +02:00
2026-04-08 01:34:46 +02:00
2026-04-24 23:43:34 +02:00
2026-04-17 12:35:41 +02:00
2026-04-24 17:10:37 +02:00
2026-04-14 08:44:24 +02:00
2026-04-14 08:16:36 +02:00
2026-04-24 16:38:08 +02:00
2026-04-17 18:43:00 +02:00
2026-04-14 22:07:37 +02:00
2026-04-14 22:07:37 +02:00
2026-03-29 23:19:06 +02:00
2026-04-17 20:47:39 +02:00