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();
|
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]
|
[Test]
|
||||||
public async Task Post_WhenNavigatedToAndPostDoesNotExist_ItShouldDisplay404()
|
public async Task Post_WhenNavigatedToAndPostDoesNotExist_ItShouldDisplay404()
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user