using MeterVault.Infrastructure.Dashboard; namespace MeterVault.Integration.Tests; /// /// The dashboard's empty state names the first missing step of the cost setup. Pure, so no Docker. /// public sealed class CostSetupTests { [Fact] public void A_fresh_instance_starts_with_a_meter() => Assert.Equal(CostSetupGap.NoMeters, new CostSetup(false, false, false, false, false).FirstGap); [Fact] public void The_steps_are_reported_in_setup_order() { Assert.Equal(CostSetupGap.NoCategories, new CostSetup(true, false, false, false, false).FirstGap); Assert.Equal(CostSetupGap.NoMembers, new CostSetup(true, true, false, false, false).FirstGap); Assert.Equal(CostSetupGap.NoTariffs, new CostSetup(true, true, true, false, false).FirstGap); Assert.Equal(CostSetupGap.None, new CostSetup(true, true, true, true, false).FirstGap); } [Fact] public void Manual_costs_stand_in_for_meters_only_where_there_are_none() { Assert.Equal(CostSetupGap.None, new CostSetup(false, true, false, false, true).FirstGap); Assert.Equal(CostSetupGap.NoCategories, new CostSetup(false, false, false, false, true).FirstGap); // Old manual costs do not hide what the meters are missing. Assert.Equal(CostSetupGap.NoMembers, new CostSetup(true, true, false, false, true).FirstGap); Assert.Equal(CostSetupGap.NoTariffs, new CostSetup(true, true, true, false, true).FirstGap); } }