fix(admin): show template language status in editor
Center action controls and adjust template editor field heights. Ref: IT-1601
This commit is contained in:
@@ -8,6 +8,37 @@ namespace HrynCo.NotificationService.Web.IntegrationTests;
|
||||
|
||||
public sealed class TemplateCatalogPresentationTests(TemplateDatabaseFixture fixture) : IClassFixture<TemplateDatabaseFixture>
|
||||
{
|
||||
[Fact]
|
||||
public async Task EditorTabsShowSavedVersionsAfterInvalidUnsavedChanges()
|
||||
{
|
||||
var connection = await fixture.CreateDatabaseAsync();
|
||||
await using var app = new TemplateWebApplicationFactory(connection);
|
||||
using var scope = app.Services.CreateScope();
|
||||
var service = (await scope.ServiceProvider.GetRequiredService<INotificationServiceRepository>().GetAllAsync()).Single();
|
||||
var versions = scope.ServiceProvider.GetRequiredService<IEmailTemplateRepository>();
|
||||
await versions.AddAsync(new EmailTemplate
|
||||
{
|
||||
ServiceName = service.Name, Key = "TabStatus", LanguageCode = "en",
|
||||
Subject = "Saved", HtmlBody = "Saved", TextBody = "Saved"
|
||||
});
|
||||
var definition = (await scope.ServiceProvider.GetRequiredService<IEmailTemplateDefinitionRepository>()
|
||||
.GetDefinitionAsync(service.Name, "TabStatus"))!;
|
||||
using var client = app.CreateClient(new() { AllowAutoRedirect = false });
|
||||
var baseUrl = $"/admin/services/{service.Id}/templates";
|
||||
var html = await client.GetStringAsync($"{baseUrl}/{definition.Id}");
|
||||
Assert.Matches("(?s)<span>en</span>\\s*<span class=\"template-language-status template-language-present\">Present</span>", html);
|
||||
Assert.Matches("(?s)<span>uk</span>\\s*<span class=\"template-language-status template-language-missing\">Missing</span>", html);
|
||||
|
||||
var fields = TemplateEditorTestFields.Read(html);
|
||||
TemplateEditorTestFields.SetLanguage(fields, "uk", "Unsaved", "", "");
|
||||
fields["Languages[0].IsPresent"] = "false";
|
||||
var response = await client.PostAsync(baseUrl + "/save", new FormUrlEncodedContent(fields));
|
||||
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
|
||||
var invalidHtml = await response.Content.ReadAsStringAsync();
|
||||
Assert.Matches("(?s)<span>en</span>\\s*<span class=\"template-language-status template-language-present\">Present</span>", invalidHtml);
|
||||
Assert.Matches("(?s)<span>uk</span>\\s*<span class=\"template-language-status template-language-missing\">Missing</span>", invalidHtml);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task CatalogStatusesUseExactCodes_AndEmptyDefinitionsShowEveryLanguageMissing()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user