feat(i18n): persist Bokmal preference globally
This commit is contained in:
@@ -426,6 +426,35 @@ public sealed class AuthAndSystemControllerTests
|
||||
Assert.Equal("Ada L.", user.DisplayName);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Language_preference_normalizes_and_persists_norwegian_bokmal()
|
||||
{
|
||||
var user = new ApplicationUser { Id = "user-1", UiLanguage = "en" };
|
||||
var users = CreateUserManager();
|
||||
users.Setup(x => x.GetUserAsync(It.IsAny<System.Security.Claims.ClaimsPrincipal>())).ReturnsAsync(user);
|
||||
users.Setup(x => x.UpdateAsync(user)).ReturnsAsync(IdentityResult.Success);
|
||||
var controller = new AuthController(BuildConfig(), users.Object, Mock.Of<ITokenService>(), Mock.Of<IAppEmailSender>(), Mock.Of<IGoogleTokenValidator>(), Mock.Of<IMicrosoftTokenValidator>(), NullLogger<AuthController>.Instance, Mock.Of<ITwoFactorPendingTokenService>(), TestHostFactory.CreateInMemoryDb());
|
||||
|
||||
var result = await controller.UpdateLanguagePreference(new AuthController.UpdateLanguagePreferenceRequest("nb"));
|
||||
|
||||
Assert.IsType<NoContentResult>(result);
|
||||
Assert.Equal("nb-NO", user.UiLanguage);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Language_preference_rejects_an_unsupported_locale()
|
||||
{
|
||||
var user = new ApplicationUser { Id = "user-1", UiLanguage = "en" };
|
||||
var users = CreateUserManager();
|
||||
users.Setup(x => x.GetUserAsync(It.IsAny<System.Security.Claims.ClaimsPrincipal>())).ReturnsAsync(user);
|
||||
var controller = new AuthController(BuildConfig(), users.Object, Mock.Of<ITokenService>(), Mock.Of<IAppEmailSender>(), Mock.Of<IGoogleTokenValidator>(), Mock.Of<IMicrosoftTokenValidator>(), NullLogger<AuthController>.Instance, Mock.Of<ITwoFactorPendingTokenService>(), TestHostFactory.CreateInMemoryDb());
|
||||
|
||||
var result = await controller.UpdateLanguagePreference(new AuthController.UpdateLanguagePreferenceRequest("sv-SE"));
|
||||
|
||||
Assert.IsType<BadRequestObjectResult>(result);
|
||||
users.Verify(x => x.UpdateAsync(It.IsAny<ApplicationUser>()), Times.Never);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Request_email_change_keeps_current_email_and_sends_confirmation_to_new_address()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user