assertSame('requires_identity_key_binding:person:email', $guard->code()); } public function test_passes_when_identity_key_binding_exists(): void { $schema = FormSchema::factory()->create(); $field = FormField::factory()->create(['form_schema_id' => $schema->id]); FormFieldBinding::factory() ->forField($field) ->entityOwned('person', 'email') ->create(['is_identity_key' => true]); $schema->load('fields.bindings'); $result = (new RequiresIdentityKeyBinding('person', 'email'))->evaluate($schema); $this->assertTrue($result->passed); } public function test_fails_when_binding_present_without_identity_key_flag(): void { $schema = FormSchema::factory()->create(); $field = FormField::factory()->create(['form_schema_id' => $schema->id]); FormFieldBinding::factory() ->forField($field) ->entityOwned('person', 'email') ->create(['is_identity_key' => false]); $schema->load('fields.bindings'); $result = (new RequiresIdentityKeyBinding('person', 'email'))->evaluate($schema); $this->assertFalse($result->passed); $this->assertSame( 'form_builder_publish_guards.requires_identity_key_binding', $result->messageKey, ); } }