bert.hausmans
842cb01b3c
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-28 16:23:37 +02:00
..
2026-04-28 16:13:40 +02:00
2026-04-28 16:23:37 +02:00
2026-04-26 14:25:16 +02:00
2026-04-28 13:51:38 +02:00
2026-04-28 12:56:52 +02:00
2026-04-17 21:27:27 +02:00
2026-04-27 23:47:32 +02:00
2026-04-28 13:51:38 +02:00
2026-04-24 22:12:08 +02:00
2026-04-27 23:47:32 +02:00
2026-04-28 13:51:38 +02:00
2026-04-26 14:22:58 +02:00
2026-04-28 12:56:52 +02:00
2026-04-17 21:27:27 +02:00
2026-04-25 02:33:21 +02:00
2026-04-25 03:00:20 +02:00
2026-04-24 17:08:33 +02:00
2026-04-27 23:47:32 +02:00
2026-04-17 21:27:27 +02:00
2026-04-17 21:27:27 +02:00
2026-04-25 22:47:06 +02:00
2026-04-23 22:26:58 +02:00
2026-04-28 12:43:17 +02:00
2026-04-23 18:54:58 +02:00
2026-04-17 21:27:27 +02:00
2026-04-24 14:36:09 +02:00
2026-04-24 17:08:33 +02:00
2026-04-24 14:36:09 +02:00
2026-04-23 22:26:58 +02:00
2026-04-23 18:54:58 +02:00