Teren-app/tests/Feature/ArchiveSettingCrudTest.php
2025-10-05 19:45:49 +02:00

62 lines
1.9 KiB
PHP

<?php
/**
* @method \Illuminate\Testing\TestResponse post(string $uri, array $data = [])
* @method \Illuminate\Testing\TestResponse put(string $uri, array $data = [])
* @method \Illuminate\Testing\TestResponse delete(string $uri, array $data = [])
* @method $this actingAs(\App\Models\User $user, ?string $guard = null)
*/
use App\Models\ArchiveSetting;
use App\Models\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
uses(RefreshDatabase::class);
/** @var \Tests\TestCase $this */
it('creates an archive setting', function () {
$user = User::factory()->create();
test()->actingAs($user);
$response = test()->post(route('settings.archive.store'), [
'entities' => [
['table' => 'documents', 'conditions' => ['older_than_days' => 30]],
],
'strategy' => 'immediate',
'soft' => true,
'enabled' => true,
]);
$response->assertRedirect();
expect(ArchiveSetting::count())->toBe(1);
});
it('updates an archive setting', function () {
$user = User::factory()->create();
test()->actingAs($user);
$setting = ArchiveSetting::factory()->create();
$response = test()->put(route('settings.archive.update', $setting->id), [
'entities' => $setting->entities,
'strategy' => 'queued',
'soft' => false,
'enabled' => false,
]);
$response->assertRedirect();
$setting->refresh();
expect($setting->strategy)->toBe('queued')
->and($setting->soft)->toBeFalse()
->and($setting->enabled)->toBeFalse();
});
it('deletes an archive setting', function () {
$user = User::factory()->create();
test()->actingAs($user);
$setting = ArchiveSetting::factory()->create();
$response = test()->delete(route('settings.archive.destroy', $setting->id));
$response->assertRedirect();
expect(ArchiveSetting::withTrashed()->count())->toBe(1) // soft deleted
->and(ArchiveSetting::count())->toBe(0);
});