01d292f5a9
План 4 Task 1 эпика project-migration-redesign. - AdminSupplierIntegrationController +getExportMode/setExportMode (validation in:online,batch; system_settings upsert). - Routes: GET/POST /api/admin/supplier-integration/export-mode в admin-группе рядом с manual-queue. - AdminSupplierIntegrationView.vue +секция «Режим экспорта проектов» с v-btn-toggle (online|batch), подпись о ночном синке 18:00. - Pest 3/3 + Vitest 2/2 (+ соседние 5 не сломаны). - phpstan-baseline.neon +6 ignore (Pest TestCall::actingAs/getJson/postJson — типовой паттерн, как в SupplierManualQueueTest).
47 lines
1.5 KiB
PHP
47 lines
1.5 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use App\Models\User;
|
|
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
uses(DatabaseTransactions::class);
|
|
|
|
// EnsureSaasAdmin — стаб в testing (см. SupplierManualQueueTest::16); actingAs
|
|
// нужен только для прохода middleware-стека auth+admin.
|
|
|
|
it('GET export-mode returns current value', function (): void {
|
|
$this->actingAs(User::factory()->create());
|
|
DB::table('system_settings')->updateOrInsert(
|
|
['key' => 'supplier_export_mode'],
|
|
['value' => 'batch', 'type' => 'string', 'updated_at' => now()],
|
|
);
|
|
|
|
$this->getJson('/api/admin/supplier-integration/export-mode')
|
|
->assertOk()
|
|
->assertJson(['mode' => 'batch']);
|
|
});
|
|
|
|
it('POST export-mode switches value', function (): void {
|
|
$this->actingAs(User::factory()->create());
|
|
DB::table('system_settings')->updateOrInsert(
|
|
['key' => 'supplier_export_mode'],
|
|
['value' => 'batch', 'type' => 'string', 'updated_at' => now()],
|
|
);
|
|
|
|
$this->postJson('/api/admin/supplier-integration/export-mode', ['mode' => 'online'])
|
|
->assertOk()
|
|
->assertJson(['mode' => 'online']);
|
|
|
|
expect(DB::table('system_settings')->where('key', 'supplier_export_mode')->value('value'))
|
|
->toBe('online');
|
|
});
|
|
|
|
it('POST export-mode rejects invalid value', function (): void {
|
|
$this->actingAs(User::factory()->create());
|
|
|
|
$this->postJson('/api/admin/supplier-integration/export-mode', ['mode' => 'turbo'])
|
|
->assertStatus(422);
|
|
});
|