create(); $f1 = FormField::factory()->create(['form_schema_id' => $schema->id]); $f2 = FormField::factory()->create(['form_schema_id' => $schema->id]); FormFieldBinding::factory()->forField($f1)->entityOwned('person', 'email') ->create(['trust_level' => 80]); FormFieldBinding::factory()->forField($f2)->entityOwned('person', 'email') ->create(['trust_level' => 60]); $schema->load('fields.bindings'); $result = (new NoAmbiguousTrustLevels())->evaluate($schema); $this->assertTrue($result->passed); } public function test_fails_with_duplicate_trust_levels(): void { $schema = FormSchema::factory()->create(); $f1 = FormField::factory()->create(['form_schema_id' => $schema->id]); $f2 = FormField::factory()->create(['form_schema_id' => $schema->id]); FormFieldBinding::factory()->forField($f1)->entityOwned('person', 'email') ->create(['trust_level' => 50]); FormFieldBinding::factory()->forField($f2)->entityOwned('person', 'email') ->create(['trust_level' => 50]); $schema->load('fields.bindings'); $result = (new NoAmbiguousTrustLevels())->evaluate($schema); $this->assertFalse($result->passed); $this->assertSame('person.email', $result->context['target']); } }