tests: add tests for copy button and heading links
This commit is contained in:
@@ -39,6 +39,43 @@ public class PostTests : BlogTest
|
||||
await Expect(content).ToBeVisibleAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task Post_WhenNavigatedToAndPostContainsCodeBlock_ItShouldDisplayCopyButton()
|
||||
{
|
||||
await Page.Context.GrantPermissionsAsync(["clipboard-read"]);
|
||||
|
||||
await Page.GotoAsync($"/{TestPostSlug}");
|
||||
var copyButton = Page.GetByRole(AriaRole.Button, new() { Name = "Copy" });
|
||||
await Expect(copyButton).ToBeVisibleAsync();
|
||||
|
||||
await copyButton.ClickAsync();
|
||||
var clipboard = await Page.EvaluateAsync<string>("navigator.clipboard.readText()");
|
||||
clipboard.Should().Be(
|
||||
"""
|
||||
def greet(name):
|
||||
print(f"Hello, {name}!")
|
||||
|
||||
greet("World")
|
||||
"""
|
||||
);
|
||||
|
||||
await Page.Context.ClearPermissionsAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task Post_WhenNavigatedToAndPostContainsHeadings_ItShouldDisplayLinkToHeading()
|
||||
{
|
||||
await Page.GotoAsync($"/{TestPostSlug}");
|
||||
var heading = Page.GetByRole(AriaRole.Heading, new() { Name = "Text Formatting" });
|
||||
await Expect(heading).ToBeVisibleAsync();
|
||||
|
||||
var link = heading.GetByRole(AriaRole.Link);
|
||||
await Expect(link).ToBeVisibleAsync();
|
||||
|
||||
await link.ClickAsync();
|
||||
Page.Url.Should().EndWith("#text-formatting");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task Post_WhenNavigatedToAndPostDoesNotExist_ItShouldDisplay404()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user