feat: bật/tắt yêu cầu hoàn tất hồ sơ, xoá dịch vụ kèm đơn/hoá đơn, sync tên VM đã gán
- setting.require_complete_profile (mặc định bật), trả qua GET v1/setting - bulkDeleteServices xoá mềm invoice nâng cấp + order mồ côi (ServiceOrderRecorder::discardOrder) - createService trỏ dịch vụ sang order mới thì bỏ order cũ - SyncVirtualMachine cập nhật name + gắn virtual_machine_id cho module_vmware Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
bf78f3b810
commit
0bd15f6018
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Tests\Feature\Jobs;
|
||||
|
||||
use App\Jobs\VirtualMachine\Sync\SyncVirtualMachine;
|
||||
use App\Models\ModuleVmware;
|
||||
use App\Models\VirtualMachines;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Support\Str;
|
||||
use Tests\TestCase;
|
||||
|
||||
class SyncVirtualMachineTest extends TestCase
|
||||
{
|
||||
use RefreshDatabase;
|
||||
|
||||
private function sync(array $vms): void
|
||||
{
|
||||
$synced = [];
|
||||
$failed = false;
|
||||
(new \ReflectionMethod(SyncVirtualMachine::class, 'processVMs'))
|
||||
->invokeArgs(new SyncVirtualMachine, [$vms, null, 1, 1, &$synced, &$failed]);
|
||||
}
|
||||
|
||||
public function test_renamed_vm_updates_assigned_module_vmware_name(): void
|
||||
{
|
||||
Schema::disableForeignKeyConstraints();
|
||||
$vm = VirtualMachines::create(['uuid' => (string) Str::uuid(), 'vm_id' => 'vm-1', 'name' => 'old-name', 'datacenter_id' => 1, 'host_id' => 1]);
|
||||
$linked = ModuleVmware::create(['name' => 'old-name', 'vmware_id' => 'vm-1', 'virtual_machine_id' => $vm->id, 'hostname' => 'customer-host']);
|
||||
$legacy = ModuleVmware::create(['name' => 'old-name', 'vmware_id' => 'vm-1']);
|
||||
$other = ModuleVmware::create(['name' => 'untouched', 'vmware_id' => 'vm-2']);
|
||||
|
||||
$this->sync([['vm' => 'vm-1', 'name' => 'new-name', 'power_state' => 'POWERED_ON', 'cpu_count' => 2, 'memory_size_MiB' => 2048]]);
|
||||
|
||||
$this->assertSame('new-name', $vm->fresh()->name);
|
||||
$this->assertSame('new-name', $linked->fresh()->name);
|
||||
$this->assertSame('customer-host', $linked->fresh()->hostname);
|
||||
$this->assertSame('new-name', $legacy->fresh()->name);
|
||||
$this->assertSame($vm->id, (int) $legacy->fresh()->virtual_machine_id);
|
||||
$this->assertSame('untouched', $other->fresh()->name);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user