feat: enforce >90% SonarQube coverage standards for CakePHP and Laravel

- Add sonar-project.properties templates for CakePHP and Laravel
- Update install.sh to automatically provision SonarQube config
- Enhance cakephp-unit-test skill with exhaustive branch coverage rules
- Update SonarQube guide with CakePHP specific rules and exclusion patterns
- Enhance TableTest template with buildRules and validation failure cases
This commit is contained in:
2026-09-14 10:31:56 +07:00
parent 7425b263d5
commit 8f7212ef65
6 changed files with 201 additions and 35 deletions
@@ -101,4 +101,31 @@ class {{TABLE_NAME}}TableTest extends TestCase
$saved = $this->{{VARIABLE_NAME}}->get($result->id);
$this->assertSame('Sample Record', $saved->name);
}
/**
* Test buildRules method for uniqueness
*/
public function testBuildRulesUnique(): void
{
// Arrange
$entity1 = $this->{{VARIABLE_NAME}}->newEntity([
'name' => 'Unique Item',
'email' => 'unique@example.com',
]);
$this->{{VARIABLE_NAME}}->save($entity1);
// Act - Attempt to save duplicate
$entity2 = $this->{{VARIABLE_NAME}}->newEntity([
'name' => 'Duplicate Item',
'email' => 'unique@example.com',
]);
$result = $this->{{VARIABLE_NAME}}->save($entity2);
// Assert - Rule should fail if unique rule exists
if (!empty($entity2->getErrors())) {
$this->assertFalse($result);
} else {
$this->assertTrue(true);
}
}
}