diff --git a/app/Console/Commands/ConfigureInstanceMail.php b/app/Console/Commands/ConfigureInstanceMail.php index e7c42aa..1438653 100644 --- a/app/Console/Commands/ConfigureInstanceMail.php +++ b/app/Console/Commands/ConfigureInstanceMail.php @@ -76,7 +76,6 @@ class ConfigureInstanceMail extends Command AdvanceRunJob::dispatch($run->uuid); $this->info("{$instance->uuid}: Lauf {$run->id} gestartet"); - $started++; } foreach ($skipped as $reason => $count) { diff --git a/tests/Feature/Console/ConfigureInstanceMailCommandTest.php b/tests/Feature/Console/ConfigureInstanceMailCommandTest.php index fb85552..56fb86c 100644 --- a/tests/Feature/Console/ConfigureInstanceMailCommandTest.php +++ b/tests/Feature/Console/ConfigureInstanceMailCommandTest.php @@ -104,3 +104,33 @@ it('ueberspringt eine Instanz mit laufendem Lauf und sagt es', function () { // Kein neuer Lauf angelegt expect(ProvisioningRun::where('pipeline', 'instance-mail')->count())->toBe(0); }); + +it('zaehlt die Laeufe korrekt in der Abschlusszusammenfassung', function () { + aktiveInstanzMitHost(); + aktiveInstanzMitHost(['vmid' => 102]); + aktiveInstanzMitHost(['vmid' => 103]); + + // Eine Instanz ohne Host (wird uebergangen) + Instance::factory()->create(['status' => 'active', 'host_id' => null, 'vmid' => 104]); + + $this->artisan('clupilot:configure-instance-mail') + // Genau 3 Laeufe, nicht 6 wegen Doppelzaehlung + ->expectsOutputToContain('3 Lauf/Läufe gestartet') + ->expectsOutputToContain('übersprungen (kein Host): 1') + ->assertSuccessful(); +}); + +it('zaehlt unter --dry-run richtig', function () { + aktiveInstanzMitHost(); + aktiveInstanzMitHost(['vmid' => 102]); + + // Eine Instanz ohne VMID (wird uebergangen) + $host = Host::factory()->active()->create(['datacenter' => 'fsn', 'node' => 'pve']); + Instance::factory()->create(['status' => 'active', 'host_id' => $host->id, 'vmid' => null]); + + $this->artisan('clupilot:configure-instance-mail', ['--dry-run' => true]) + // Genau 2 Instanzen im Probelauf + ->expectsOutputToContain('Probelauf: 2 Instanz(en) bekämen') + ->expectsOutputToContain('übersprungen (keine VMID): 1') + ->assertSuccessful(); +});