HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: /home/xedaptot/ai.naniguide.com/tests/Feature/AdminGroupDefaultPermissionsTest.php
<?php

/**
 * Guard for AdminGroup default permissions — catches silent regressions that
 * would break the API upgrade endpoint for admin groups with NULL permissions.
 *
 * Why this test exists:
 *   POST /api/v1/upgrade/{run,finalize} gates on
 *   `Admin->getPermission('setting_upgrade_manager') === 'yes'`.
 *   When `admin_groups.permissions` is NULL (fresh install or legacy row),
 *   AdminGroup::getPermission() falls back to defaultPermissions().
 *   If that default flips back to 'no', upgrade API silently returns 401 and
 *   support engineers get stuck doing SSH — which is exactly what we shipped
 *   the API endpoint to avoid.
 */

use App\Model\AdminGroup;

uses(\Tests\TestCase::class);

it('grants setting_upgrade_manager=yes by default so API upgrade works on fresh installs', function () {
    $perms = AdminGroup::defaultPermissions();
    expect($perms)
        ->toHaveKey('setting_upgrade_manager')
        ->and($perms['setting_upgrade_manager'])->toBe('yes');
});

it('grants setting_general=yes by default so license refresh API works', function () {
    $perms = AdminGroup::defaultPermissions();
    expect($perms['setting_general'])->toBe('yes');
});