It uses CsQuery under the hood so you can use CSS selectors like jQuery:
https://github.com/jamietre/CsQuery
Given your example I created a test route:
Get["description"] = _ => @"<!DOCTYPE html>
<html>
<head>
<title>@Model.Title</title>
<meta charset=""utf-8"" />
<meta name=""description"" content=""@Model.MetaDescription"" />
</head>
<body>
</body>
</html>";
Then added a unit test:
[Fact]
public void Get_Root_Should_Return_Page_With_Meta_Description()
{
// Given
var browser = new Browser(x => x.Module<TestModule>());
// When
var result = browser.Get("/description");
// Then
result.Body["meta[name=description]"].ShouldExistOnce();
}
The test passes:
Modify the name value:
<meta name=""BANANA"" content=""@Model.MetaDescription"" />
And run the same test:
So the problem is just the selector you're using.