///|
test "audit reports duplicate user agent" {
let f = unwrap_file(
parse_robots("User-agent: bot\nUser-agent: bot\nDisallow: /\n"),
)
let issues = audit_robots(f)
assert_true(audit_to_text(issues).contains("DuplicateUserAgent"))
}
///|
test "audit reports duplicate rule" {
let f = unwrap_file(
parse_robots("User-agent: *\nDisallow: /x\nDisallow: /x\n"),
)
assert_true(audit_to_text(audit_robots(f)).contains("DuplicateRule"))
}
///|
test "audit reports empty rule" {
let f = unwrap_file(parse_robots("User-agent: *\nAllow:\n"))
assert_true(audit_to_text(audit_robots(f)).contains("EmptyRule"))
}
///|
test "audit reports broad disallow" {
let f = unwrap_file(parse_robots("User-agent: *\nDisallow: /\n"))
assert_true(audit_to_text(audit_robots(f)).contains("VeryBroadDisallow"))
}
///|
test "audit reports unknown records" {
let f = unwrap_file(
parse_robots("User-agent: *\nAllow: /\nHost: example.test\n"),
)
assert_true(audit_to_text(audit_robots(f)).contains("UnknownRecord"))
}
///|
test "audit does not report sitemap as unknown" {
let f = unwrap_file(
parse_robots("User-agent: *\nAllow: /\nSitemap: https://e.test/s.xml\n"),
)
assert_false(audit_to_text(audit_robots(f)).contains("UnknownRecord"))
}
///|
test "audit reports suspicious pattern" {
let f = unwrap_file(parse_robots("User-agent: *\nDisallow: /a**b\n"))
assert_true(audit_to_text(audit_robots(f)).contains("SuspiciousPattern"))
}
///|
test "audit reports repeated group" {
let f = unwrap_file(
parse_robots(
"User-agent: bot\nDisallow: /a\n\nUser-agent: bot\nDisallow: /b\n",
),
)
assert_true(audit_to_text(audit_robots(f)).contains("UnusedGroup"))
}