diff --git a/JobTrackerApi.Tests/CoverLetterDocumentContractTests.cs b/JobTrackerApi.Tests/CoverLetterDocumentContractTests.cs
index 9668a96..5c891dd 100644
--- a/JobTrackerApi.Tests/CoverLetterDocumentContractTests.cs
+++ b/JobTrackerApi.Tests/CoverLetterDocumentContractTests.cs
@@ -7,6 +7,18 @@ namespace JobTrackerApi.Tests;
public sealed class CoverLetterDocumentContractTests
{
+ [Theory]
+ [InlineData("en", "Cover letter", "Cover letter text")]
+ [InlineData("nb-NO", "Søknadsbrev", "Brevtekst")]
+ public void Empty_optional_details_do_not_create_empty_headings_or_an_unnamed_main_landmark(string language, string title, string bodyLabel)
+ {
+ var html = new CoverLetterDocumentRenderer().Render("Reviewed body", new() { Language = language }).Html;
+ Assert.DoesNotContain("
", html);
+ Assert.DoesNotContain("", html);
+ Assert.Contains($"{System.Net.WebUtility.HtmlEncode(title)}", html);
+ Assert.Contains($"", html);
+ }
+
[Theory]
[InlineData(null, "en")]
[InlineData("{}", "en")]
diff --git a/JobTrackerApi/Services/CoverLetterDocumentRenderer.cs b/JobTrackerApi/Services/CoverLetterDocumentRenderer.cs
index fc5626f..13a2228 100644
--- a/JobTrackerApi/Services/CoverLetterDocumentRenderer.cs
+++ b/JobTrackerApi/Services/CoverLetterDocumentRenderer.cs
@@ -31,10 +31,15 @@ public sealed class CoverLetterDocumentRenderer
}
if (list) body.Append("");
var contact = string.Join(" · ", new[] { s.SenderEmail, s.SenderPhone, s.SenderLocation }.Where(v => !string.IsNullOrWhiteSpace(v)).Select(E));
+ var letterLabel = s.Language == "nb-NO" ? "Søknadsbrev" : "Cover letter";
+ var bodyLabel = s.Language == "nb-NO" ? "Brevtekst" : "Cover letter text";
+ var title = string.Join(" — ", new[] { s.Subject, s.SenderName }.Where(value => !string.IsNullOrWhiteSpace(value)));
+ var senderHeading = string.IsNullOrWhiteSpace(s.SenderName) ? "" : $"{E(s.SenderName)}
";
+ var subjectHeading = string.IsNullOrWhiteSpace(s.Subject) ? "" : $"{E(s.Subject)}
";
var html = $$"""
- {{E(s.Subject)}} — {{E(s.SenderName)}}
- {{E(s.SenderName)}}
{{E(s.SenderTitle)}}
{{contact}}
- {{E(s.Date)}}
{{E(s.Recipient)}}
{{E(s.Subject)}}
- {{body}}
+
+ {{senderHeading}}{{E(s.SenderTitle)}}
{{contact}}
+ {{E(s.Date)}}
{{E(s.Recipient)}}
{{subjectHeading}}
+ {{body}}