KI-Kennzeichnung: 2 Optionen im Submit-Modal + Labels auf Detailseite
Submit-Modal auf zwei Auswahloptionen reduziert (kein Label vs.
"Ganz oder ueberwiegend mit generativer KI erstellt"); alle vier
Enum-Werte bleiben fuer API/Bestand gueltig und mappen per formOption()
auf die zwei Gruppen. Oeffentliche Detailseite rendert jetzt Text-Label
("KI-generiert: Nach Angaben ...") und Bild-Badge (KI-generiert/
KI-bearbeitet, abgedunkelter Hintergrund) — fehlte dort bisher komplett.
Bildnachweis-Vorschlag ohne "Foto:"-Praefix (stand sonst doppelt).
Einreich-Toast + FAQ: automatische Pruefung in Minuten statt 24 h.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
c8836564e9
commit
dc2a3443c1
13 changed files with 172 additions and 50 deletions
|
|
@ -41,18 +41,29 @@ function makeAiDeclarationCustomer(): array
|
|||
}
|
||||
|
||||
test('the text declaration maps to the attributed public label per decision update', function () {
|
||||
// Zwei Gruppen (Vereinfachung 10.07.2026): None/Assisted → kein Label,
|
||||
// MostlyAi/FullyAi → gemeinsames „KI-generiert"-Label in Einreicher-Stimme.
|
||||
expect(AiTextDeclaration::None->publicLabel())->toBeNull();
|
||||
expect(AiTextDeclaration::Assisted->publicLabel())->toBeNull();
|
||||
expect(AiTextDeclaration::MostlyAi->publicLabel())
|
||||
->toBe('Nach Angaben des einreichenden Unternehmens wurde diese Pressemitteilung überwiegend mit generativer KI erstellt.');
|
||||
->toBe('KI-generiert: Nach Angaben des einreichenden Unternehmens wurde diese Pressemitteilung ganz oder überwiegend mit generativer KI erstellt.');
|
||||
expect(AiTextDeclaration::FullyAi->publicLabel())
|
||||
->toBe('Nach Angaben des einreichenden Unternehmens wurde diese Pressemitteilung vollständig mit generativer KI erstellt.');
|
||||
->toBe('KI-generiert: Nach Angaben des einreichenden Unternehmens wurde diese Pressemitteilung ganz oder überwiegend mit generativer KI erstellt.');
|
||||
});
|
||||
|
||||
test('every stored value maps onto one of the two form options', function () {
|
||||
expect(AiTextDeclaration::None->formOption())->toBe(AiTextDeclaration::None);
|
||||
expect(AiTextDeclaration::Assisted->formOption())->toBe(AiTextDeclaration::None);
|
||||
expect(AiTextDeclaration::MostlyAi->formOption())->toBe(AiTextDeclaration::MostlyAi);
|
||||
expect(AiTextDeclaration::FullyAi->formOption())->toBe(AiTextDeclaration::MostlyAi);
|
||||
expect(AiTextDeclaration::formCases())->toBe([AiTextDeclaration::None, AiTextDeclaration::MostlyAi]);
|
||||
});
|
||||
|
||||
test('the image declaration maps to the public image hint per decision update', function () {
|
||||
// Kurzform als Badge direkt am Bild (User-Entscheidung 10.07.2026).
|
||||
expect(AiImageDeclaration::Original->publicLabel())->toBeNull();
|
||||
expect(AiImageDeclaration::AiGenerated->publicLabel())->toBe('Bildhinweis: KI-generierte Illustration.');
|
||||
expect(AiImageDeclaration::AiEdited->publicLabel())->toBe('Bildhinweis: KI-bearbeitetes Bild.');
|
||||
expect(AiImageDeclaration::AiGenerated->publicLabel())->toBe('KI-generiert');
|
||||
expect(AiImageDeclaration::AiEdited->publicLabel())->toBe('KI-bearbeitet');
|
||||
});
|
||||
|
||||
test('submit is blocked without a complete ai declaration', function () {
|
||||
|
|
@ -199,7 +210,7 @@ test('submitting from the create editor persists the declaration and the audit e
|
|||
expect($pr->ai_text_declaration)->toBe(AiTextDeclaration::FullyAi);
|
||||
expect($pr->ai_declaration_confirmed_at)->not->toBeNull();
|
||||
expect($pr->aiTextPublicLabel())
|
||||
->toBe('Nach Angaben des einreichenden Unternehmens wurde diese Pressemitteilung vollständig mit generativer KI erstellt.');
|
||||
->toBe('KI-generiert: Nach Angaben des einreichenden Unternehmens wurde diese Pressemitteilung ganz oder überwiegend mit generativer KI erstellt.');
|
||||
|
||||
$entry = PressReleaseAiDeclaration::query()->sole();
|
||||
expect($entry->press_release_id)->toBe($pr->id);
|
||||
|
|
@ -254,8 +265,8 @@ test('the submit modal renders the declaration options and the binding confirmat
|
|||
|
||||
LivewireVolt::test('customer.press-releases.show', ['id' => $pr->id])
|
||||
->assertSee('KI-Kennzeichnung')
|
||||
->assertSee('Ohne generative KI erstellt')
|
||||
->assertSee('Vollständig KI-generiert (ohne wesentliche menschliche Bearbeitung)')
|
||||
->assertSee('Ohne generative KI erstellt – oder KI nur als Formulierungshilfe, mit anschließender menschlicher Überarbeitung und Verantwortung.')
|
||||
->assertSee('Ganz oder überwiegend mit generativer KI erstellt.')
|
||||
->assertSee('Ich bestätige, dass meine Angaben zum Einsatz generativer KI vollständig und wahrheitsgemäß sind.');
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue