Skip to content

Commit 68bb228

Browse files
authored
Change blog snapshots (#1027)
- Add Layout test for single blog post - change all others to only the head section - downgrade xunit due to not working in Rider
1 parent 6924372 commit 68bb228

File tree

20 files changed

+1463
-7893
lines changed

20 files changed

+1463
-7893
lines changed

Directory.Packages.props

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
<PackageVersion Include="coverlet.collector" Version="6.0.4" />
4040
<PackageVersion Include="coverlet.msbuild" Version="6.0.4" />
4141
<PackageVersion Include="xunit" Version="2.9.3" />
42-
<PackageVersion Include="xunit.v3" Version="2.0.0" />
42+
<PackageVersion Include="xunit.v3" Version="1.1.0" />
4343
<PackageVersion Include="xunit.runner.visualstudio" Version="3.0.2" />
4444
<PackageVersion Include="Verify.Xunit" Version="28.13.0" />
4545
<PackageVersion Include="Verify.XunitV3" Version="28.13.0" />

test/E2e/BasePageObject.cs

+13
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,19 @@ protected HtmlPage(IPage page) : base(page)
9797
{
9898
}
9999

100+
public async Task<string?> GetHead()
101+
{
102+
IElementHandle? headElement = await Page.QuerySelectorAsync("head");
103+
104+
if (headElement == null)
105+
{
106+
return null;
107+
}
108+
109+
string headHtml = await headElement.InnerHTMLAsync();
110+
return headHtml;
111+
}
112+
100113
public async Task<Dictionary<string, string?>> GetMetaTags()
101114
{
102115
Dictionary<string, string?> result = new Dictionary<string, string?>();

test/E2e/SnapshotTests/HtmlPageTests.cs

+11-1
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,16 @@ public async Task Verify_BlogPageHtml_Contents()
8686
await HtmlPageVerifier.Verify(blogPage);
8787
}
8888

89+
[Fact]
90+
public async Task Verify_BlogPostPageHtml_FullPage()
91+
{
92+
IPage blogPage = await _DesktopFixture.GetPage();
93+
string path = "2022/02/21/working-with-azure-sdk-for-dotnet.html";
94+
BlogItemPage blogItemPage = new BlogItemPage(path, blogPage);
95+
await blogItemPage.NavigateAsync();
96+
await HtmlPageVerifier.Verify(blogItemPage);
97+
}
98+
8999
[Theory]
90100
[MemberData(nameof(GetBlogPages))]
91101
public async Task Verify_BlogPostPageHtml_Contents(string path)
@@ -97,7 +107,7 @@ public async Task Verify_BlogPostPageHtml_Contents(string path)
97107
.Replace("/", "_")
98108
.Replace(".html", "");
99109
string methodName = $"{nameof(Verify_BlogPostPageHtml_Contents)}_{testParameter}";
100-
await HtmlPageVerifier.Verify(blogItemPage, methodName);
110+
await HtmlPageVerifier.VerifyHead(blogItemPage, methodName);
101111
}
102112

103113
public static IEnumerable<object[]> GetBlogPages()

test/E2e/Snapshots/HtmlPageTests.Verify_BlogPostPageHtml_Contents_path=2019-09-07-using-csharp-code-your-git-hooks.html.verified.html

+45-559
Large diffs are not rendered by default.

test/E2e/Snapshots/HtmlPageTests.Verify_BlogPostPageHtml_Contents_path=2020-08-01-kaylumah-the-new-home-for-blogs-written-by-max-hamulyak.html.verified.html

+43-266
Large diffs are not rendered by default.

test/E2e/Snapshots/HtmlPageTests.Verify_BlogPostPageHtml_Contents_path=2021-03-27-set-nuget-metadata-via-msbuild.html.verified.html

+45-564
Large diffs are not rendered by default.

test/E2e/Snapshots/HtmlPageTests.Verify_BlogPostPageHtml_Contents_path=2021-04-11-an-approach-to-writing-mocks.html.verified.html

+47-1,068
Large diffs are not rendered by default.

test/E2e/Snapshots/HtmlPageTests.Verify_BlogPostPageHtml_Contents_path=2021-05-23-generate-csharp-client-for-openapi.html.verified.html

+47-630
Large diffs are not rendered by default.

test/E2e/Snapshots/HtmlPageTests.Verify_BlogPostPageHtml_Contents_path=2021-07-17-decreasing-solution-build-time-with-filters.html.verified.html

+45-402
Large diffs are not rendered by default.

test/E2e/Snapshots/HtmlPageTests.Verify_BlogPostPageHtml_Contents_path=2021-11-14-capture-logs-in-unit-tests.html.verified.html

+46-598
Large diffs are not rendered by default.

test/E2e/Snapshots/HtmlPageTests.Verify_BlogPostPageHtml_Contents_path=2021-11-29-validated-strongly-typed-ioptions.html.verified.html

+45-763
Large diffs are not rendered by default.

test/E2e/Snapshots/HtmlPageTests.Verify_BlogPostPageHtml_Contents_path=2022-01-31-improve-code-quality-with-bannedsymbolanalyzers.html.verified.html

+45-477
Large diffs are not rendered by default.

test/E2e/Snapshots/HtmlPageTests.Verify_BlogPostPageHtml_Contents_path=2022-02-21-working-with-azure-sdk-for-dotnet.html.verified.html

+45-567
Large diffs are not rendered by default.

test/E2e/Snapshots/HtmlPageTests.Verify_BlogPostPageHtml_Contents_path=2022-06-07-share-debug-configuration-with-launch-profiles.html.verified.html

+46-583
Large diffs are not rendered by default.

test/E2e/Snapshots/HtmlPageTests.Verify_BlogPostPageHtml_Contents_path=2022-09-17-how-to-use-azurite-for-testing-azure-storage-in-dotnet.html.verified.html

+46-414
Large diffs are not rendered by default.

test/E2e/Snapshots/HtmlPageTests.Verify_BlogPostPageHtml_Contents_path=2023-04-14-csharp-client-for-openapi-revisited.html.verified.html

+47-426
Large diffs are not rendered by default.

test/E2e/Snapshots/HtmlPageTests.Verify_BlogPostPageHtml_Contents_path=2024-02-09-long-live-reqnroll.html.verified.html

+45-276
Large diffs are not rendered by default.

test/E2e/Snapshots/HtmlPageTests.Verify_BlogPostPageHtml_Contents_path=2024-08-06-fix-vscode-markdown-preview.html.verified.html

+45-298
Large diffs are not rendered by default.

test/E2e/Snapshots/HtmlPageTests.Verify_BlogPostPageHtml_FullPage.verified.html

+713
Large diffs are not rendered by default.

test/E2e/VerifierHelper.cs

+43
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,49 @@ public static async Task VerifyScreenshot(BasePageObject basePageObject)
5656

5757
public static class HtmlPageVerifier
5858
{
59+
public static async Task VerifyHead(HtmlPage page, string? methodName = null)
60+
{
61+
string? html = await page.GetHead() ?? string.Empty;
62+
html = html.Replace("/Users/maxhamulyak/", "/ExamplePath/");
63+
Dictionary<string, string?> metaTags = await page.GetMetaTags();
64+
65+
string? commitHash = metaTags["kaylumah:commit"];
66+
string shortCommitHash = string.IsNullOrEmpty(commitHash) ? string.Empty : commitHash[..7];
67+
// string version = metaTags["kaylumah:version"];
68+
string? buildId = metaTags["kaylumah:buildId"];
69+
string? buildNumber = metaTags["kaylumah:buildNumber"];
70+
71+
Regex baseUrlRegex = VerifierHelper.BaseUrl();
72+
VerifySettings settings = new VerifySettings();
73+
if (methodName != null)
74+
{
75+
// settings.UseMethodName(methodName);
76+
}
77+
78+
Regex buildNumberRegex = new Regex($"(?<before>(content=\"[0-9.]*|>))(?<val>{buildNumber})(?<after>(\"|<))");
79+
80+
settings.ReplaceMatches(baseUrlRegex, "BaseUrl_1");
81+
settings.ScrubInlineGuids();
82+
settings.ScrubInlineDateTimeOffsets("yyyy-MM-dd HH:mm:ss zzz");
83+
settings.AddScrubber(_ => _.Replace(shortCommitHash, "[SHORT-COMMIT-HASH]"));
84+
if (commitHash != null)
85+
{
86+
settings.AddScrubber(_ => _.Replace(commitHash, "[COMMIT-HASH]"));
87+
}
88+
89+
if (buildId != null)
90+
{
91+
settings.AddScrubber(_ => _.Replace(buildId, "[BUILD-ID]"));
92+
}
93+
// settings.AddScrubber(_ => _.Replace(buildNumber, "[BUILD-Number]"));
94+
// settings.AddScrubber(_ => _.Replace(version, "[BUILD-Version]"));
95+
settings.ScrubMatches(buildNumberRegex, "BuildNumber_");
96+
#pragma warning disable IDESIGN103
97+
settings.ReplaceMatches(VerifierHelper.TimeAgo(), "Time_Unit");
98+
settings.ReplaceMatches(VerifierHelper.TagCloud(), string.Empty);
99+
await Verifier.Verify(html, "html", settings);
100+
}
101+
59102
public static async Task Verify(HtmlPage page, string? methodName = null)
60103
{
61104
string? html = await page.GetContent() ?? string.Empty;

0 commit comments

Comments
 (0)