Integration Baniere dans le backend
This commit is contained in:
@@ -115,4 +115,34 @@ class SignatureApiTest extends TestCase
|
||||
$this->assertStringContainsString('/img/campagnes/enc.png', $html);
|
||||
$this->assertStringContainsString('alt="Collecte"', $html);
|
||||
}
|
||||
|
||||
public function test_une_seule_banniere_selon_priorite_ciblage_et_periode(): void
|
||||
{
|
||||
$base = ['tenant_id' => $this->tenant->id, 'alt_text' => 'x', 'starts_at' => now()->subDay(), 'ends_at' => now()->addDay()];
|
||||
$group = DirectoryGroup::create(['tenant_id' => $this->tenant->id, 'entra_oid' => '33333333-3333-3333-3333-333333333333', 'display_name' => 'signature_mail_directeurs']);
|
||||
|
||||
Campaign::create($base + ['name' => 'Générale', 'image_path' => 'generale.png', 'priority' => 10]);
|
||||
Campaign::create($base + ['name' => 'Directeurs', 'image_path' => 'directeurs.png', 'priority' => 50, 'width' => 450,
|
||||
'link_url' => 'https://www.beziers-mediterranee.fr/voeux?a=1&b=2'])->groups()->attach($group->id);
|
||||
// Jamais servies, malgré une priorité supérieure : inactive, pas commencée, terminée.
|
||||
Campaign::create($base + ['name' => 'Inactive', 'image_path' => 'inactive.png', 'priority' => 100, 'active' => false]);
|
||||
Campaign::create(['name' => 'Future', 'image_path' => 'future.png', 'priority' => 100, 'starts_at' => now()->addHour()] + $base);
|
||||
Campaign::create(['name' => 'Passée', 'image_path' => 'passee.png', 'priority' => 100, 'ends_at' => now()->subHour()] + $base);
|
||||
|
||||
// Hors du groupe ciblé : campagne générale.
|
||||
$html = $this->signature()->assertOk()->json('html');
|
||||
$this->assertStringContainsString('/img/generale.png', $html);
|
||||
$this->assertStringNotContainsString('directeurs.png', $html);
|
||||
|
||||
// Dans le groupe : la campagne ciblée, plus prioritaire, remplace la générale.
|
||||
$group->members()->attach($this->agent->id);
|
||||
$html = $this->signature()->json('html');
|
||||
$this->assertStringContainsString('/img/directeurs.png', $html);
|
||||
$this->assertStringContainsString('width="450"', $html);
|
||||
$this->assertStringContainsString('<a href="https://www.beziers-mediterranee.fr/voeux?a=1&b=2"', $html);
|
||||
$this->assertSame(1, substr_count($html, '<img'));
|
||||
|
||||
// Pas de bannière dans la signature courte des réponses.
|
||||
$this->signature(['context' => 'reply'])->assertJson(['html' => 'd Jean']);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user