seed(RolesAndPermissionsSeeder::class); Queue::fake(); }); test('the submit modal requires the archive notice confirmation', function () { /** @var TestCase $this */ ['customer' => $customer, 'pr' => $pr] = makeCustomerForShowPhase8a(); $this->actingAs($customer); LivewireVolt::test('customer.press-releases.show', ['id' => $pr->id]) // Archiv-Hinweis (AGB § 13 Abs. 1, T2neu) als eigene Bestätigung — // die frühere Erlöschens-Checkbox entfiel mit B2B-only (E2) … ->assertSee('dauerhaft archiviert') ->assertSee('gesetzliche Ansprüche bleiben unberührt') // … die den Bestätigen-Button mit sperrt. ->assertSeeHtml('agb && images && contact && waiver'); }); test('submitting records the archive notice consent timestamp on the press release', function () { /** @var TestCase $this */ ['customer' => $customer, 'pr' => $pr] = makeCustomerForShowPhase8a(); $this->actingAs($customer); expect($pr->withdrawal_waiver_consented_at)->toBeNull(); LivewireVolt::test('customer.press-releases.show', ['id' => $pr->id]) ->call('submitForReview') ->assertHasNoErrors(); $pr->refresh(); expect($pr->status)->toBe(PressReleaseStatus::Review); expect($pr->withdrawal_waiver_consented_at)->not->toBeNull(); }); test('the index draft action opens the shared submit modal instead of a quick submit', function () { /** @var TestCase $this */ ['customer' => $customer] = makeCustomerForShowPhase8a(); $this->actingAs($customer); LivewireVolt::test('customer.press-releases.index') ->assertSee('Zur Prüfung') // Gemeinsames Modal inkl. Archiv-Hinweis statt wire:confirm, // das die rechtlichen Bestätigungen umgehen würde. ->assertSee('dauerhaft archiviert') ->assertDontSeeHtml('wire:confirm'); });