Premiere commit - Omika
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using Avalonia.Controls;
|
||||
using Avalonia.Headless;
|
||||
using Avalonia.VisualTree;
|
||||
using Xunit;
|
||||
|
||||
namespace Omika.Tests.Mobile;
|
||||
|
||||
/// <summary>
|
||||
/// Régression : l'agenda personnel n'affiche plus les trois blocs statistiques
|
||||
/// (« Rendez-vous », « Liés à une intervention », « Autonomes »). Ces compteurs
|
||||
/// faisaient doublon avec le bandeau de la journée et alourdissaient l'écran.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Le test ouvre la vue RÉELLE et parcourt l'arbre visuel : il ne dépend ni des
|
||||
/// données ni des services (aucun ViewModel n'est nécessaire, les libellés
|
||||
/// vérifiés sont écrits en dur dans le XAML). Il rejoint la collection
|
||||
/// « ApplicationRuntimeContext » car le localisateur d'Avalonia est global au
|
||||
/// processus.
|
||||
/// </remarks>
|
||||
[Collection("ApplicationRuntimeContext")]
|
||||
public sealed class AgendaSansCartesStatistiquesTests : IDisposable
|
||||
{
|
||||
private readonly HeadlessUnitTestSession _session =
|
||||
HeadlessUnitTestSession.StartNew(typeof(LayoutTestAppBuilder));
|
||||
|
||||
public void Dispose() => _session.Dispose();
|
||||
|
||||
[Fact]
|
||||
public void AgendaPersonnel_N_AffichePlusLesTroisBlocsStatistiques()
|
||||
{
|
||||
_session.Dispatch(
|
||||
() =>
|
||||
{
|
||||
Window fenetre = MesureGeometrique.Ouvrir(new Omika.App.Views.AgendaView(), 360);
|
||||
Control[] descendants = fenetre.GetVisualDescendants().OfType<Control>().ToArray();
|
||||
|
||||
// 1. Aucune carte statistique (classe de style dédiée).
|
||||
string[] cartes = descendants
|
||||
.OfType<Border>()
|
||||
.Where(b => b.Classes.Contains("statCard"))
|
||||
.Select(_ => "statCard")
|
||||
.ToArray();
|
||||
|
||||
Assert.Empty(cartes);
|
||||
|
||||
// 2. Aucun des libellés des trois blocs supprimés.
|
||||
string[] textes = descendants
|
||||
.OfType<TextBlock>()
|
||||
.Where(t => !string.IsNullOrWhiteSpace(t.Text))
|
||||
.Select(t => t.Text!)
|
||||
.ToArray();
|
||||
|
||||
Assert.DoesNotContain("Rendez-vous", textes);
|
||||
Assert.DoesNotContain("Liés à une intervention", textes);
|
||||
Assert.DoesNotContain("Autonomes", textes);
|
||||
|
||||
// 3. Le reste de la page est intact : bandeau de la journée et
|
||||
// sélecteur de mode.
|
||||
Assert.Contains("Votre journée", textes);
|
||||
Assert.Contains("Jour", textes);
|
||||
Assert.Contains("Semaine", textes);
|
||||
Assert.Contains("Calendrier", textes);
|
||||
|
||||
fenetre.Close();
|
||||
return true;
|
||||
},
|
||||
CancellationToken.None).GetAwaiter().GetResult();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user