169 lines
5.3 KiB
C#
169 lines
5.3 KiB
C#
using Yavsc.Abstract.Identity;
|
||
using PostIt.ViewModels;
|
||
|
||
namespace PostIt.Tests;
|
||
|
||
public class HomePageProviderFlowTests
|
||
{
|
||
[Fact]
|
||
public void HomePage_exposes_provider_requests_command()
|
||
{
|
||
var vm = new HomePageViewModel();
|
||
|
||
Assert.NotNull(vm.OpenProviderRequests);
|
||
Assert.True(vm.OpenProviderRequests.CanExecute(null));
|
||
}
|
||
|
||
[Fact]
|
||
public void HomePage_exposes_profile_command()
|
||
{
|
||
var vm = new HomePageViewModel();
|
||
|
||
Assert.NotNull(vm.OpenProfile);
|
||
Assert.True(vm.OpenProfile.CanExecute(null));
|
||
}
|
||
|
||
[Fact]
|
||
public void HomePage_exposes_performer_configuration_command()
|
||
{
|
||
var vm = new HomePageViewModel();
|
||
|
||
Assert.NotNull(vm.OpenPerformerConfiguration);
|
||
Assert.True(vm.OpenPerformerConfiguration.CanExecute(null));
|
||
}
|
||
|
||
[Fact]
|
||
public void HomePage_exposes_administration_command()
|
||
{
|
||
var vm = new HomePageViewModel();
|
||
|
||
Assert.NotNull(vm.OpenAdministration);
|
||
Assert.True(vm.OpenAdministration.CanExecute(null));
|
||
}
|
||
|
||
[Fact]
|
||
public void Administration_page_filters_users_by_search_text()
|
||
{
|
||
var vm = new AdministrationPageViewModel();
|
||
vm.Users.Add(new Yavsc.Abstract.Identity.UserInfo { UserId = "1", UserName = "alice", FullName = "Alice Example" });
|
||
vm.Users.Add(new Yavsc.Abstract.Identity.UserInfo { UserId = "2", UserName = "bob", FullName = "Bob Jones" });
|
||
vm.Users.Add(new Yavsc.Abstract.Identity.UserInfo { UserId = "3", UserName = "carol", FullName = "Carol Smith" });
|
||
|
||
vm.SearchText = "ali";
|
||
|
||
Assert.Single(vm.FilteredUsers);
|
||
Assert.Equal("alice", vm.FilteredUsers[0].UserName);
|
||
}
|
||
|
||
[Fact]
|
||
public void Administration_page_filters_users_by_full_name()
|
||
{
|
||
var vm = new AdministrationPageViewModel();
|
||
vm.Users.Add(new Yavsc.Abstract.Identity.UserInfo { UserId = "1", UserName = "alice", FullName = "Alice Example" });
|
||
vm.Users.Add(new Yavsc.Abstract.Identity.UserInfo { UserId = "2", UserName = "bob", FullName = "Bob Jones" });
|
||
|
||
vm.SearchText = "example";
|
||
|
||
Assert.Single(vm.FilteredUsers);
|
||
Assert.Equal("alice", vm.FilteredUsers[0].UserName);
|
||
}
|
||
|
||
[Fact]
|
||
public void UserProfilePage_exposes_full_name_and_address_fields()
|
||
{
|
||
var vm = new UserProfilePageViewModel();
|
||
|
||
Assert.Equal("—", vm.FullName);
|
||
Assert.Equal("—", vm.Address);
|
||
Assert.Equal("Non configuré", vm.DedicatedGoogleCalendar);
|
||
Assert.Equal("Aucune information bancaire", vm.BankInfoSummary);
|
||
Assert.NotNull(vm.RefreshCommand);
|
||
}
|
||
|
||
[Fact]
|
||
public void ProfileUpdateRequest_allows_username_updates()
|
||
{
|
||
var request = new ProfileUpdateRequest
|
||
{
|
||
UserName = "alice.new"
|
||
};
|
||
|
||
Assert.Equal("alice.new", request.UserName);
|
||
}
|
||
|
||
[Fact]
|
||
public void UserProfilePage_can_save_profile_values()
|
||
{
|
||
var vm = new UserProfilePageViewModel
|
||
{
|
||
UserName = "alice.new",
|
||
FullName = "Alice Example",
|
||
Address = "14 rue de l’Érable",
|
||
DedicatedGoogleCalendar = "calendar-123",
|
||
BankInfoSummary = "FR14 2004 1010 0505 0001 3M02 606"
|
||
};
|
||
|
||
Assert.NotNull(vm.SaveProfileCommand);
|
||
Assert.True(vm.SaveProfileCommand.CanExecute(null));
|
||
}
|
||
|
||
[Fact]
|
||
public void UserProfilePage_builds_profile_payload_for_calendar_and_bank_values()
|
||
{
|
||
var vm = new UserProfilePageViewModel
|
||
{
|
||
UserName = "alice.new",
|
||
FullName = "Alice Example",
|
||
Address = "14 rue de l’Érable",
|
||
DedicatedGoogleCalendar = "calendar-123",
|
||
BankInfoSummary = "FR14 2004 1010 0505 0001 3M02 606"
|
||
};
|
||
|
||
var payload = vm.BuildProfileUpdateRequest();
|
||
|
||
Assert.Equal("alice.new", payload.UserName);
|
||
Assert.Equal("calendar-123", payload.GoogleCalendarId);
|
||
Assert.Equal("FR14 2004 1010 0505 0001 3M02 606", payload.BankInfoSummary);
|
||
}
|
||
|
||
[Fact]
|
||
public void UserProfilePage_turns_placeholder_values_into_empty_payload_fields()
|
||
{
|
||
var vm = new UserProfilePageViewModel
|
||
{
|
||
UserName = "alice.new",
|
||
FullName = "Alice Example",
|
||
Address = "14 rue de l’Érable",
|
||
DedicatedGoogleCalendar = "Non configuré",
|
||
BankInfoSummary = "Aucune information bancaire"
|
||
};
|
||
|
||
var payload = vm.BuildProfileUpdateRequest();
|
||
|
||
Assert.Equal(string.Empty, payload.GoogleCalendarId);
|
||
Assert.Equal(string.Empty, payload.BankInfoSummary);
|
||
}
|
||
|
||
[Fact]
|
||
public void PerformerConfigurationPage_preserves_current_user_id_in_save_payload()
|
||
{
|
||
var vm = new PerformerConfigurationPageViewModel
|
||
{
|
||
PerformerId = "user-42",
|
||
UserName = "alice",
|
||
ExerciseCountryCode = "fr",
|
||
SIREN = "123456789",
|
||
Website = "https://example.com",
|
||
Active = true,
|
||
AcceptNotifications = true,
|
||
AcceptPublicContact = true,
|
||
UseGeoLocalizationToReduceDistanceWithClients = true
|
||
};
|
||
|
||
var payload = vm.BuildPerformerProfileSettings();
|
||
|
||
Assert.Equal("user-42", payload.PerformerId);
|
||
Assert.Equal("alice", payload.UserName);
|
||
Assert.Equal("fr", payload.ExerciseCountryCode);
|
||
}
|
||
}
|