54 lines
2.5 KiB
C#
54 lines
2.5 KiB
C#
using Bunit;
|
|
using Duempelkas.App.Components.Accounts;
|
|
using Duempelkas.App.Services;
|
|
using Duempelkas.App.Services.Models;
|
|
using Duempelkas.Domain.Enums;
|
|
using Duempelkas.Infrastructure.Services;
|
|
using Xunit;
|
|
|
|
namespace Duempelkas.Tests;
|
|
|
|
public class HistoryPreferenceTests
|
|
{
|
|
[Fact]
|
|
public async Task PreferenceSurvivesRestart_AndPreservesOtherSettings()
|
|
{
|
|
var folder = Path.Combine(Path.GetTempPath(), "duempelkas-history-" + Guid.NewGuid().ToString("N"));
|
|
try
|
|
{
|
|
var settings = new SettingsService(folder);
|
|
Assert.False(await settings.GetShowDeletedEntriesAsync());
|
|
await settings.SetClubNameAsync("Testverein");
|
|
await settings.SetShowDeletedEntriesAsync(true);
|
|
var restarted = new SettingsService(folder);
|
|
Assert.True(await restarted.GetShowDeletedEntriesAsync());
|
|
Assert.Equal("Testverein", await restarted.GetClubNameAsync());
|
|
await restarted.SetSetupStepAsync(2);
|
|
Assert.True(await new SettingsService(folder).GetShowDeletedEntriesAsync());
|
|
await restarted.SetShowDeletedEntriesAsync(false);
|
|
Assert.False(await new SettingsService(folder).GetShowDeletedEntriesAsync());
|
|
}
|
|
finally { if (Directory.Exists(folder)) Directory.Delete(folder, true); }
|
|
}
|
|
|
|
[Fact]
|
|
public async Task HistoryStaysEnabledAcrossAccountsAndFilterReset_UntilSwitchedOff()
|
|
{
|
|
using var f = new LedgerUiFixture();
|
|
List<EntryDto> Rows(int account) => [new(account, account, "2026-001", EntryType.Income,
|
|
DateTime.Today, "Deleted test", 10m, true, false, null, null, null)];
|
|
var first = f.Context.Render<EntryTable>(p => p.Add(x => x.Entries, Rows(1)));
|
|
Assert.Empty(first.FindAll("tbody tr"));
|
|
await first.Find("#show-deleted").ChangeAsync(new() { Value = true });
|
|
Assert.True(await f.Service<ISettingsService>().GetShowDeletedEntriesAsync());
|
|
first.Find(".filter-reset").Click();
|
|
Assert.Single(first.FindAll("tbody tr"));
|
|
var second = f.Context.Render<EntryTable>(p => p.Add(x => x.Entries, Rows(2)));
|
|
second.WaitForAssertion(() => Assert.Single(second.FindAll("tbody tr")));
|
|
await second.Find("#show-deleted").ChangeAsync(new() { Value = false });
|
|
Assert.False(await f.Service<ISettingsService>().GetShowDeletedEntriesAsync());
|
|
var returning = f.Context.Render<EntryTable>(p => p.Add(x => x.Entries, Rows(1)));
|
|
returning.WaitForAssertion(() => Assert.Empty(returning.FindAll("tbody tr")));
|
|
}
|
|
}
|