merge: origin/dev into feat/042

This commit is contained in:
Ahmed Darrazi 2026-01-08 01:57:35 +01:00
commit 0aa36810c7
57 changed files with 45 additions and 170 deletions

View File

@ -4,6 +4,7 @@
use App\Models\BackupSchedule; use App\Models\BackupSchedule;
use App\Models\BackupScheduleRun; use App\Models\BackupScheduleRun;
use App\Models\BackupSet; use App\Models\BackupSet;
use App\Services\BulkOperationService;
use App\Services\Intune\BackupService; use App\Services\Intune\BackupService;
use App\Services\Intune\PolicySyncService; use App\Services\Intune\PolicySyncService;
use Carbon\CarbonImmutable; use Carbon\CarbonImmutable;
@ -71,6 +72,7 @@ public function createBackupSet($tenant, $policyIds, ?string $actorEmail = null,
app(\App\Services\BackupScheduling\ScheduleTimeService::class), app(\App\Services\BackupScheduling\ScheduleTimeService::class),
app(\App\Services\Intune\AuditLogger::class), app(\App\Services\Intune\AuditLogger::class),
app(\App\Services\BackupScheduling\RunErrorMapper::class), app(\App\Services\BackupScheduling\RunErrorMapper::class),
app(BulkOperationService::class),
); );
$run->refresh(); $run->refresh();
@ -114,6 +116,7 @@ public function createBackupSet($tenant, $policyIds, ?string $actorEmail = null,
app(\App\Services\BackupScheduling\ScheduleTimeService::class), app(\App\Services\BackupScheduling\ScheduleTimeService::class),
app(\App\Services\Intune\AuditLogger::class), app(\App\Services\Intune\AuditLogger::class),
app(\App\Services\BackupScheduling\RunErrorMapper::class), app(\App\Services\BackupScheduling\RunErrorMapper::class),
app(BulkOperationService::class),
); );
$run->refresh(); $run->refresh();

View File

@ -1,9 +1,6 @@
<?php <?php
use App\Services\Intune\PolicyNormalizer; use App\Services\Intune\PolicyNormalizer;
use Tests\TestCase;
uses(TestCase::class);
test('app protection normalizer formats blocked/required booleans and durations', function () { test('app protection normalizer formats blocked/required booleans and durations', function () {
$normalizer = app(PolicyNormalizer::class); $normalizer = app(PolicyNormalizer::class);

View File

@ -9,10 +9,8 @@
use App\Services\Graph\ScopeTagResolver; use App\Services\Graph\ScopeTagResolver;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Mockery\MockInterface; use Mockery\MockInterface;
use Tests\TestCase;
uses(TestCase::class, RefreshDatabase::class);
uses(RefreshDatabase::class);
it('enriches assignment filter names when filter data is stored at root', function () { it('enriches assignment filter names when filter data is stored at root', function () {
$tenant = Tenant::factory()->create([ $tenant = Tenant::factory()->create([
'tenant_id' => 'tenant-123', 'tenant_id' => 'tenant-123',

View File

@ -6,10 +6,8 @@
use App\Services\Graph\GraphResponse; use App\Services\Graph\GraphResponse;
use App\Services\Graph\MicrosoftGraphClient; use App\Services\Graph\MicrosoftGraphClient;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
uses(TestCase::class, RefreshDatabase::class);
uses(RefreshDatabase::class);
beforeEach(function () { beforeEach(function () {
$this->graphClient = Mockery::mock(MicrosoftGraphClient::class); $this->graphClient = Mockery::mock(MicrosoftGraphClient::class);
$this->fetcher = new AssignmentFetcher($this->graphClient, app(GraphContractRegistry::class)); $this->fetcher = new AssignmentFetcher($this->graphClient, app(GraphContractRegistry::class));

View File

@ -5,10 +5,8 @@
use App\Services\Graph\MicrosoftGraphClient; use App\Services\Graph\MicrosoftGraphClient;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\Cache;
use Tests\TestCase;
uses(TestCase::class, RefreshDatabase::class);
uses(RefreshDatabase::class);
beforeEach(function () { beforeEach(function () {
Cache::flush(); Cache::flush();
$this->graphClient = Mockery::mock(MicrosoftGraphClient::class); $this->graphClient = Mockery::mock(MicrosoftGraphClient::class);

View File

@ -9,9 +9,6 @@
use App\Services\Graph\GraphLogger; use App\Services\Graph\GraphLogger;
use App\Services\Graph\GraphResponse; use App\Services\Graph\GraphResponse;
use App\Services\Intune\AuditLogger; use App\Services\Intune\AuditLogger;
use Tests\TestCase;
uses(TestCase::class);
beforeEach(function () { beforeEach(function () {
config()->set('graph_contracts.types.deviceManagementScript', [ config()->set('graph_contracts.types.deviceManagementScript', [

View File

@ -2,10 +2,8 @@
use App\Models\BackupItem; use App\Models\BackupItem;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
uses(TestCase::class, RefreshDatabase::class);
uses(RefreshDatabase::class);
test('assignments cast works', function () { test('assignments cast works', function () {
$backupItem = BackupItem::factory()->create([ $backupItem = BackupItem::factory()->create([
'assignments' => [ 'assignments' => [

View File

@ -3,9 +3,6 @@
use App\Models\BackupSchedule; use App\Models\BackupSchedule;
use App\Services\BackupScheduling\ScheduleTimeService; use App\Services\BackupScheduling\ScheduleTimeService;
use Carbon\CarbonImmutable; use Carbon\CarbonImmutable;
use Tests\TestCase;
uses(TestCase::class);
it('skips nonexistent DST local time slots for daily schedules', function () { it('skips nonexistent DST local time slots for daily schedules', function () {
$schedule = new BackupSchedule; $schedule = new BackupSchedule;

View File

@ -7,10 +7,8 @@
use Filament\Facades\Filament; use Filament\Facades\Filament;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Livewire\Livewire; use Livewire\Livewire;
use Tests\TestCase;
uses(TestCase::class, RefreshDatabase::class);
uses(RefreshDatabase::class);
test('policies bulk actions are available for authenticated users', function () { test('policies bulk actions are available for authenticated users', function () {
$tenant = Tenant::factory()->create(); $tenant = Tenant::factory()->create();
$user = User::factory()->create(); $user = User::factory()->create();

View File

@ -8,10 +8,8 @@
use App\Models\User; use App\Models\User;
use App\Services\BulkOperationService; use App\Services\BulkOperationService;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
uses(TestCase::class, RefreshDatabase::class);
uses(RefreshDatabase::class);
test('bulk backup set delete job archives sets and cascades to backup items', function () { test('bulk backup set delete job archives sets and cascades to backup items', function () {
$tenant = Tenant::factory()->create(); $tenant = Tenant::factory()->create();
$user = User::factory()->create(); $user = User::factory()->create();

View File

@ -9,10 +9,8 @@
use App\Models\User; use App\Models\User;
use App\Services\BulkOperationService; use App\Services\BulkOperationService;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
uses(TestCase::class, RefreshDatabase::class);
uses(RefreshDatabase::class);
test('bulk backup set force delete job permanently deletes archived sets and their items', function () { test('bulk backup set force delete job permanently deletes archived sets and their items', function () {
$tenant = Tenant::factory()->create(['is_current' => true]); $tenant = Tenant::factory()->create(['is_current' => true]);
$user = User::factory()->create(); $user = User::factory()->create();

View File

@ -8,10 +8,8 @@
use App\Models\User; use App\Models\User;
use App\Services\BulkOperationService; use App\Services\BulkOperationService;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
uses(TestCase::class, RefreshDatabase::class);
uses(RefreshDatabase::class);
test('bulk backup set restore job restores archived sets and their items', function () { test('bulk backup set restore job restores archived sets and their items', function () {
$tenant = Tenant::factory()->create(['is_current' => true]); $tenant = Tenant::factory()->create(['is_current' => true]);
$user = User::factory()->create(); $user = User::factory()->create();

View File

@ -6,8 +6,7 @@
use App\Services\BulkOperationService; use App\Services\BulkOperationService;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
uses(Tests\TestCase::class, RefreshDatabase::class); uses(RefreshDatabase::class);
it('can abort a bulk operation run', function () { it('can abort a bulk operation run', function () {
$tenant = Tenant::factory()->create(); $tenant = Tenant::factory()->create();
$user = User::factory()->create(); $user = User::factory()->create();

View File

@ -4,10 +4,8 @@
use App\Models\User; use App\Models\User;
use App\Services\BulkOperationService; use App\Services\BulkOperationService;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
uses(TestCase::class, RefreshDatabase::class);
uses(RefreshDatabase::class);
test('bulk operation service updates progress counters', function () { test('bulk operation service updates progress counters', function () {
$tenant = Tenant::factory()->create(); $tenant = Tenant::factory()->create();
$user = User::factory()->create(); $user = User::factory()->create();

View File

@ -6,10 +6,8 @@
use App\Models\User; use App\Models\User;
use App\Services\BulkOperationService; use App\Services\BulkOperationService;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
uses(TestCase::class, RefreshDatabase::class);
uses(RefreshDatabase::class);
test('job processes bulk delete successfully', function () { test('job processes bulk delete successfully', function () {
$tenant = Tenant::factory()->create(); $tenant = Tenant::factory()->create();
$user = User::factory()->create(); $user = User::factory()->create();

View File

@ -9,10 +9,8 @@
use App\Models\User; use App\Models\User;
use App\Services\BulkOperationService; use App\Services\BulkOperationService;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
uses(TestCase::class, RefreshDatabase::class);
uses(RefreshDatabase::class);
test('job processes bulk export successfully', function () { test('job processes bulk export successfully', function () {
$tenant = Tenant::factory()->create(); $tenant = Tenant::factory()->create();
$user = User::factory()->create(); $user = User::factory()->create();

View File

@ -7,10 +7,8 @@
use App\Models\User; use App\Models\User;
use App\Services\BulkOperationService; use App\Services\BulkOperationService;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
uses(TestCase::class, RefreshDatabase::class);
uses(RefreshDatabase::class);
test('job force deletes archived versions and skips active versions', function () { test('job force deletes archived versions and skips active versions', function () {
$tenant = Tenant::factory()->create(); $tenant = Tenant::factory()->create();
$user = User::factory()->create(); $user = User::factory()->create();

View File

@ -7,10 +7,8 @@
use App\Models\User; use App\Models\User;
use App\Services\BulkOperationService; use App\Services\BulkOperationService;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
uses(TestCase::class, RefreshDatabase::class);
uses(RefreshDatabase::class);
test('job prunes eligible versions and skips ineligible with reasons', function () { test('job prunes eligible versions and skips ineligible with reasons', function () {
$tenant = Tenant::factory()->create(); $tenant = Tenant::factory()->create();
$user = User::factory()->create(); $user = User::factory()->create();

View File

@ -8,10 +8,8 @@
use App\Models\User; use App\Models\User;
use App\Services\BulkOperationService; use App\Services\BulkOperationService;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
uses(TestCase::class, RefreshDatabase::class);
uses(RefreshDatabase::class);
test('bulk policy version restore restores archived versions', function () { test('bulk policy version restore restores archived versions', function () {
$tenant = Tenant::factory()->create(['is_current' => true]); $tenant = Tenant::factory()->create(['is_current' => true]);
$user = User::factory()->create(); $user = User::factory()->create();

View File

@ -7,10 +7,8 @@
use App\Models\User; use App\Models\User;
use App\Services\BulkOperationService; use App\Services\BulkOperationService;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
uses(TestCase::class, RefreshDatabase::class);
uses(RefreshDatabase::class);
test('job soft deletes deletable restore runs', function () { test('job soft deletes deletable restore runs', function () {
$tenant = Tenant::factory()->create(); $tenant = Tenant::factory()->create();
$user = User::factory()->create(); $user = User::factory()->create();

View File

@ -8,10 +8,8 @@
use App\Models\User; use App\Models\User;
use App\Services\BulkOperationService; use App\Services\BulkOperationService;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
uses(TestCase::class, RefreshDatabase::class);
uses(RefreshDatabase::class);
test('bulk restore run restore restores archived runs', function () { test('bulk restore run restore restores archived runs', function () {
$tenant = Tenant::factory()->create(['is_current' => true]); $tenant = Tenant::factory()->create(['is_current' => true]);
$user = User::factory()->create(); $user = User::factory()->create();

View File

@ -6,10 +6,8 @@
use App\Models\User; use App\Models\User;
use App\Services\BulkOperationService; use App\Services\BulkOperationService;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
uses(TestCase::class, RefreshDatabase::class);
uses(RefreshDatabase::class);
test('bulk delete aborts when more than half of items fail', function () { test('bulk delete aborts when more than half of items fail', function () {
$tenant = Tenant::factory()->create(); $tenant = Tenant::factory()->create();
$user = User::factory()->create(); $user = User::factory()->create();

View File

@ -2,8 +2,6 @@
use App\Services\Intune\CompliancePolicyNormalizer; use App\Services\Intune\CompliancePolicyNormalizer;
uses(Tests\TestCase::class);
it('groups compliance policy fields into structured blocks', function () { it('groups compliance policy fields into structured blocks', function () {
$normalizer = app(CompliancePolicyNormalizer::class); $normalizer = app(CompliancePolicyNormalizer::class);

View File

@ -2,8 +2,6 @@
use App\Services\Intune\DefaultPolicyNormalizer; use App\Services\Intune\DefaultPolicyNormalizer;
uses(Tests\TestCase::class);
it('flattens normalized settings with section prefixes for diffs', function () { it('flattens normalized settings with section prefixes for diffs', function () {
$normalizer = app(DefaultPolicyNormalizer::class); $normalizer = app(DefaultPolicyNormalizer::class);

View File

@ -2,8 +2,6 @@
use App\Services\Intune\DeviceConfigurationPolicyNormalizer; use App\Services\Intune\DeviceConfigurationPolicyNormalizer;
uses(Tests\TestCase::class);
it('builds a configuration block for device configuration policies', function () { it('builds a configuration block for device configuration policies', function () {
$normalizer = app(DeviceConfigurationPolicyNormalizer::class); $normalizer = app(DeviceConfigurationPolicyNormalizer::class);

View File

@ -9,10 +9,8 @@
use App\Services\Intune\FoundationSnapshotService; use App\Services\Intune\FoundationSnapshotService;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Mockery\MockInterface; use Mockery\MockInterface;
use Tests\TestCase;
uses(TestCase::class, RefreshDatabase::class);
uses(RefreshDatabase::class);
class FoundationMappingGraphClient implements GraphClientInterface class FoundationMappingGraphClient implements GraphClientInterface
{ {
public array $requests = []; public array $requests = [];

View File

@ -5,9 +5,7 @@
use App\Services\Graph\GraphResponse; use App\Services\Graph\GraphResponse;
use App\Services\Intune\FoundationSnapshotService; use App\Services\Intune\FoundationSnapshotService;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
uses(TestCase::class);
uses(RefreshDatabase::class); uses(RefreshDatabase::class);
class FoundationSnapshotGraphClient implements GraphClientInterface class FoundationSnapshotGraphClient implements GraphClientInterface

View File

@ -5,9 +5,6 @@
use App\Services\Graph\MicrosoftGraphClient; use App\Services\Graph\MicrosoftGraphClient;
use Illuminate\Http\Client\Request; use Illuminate\Http\Client\Request;
use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Http;
use Tests\TestCase;
uses(TestCase::class);
beforeEach(function () { beforeEach(function () {
config()->set('graph.base_url', 'https://graph.microsoft.com'); config()->set('graph.base_url', 'https://graph.microsoft.com');

View File

@ -7,9 +7,6 @@
use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Http;
use Tests\TestCase;
uses(TestCase::class);
it('falls back to default graph scope when config is empty', function () { it('falls back to default graph scope when config is empty', function () {
Cache::flush(); Cache::flush();

View File

@ -5,9 +5,6 @@
use App\Services\Graph\MicrosoftGraphClient; use App\Services\Graph\MicrosoftGraphClient;
use Illuminate\Http\Client\Request; use Illuminate\Http\Client\Request;
use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Http;
use Tests\TestCase;
uses(TestCase::class);
beforeEach(function () { beforeEach(function () {
config()->set('graph_contracts.types.deviceConfiguration', [ config()->set('graph_contracts.types.deviceConfiguration', [

View File

@ -1,9 +1,6 @@
<?php <?php
use App\Services\Graph\GraphContractRegistry; use App\Services\Graph\GraphContractRegistry;
use Tests\TestCase;
uses(TestCase::class);
beforeEach(function () { beforeEach(function () {
$this->registry = app(GraphContractRegistry::class); $this->registry = app(GraphContractRegistry::class);

View File

@ -1,9 +1,6 @@
<?php <?php
use App\Services\Graph\GraphContractRegistry; use App\Services\Graph\GraphContractRegistry;
use Tests\TestCase;
uses(TestCase::class);
beforeEach(function () { beforeEach(function () {
config()->set('graph_contracts.types.settingsCatalogPolicy', [ config()->set('graph_contracts.types.settingsCatalogPolicy', [

View File

@ -1,9 +1,6 @@
<?php <?php
use App\Services\Graph\GraphContractRegistry; use App\Services\Graph\GraphContractRegistry;
use Tests\TestCase;
uses(TestCase::class);
it('builds settings write method and path from the contract', function () { it('builds settings write method and path from the contract', function () {
config()->set('graph_contracts.types.settingsCatalogPolicy', [ config()->set('graph_contracts.types.settingsCatalogPolicy', [

View File

@ -2,9 +2,6 @@
use App\Services\Graph\GraphContractRegistry; use App\Services\Graph\GraphContractRegistry;
use App\Services\Graph\GraphResponse; use App\Services\Graph\GraphResponse;
use Tests\TestCase;
uses(TestCase::class);
beforeEach(function () { beforeEach(function () {
config()->set('graph_contracts.types.deviceConfiguration', [ config()->set('graph_contracts.types.deviceConfiguration', [

View File

@ -6,10 +6,8 @@
use App\Services\Graph\MicrosoftGraphClient; use App\Services\Graph\MicrosoftGraphClient;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\Cache;
use Tests\TestCase;
uses(TestCase::class, RefreshDatabase::class);
uses(RefreshDatabase::class);
beforeEach(function () { beforeEach(function () {
Cache::flush(); Cache::flush();
$this->graphClient = Mockery::mock(MicrosoftGraphClient::class); $this->graphClient = Mockery::mock(MicrosoftGraphClient::class);

View File

@ -1,9 +1,6 @@
<?php <?php
use App\Services\Intune\PolicyNormalizer; use App\Services\Intune\PolicyNormalizer;
use Tests\TestCase;
uses(TestCase::class);
test('managed device app configuration normalizer shows app config keys and values', function () { test('managed device app configuration normalizer shows app config keys and values', function () {
$normalizer = app(PolicyNormalizer::class); $normalizer = app(PolicyNormalizer::class);

View File

@ -2,8 +2,6 @@
declare(strict_types=1); declare(strict_types=1);
uses(Tests\TestCase::class);
use App\Services\Graph\GraphContractRegistry; use App\Services\Graph\GraphContractRegistry;
use App\Services\Graph\GraphLogger; use App\Services\Graph\GraphLogger;
use App\Services\Graph\MicrosoftGraphClient; use App\Services\Graph\MicrosoftGraphClient;

View File

@ -6,9 +6,6 @@
use Illuminate\Http\Client\RequestException as HttpRequestException; use Illuminate\Http\Client\RequestException as HttpRequestException;
use Illuminate\Http\Client\Response as HttpClientResponse; use Illuminate\Http\Client\Response as HttpClientResponse;
use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Http;
use Tests\TestCase;
uses(TestCase::class);
it('returns a graph response when the HTTP client throws for a 400 response', function () { it('returns a graph response when the HTTP client throws for a 400 response', function () {
config()->set('graph.client_id', 'client-id'); config()->set('graph.client_id', 'client-id');

View File

@ -10,10 +10,8 @@
use App\Services\Intune\PolicySnapshotService; use App\Services\Intune\PolicySnapshotService;
use App\Services\Intune\VersionService; use App\Services\Intune\VersionService;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
uses(TestCase::class, RefreshDatabase::class);
uses(RefreshDatabase::class);
test('capture returns failure when snapshot fetch fails (no exception)', function () { test('capture returns failure when snapshot fetch fails (no exception)', function () {
$tenant = Tenant::factory()->create([ $tenant = Tenant::factory()->create([
'tenant_id' => 'tenant-1', 'tenant_id' => 'tenant-1',

View File

@ -4,8 +4,6 @@
use App\Services\Intune\PolicyNormalizer; use App\Services\Intune\PolicyNormalizer;
use App\Services\Intune\PolicyTypeNormalizer; use App\Services\Intune\PolicyTypeNormalizer;
uses(Tests\TestCase::class);
it('routes to the first matching policy type normalizer', function () { it('routes to the first matching policy type normalizer', function () {
$defaultNormalizer = app(DefaultPolicyNormalizer::class); $defaultNormalizer = app(DefaultPolicyNormalizer::class);

View File

@ -4,9 +4,7 @@
use App\Models\SettingsCatalogDefinition; use App\Models\SettingsCatalogDefinition;
use App\Services\Intune\PolicyNormalizer; use App\Services\Intune\PolicyNormalizer;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
uses(TestCase::class);
uses(RefreshDatabase::class); uses(RefreshDatabase::class);
beforeEach(function () { beforeEach(function () {

View File

@ -2,9 +2,7 @@
use App\Services\Intune\PolicyNormalizer; use App\Services\Intune\PolicyNormalizer;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
uses(TestCase::class);
uses(RefreshDatabase::class); uses(RefreshDatabase::class);
beforeEach(function () { beforeEach(function () {

View File

@ -1,9 +1,6 @@
<?php <?php
use App\Services\Intune\PolicyNormalizer; use App\Services\Intune\PolicyNormalizer;
use Tests\TestCase;
uses(TestCase::class);
beforeEach(function () { beforeEach(function () {
$this->normalizer = app(PolicyNormalizer::class); $this->normalizer = app(PolicyNormalizer::class);

View File

@ -1,9 +1,5 @@
<?php <?php
use Tests\TestCase;
uses(TestCase::class);
it('shortens external ids for picker display', function () { it('shortens external ids for picker display', function () {
expect(\App\Livewire\BackupSetPolicyPickerTable::externalIdShort('00000000-0000-0000-0000-1234abcd')) expect(\App\Livewire\BackupSetPolicyPickerTable::externalIdShort('00000000-0000-0000-0000-1234abcd'))
->toBe('1234abcd'); ->toBe('1234abcd');

View File

@ -6,9 +6,7 @@
use App\Services\Graph\GraphResponse; use App\Services\Graph\GraphResponse;
use App\Services\Intune\PolicySnapshotService; use App\Services\Intune\PolicySnapshotService;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
uses(TestCase::class);
uses(RefreshDatabase::class); uses(RefreshDatabase::class);
class PolicySnapshotGraphClient implements GraphClientInterface class PolicySnapshotGraphClient implements GraphClientInterface

View File

@ -4,10 +4,8 @@
use App\Models\PolicyVersion; use App\Models\PolicyVersion;
use App\Models\Tenant; use App\Models\Tenant;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
uses(TestCase::class, RefreshDatabase::class);
uses(RefreshDatabase::class);
test('pruneEligible returns only old non-current versions', function () { test('pruneEligible returns only old non-current versions', function () {
$tenant = Tenant::factory()->create(); $tenant = Tenant::factory()->create();
$policy = Policy::factory()->create(['tenant_id' => $tenant->id]); $policy = Policy::factory()->create(['tenant_id' => $tenant->id]);

View File

@ -5,10 +5,8 @@
use App\Services\Graph\GraphResponse; use App\Services\Graph\GraphResponse;
use App\Services\Intune\RbacOnboardingService; use App\Services\Intune\RbacOnboardingService;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
uses(TestCase::class, RefreshDatabase::class);
uses(RefreshDatabase::class);
beforeEach(function () { beforeEach(function () {
config()->set('tenantpilot.features.conditional_access', false); config()->set('tenantpilot.features.conditional_access', false);
}); });

View File

@ -4,10 +4,8 @@
use App\Models\RestoreRun; use App\Models\RestoreRun;
use App\Models\Tenant; use App\Models\Tenant;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
uses(TestCase::class, RefreshDatabase::class);
uses(RefreshDatabase::class);
test('deletable scope includes only finished statuses', function () { test('deletable scope includes only finished statuses', function () {
$tenant = Tenant::factory()->create(); $tenant = Tenant::factory()->create();

View File

@ -2,10 +2,8 @@
use App\Models\RestoreRun; use App\Models\RestoreRun;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
uses(TestCase::class, RefreshDatabase::class);
uses(RefreshDatabase::class);
test('group_mapping cast works', function () { test('group_mapping cast works', function () {
$restoreRun = RestoreRun::factory()->create([ $restoreRun = RestoreRun::factory()->create([
'group_mapping' => [ 'group_mapping' => [

View File

@ -7,10 +7,8 @@
use App\Services\Graph\ScopeTagResolver; use App\Services\Graph\ScopeTagResolver;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\Cache;
use Tests\TestCase;
uses(TestCase::class, RefreshDatabase::class);
uses(RefreshDatabase::class);
beforeEach(function () { beforeEach(function () {
Cache::flush(); Cache::flush();
}); });
@ -139,4 +137,3 @@
expect($result[0])->toBe(['id' => '0', 'displayName' => 'Default']); expect($result[0])->toBe(['id' => '0', 'displayName' => 'Default']);
expect($result[2])->toBe(['id' => '2', 'displayName' => 'Verbund-2']); expect($result[2])->toBe(['id' => '2', 'displayName' => 'Verbund-2']);
}); });

View File

@ -1,9 +1,6 @@
<?php <?php
use App\Services\Intune\PolicyNormalizer; use App\Services\Intune\PolicyNormalizer;
use Tests\TestCase;
uses(TestCase::class);
it('normalizes deviceManagementScript into readable settings', function () { it('normalizes deviceManagementScript into readable settings', function () {
$normalizer = app(PolicyNormalizer::class); $normalizer = app(PolicyNormalizer::class);

View File

@ -3,8 +3,7 @@
use App\Services\Intune\SettingsCatalogPolicyNormalizer; use App\Services\Intune\SettingsCatalogPolicyNormalizer;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
uses(Tests\TestCase::class, RefreshDatabase::class); uses(RefreshDatabase::class);
it('builds a settings table for settings catalog policies', function () { it('builds a settings table for settings catalog policies', function () {
$normalizer = app(SettingsCatalogPolicyNormalizer::class); $normalizer = app(SettingsCatalogPolicyNormalizer::class);

View File

@ -2,10 +2,8 @@
use App\Models\Tenant; use App\Models\Tenant;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
uses(TestCase::class, RefreshDatabase::class);
uses(RefreshDatabase::class);
function restoreIntuneTenantId(string|false $original): void function restoreIntuneTenantId(string|false $original): void
{ {
$original !== false $original !== false

View File

@ -6,10 +6,8 @@
use App\Services\Graph\GraphResponse; use App\Services\Graph\GraphResponse;
use App\Services\Intune\TenantPermissionService; use App\Services\Intune\TenantPermissionService;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
uses(TestCase::class, RefreshDatabase::class);
uses(RefreshDatabase::class);
function requiredPermissions(): array function requiredPermissions(): array
{ {
$service = app(TenantPermissionService::class); $service = app(TenantPermissionService::class);

View File

@ -3,10 +3,8 @@
use App\Filament\Resources\TenantResource; use App\Filament\Resources\TenantResource;
use App\Models\Tenant; use App\Models\Tenant;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
uses(TestCase::class, RefreshDatabase::class);
uses(RefreshDatabase::class);
it('includes scope parameter in admin consent url', function () { it('includes scope parameter in admin consent url', function () {
// The adminConsentUrl builds scopes from intune_permissions config, not graph.scope // The adminConsentUrl builds scopes from intune_permissions config, not graph.scope
$tenant = Tenant::create([ $tenant = Tenant::create([

View File

@ -2,10 +2,8 @@
use App\Models\Tenant; use App\Models\Tenant;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
uses(TestCase::class, RefreshDatabase::class);
uses(RefreshDatabase::class);
it('finds tenant by guid without casting to bigint', function () { it('finds tenant by guid without casting to bigint', function () {
$tenant = Tenant::create([ $tenant = Tenant::create([
'tenant_id' => 'b0091e5d-944f-4a34-bcd9-12cbfb7b75cf', 'tenant_id' => 'b0091e5d-944f-4a34-bcd9-12cbfb7b75cf',

View File

@ -1,9 +1,6 @@
<?php <?php
use App\Services\Intune\PolicyNormalizer; use App\Services\Intune\PolicyNormalizer;
use Tests\TestCase;
uses(TestCase::class);
it('normalizes windows driver update profiles into readable settings', function () { it('normalizes windows driver update profiles into readable settings', function () {
$normalizer = app(PolicyNormalizer::class); $normalizer = app(PolicyNormalizer::class);