feat: add permission to reopen closed jobcards
This commit is contained in:
@@ -5,10 +5,14 @@ $root = dirname(__DIR__);
|
||||
$schema = file_get_contents($root . '/database/schema.sql');
|
||||
$upgrade = file_get_contents($root . '/database/upgrade.sql');
|
||||
$front = file_get_contents($root . '/public/index.php');
|
||||
if ($schema === false || $upgrade === false || $front === false) throw new RuntimeException('Fixtures must be readable.');
|
||||
$validator = file_get_contents($root . '/app/Domain/Jobcard/StatusTransitionValidator.php');
|
||||
if ($schema === false || $upgrade === false || $front === false || $validator === false) throw new RuntimeException('Fixtures must be readable.');
|
||||
function jobcard_feature_assert(bool $ok, string $message): void { if (!$ok) throw new RuntimeException($message); }
|
||||
jobcard_feature_assert(str_contains($schema, "('jobcards.close', 'Close jobcards')"), 'Fresh schema must seed jobcards.close.');
|
||||
jobcard_feature_assert(str_contains($upgrade, "('jobcards.close', 'Close jobcards')"), 'Upgrade must seed jobcards.close.');
|
||||
jobcard_feature_assert(str_contains($schema, "('jobcards.reopen', 'Reopen closed jobcards')"), 'Fresh schema must seed jobcards.reopen.');
|
||||
jobcard_feature_assert(str_contains($upgrade, "('jobcards.reopen', 'Reopen closed jobcards')"), 'Upgrade must seed jobcards.reopen.');
|
||||
jobcard_feature_assert(str_contains($front, "if (\$locked['status'] === 'closed' && \$to !== 'closed') require_permission('jobcards.reopen');"), 'Reopening must require jobcards.reopen.');
|
||||
jobcard_feature_assert(str_contains($validator, "'closed' => ['in_progress']"), 'Closed jobcards must support reopening to in progress.');
|
||||
|
||||
jobcard_feature_assert(str_contains($front, "if (\$to === 'closed') require_permission('jobcards.close');"), 'Closing a jobcard must require jobcards.close.');
|
||||
jobcard_feature_assert(str_contains($front, "name=\"q\"") && str_contains($front, "name=\"status_filter\""), 'Jobcards page must expose search and status filters.');
|
||||
jobcard_feature_assert(str_contains($front, "j.status <> 'closed'"), 'Default Jobcards filter must exclude closed records.');
|
||||
|
||||
Reference in New Issue
Block a user