From a96b061afba4a2b131064b2f9338463cb0a3e60b Mon Sep 17 00:00:00 2001 From: Stevan Freeborn <65925598+StevanFreeborn@users.noreply.github.com> Date: Sat, 13 Apr 2024 12:57:10 -0500 Subject: [PATCH 1/2] tests: correct test name --- test/Blog.Tests/EndToEnd/RssTests.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/Blog.Tests/EndToEnd/RssTests.cs b/test/Blog.Tests/EndToEnd/RssTests.cs index 8119a63..2c4a9d2 100644 --- a/test/Blog.Tests/EndToEnd/RssTests.cs +++ b/test/Blog.Tests/EndToEnd/RssTests.cs @@ -4,7 +4,7 @@ namespace Blog.Tests.EndToEnd; public class RssTests : BlogTest { [Test] - public async Task Task_Rss_WhenFetched_ItShouldReturnRssFeed() + public async Task Rss_WhenFetched_ItShouldReturnRssFeed() { var response = await Page.APIRequest.GetAsync("/rss"); response.Status.Should().Be((int)HttpStatusCode.OK); @@ -24,7 +24,7 @@ public class RssTests : BlogTest using var xmlReader = XmlReader.Create(streamReader, settings); var feed = SyndicationFeed.Load(xmlReader); - + feed.Title.Text.Should().Be("journal"); feed.Description.Text.Should().Be("A blog by Stevan Freeborn"); feed.Items.Should().HaveCount(2); From 3b05bbe4918a657640c3dd00fc0dc923d47906ff Mon Sep 17 00:00:00 2001 From: Stevan Freeborn <65925598+StevanFreeborn@users.noreply.github.com> Date: Sat, 13 Apr 2024 12:57:37 -0500 Subject: [PATCH 2/2] fix: look for proxy headers first when building url for rss fed --- src/Blog/Program.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Blog/Program.cs b/src/Blog/Program.cs index 15a8d8a..05f5b87 100644 --- a/src/Blog/Program.cs +++ b/src/Blog/Program.cs @@ -27,7 +27,11 @@ app .MapGet("/rss", async (HttpContext context, IPostService postService) => { var req = context.Request; - var url = $"{req.Scheme}://{req.Host}{req.PathBase}"; + + var scheme = req.Headers["X-Forwarded-Proto"].FirstOrDefault() ?? req.Scheme; + var host = req.Headers["X-Forwarded-Host"].FirstOrDefault() ?? req.Host.Value; + + var url = $"{scheme}://{host}{req.PathBase}"; var posts = await postService.GetPostsAsync();