feat(ui): tickets + plan day button, fallback list and prime action
This commit is contained in:
@@ -58,4 +58,39 @@ public class PrepPanelViewModelTests
|
||||
Assert.False(vm.PrepOperation.IsRunning);
|
||||
Assert.True(vm.PlanDayCommand.CanExecute(null));
|
||||
}
|
||||
|
||||
private sealed class TicketWorker : StubWorkerClient
|
||||
{
|
||||
public TicketSettingsDto? Settings { get; set; }
|
||||
public override Task<TicketSettingsDto?> GetTicketSettingsAsync() => Task.FromResult(Settings);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("http://api", true, true)]
|
||||
[InlineData("http://api", false, false)]
|
||||
[InlineData(null, true, false)]
|
||||
public async Task TicketsConfigured_needs_base_url_and_token(string? url, bool tokenSet, bool expected)
|
||||
{
|
||||
var worker = new TicketWorker { Settings = new TicketSettingsDto(url, tokenSet) };
|
||||
var vm = new PrepPanelViewModel(worker);
|
||||
|
||||
await vm.RefreshTicketsConfiguredAsync();
|
||||
|
||||
Assert.Equal(expected, vm.TicketsConfigured);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task ImportTicketsAndPlanDay_calls_the_worker_and_shares_the_plan_day_lock()
|
||||
{
|
||||
var worker = new Worker();
|
||||
var vm = new PrepPanelViewModel(worker);
|
||||
|
||||
var plan = vm.PlanDayCommand.ExecuteAsync(null);
|
||||
Assert.False(vm.ImportTicketsAndPlanDayCommand.CanExecute(null));
|
||||
worker.Gate.SetResult(true);
|
||||
await plan;
|
||||
|
||||
await vm.ImportTicketsAndPlanDayCommand.ExecuteAsync(null);
|
||||
Assert.Equal(1, worker.RunTicketImportNowCalls);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user