test_that("social_meta builds metadata head tags", {
tags <- social_meta(list(
title = "Example app",
description = "Short app description.",
url = "https://example.no",
image = "https://example.no/share.png"
))
html <- htmltools::renderTags(tags)$head
expect_match(html, "
Example app", fixed = TRUE)
expect_match(html, "rel=\"canonical\"", fixed = TRUE)
expect_match(html, "property=\"og:title\" content=\"Example app\"", fixed = TRUE)
expect_match(html, "name=\"twitter:card\" content=\"summary_large_image\"", fixed = TRUE)
expect_match(html, "application/ld\\+json")
expect_false(grepl("og:site_name", html, fixed = TRUE))
expect_false(grepl("applicationCategory", html, fixed = TRUE))
})
test_that("social_meta can read YAML files", {
path <- tempfile(fileext = ".yml")
yaml::write_yaml(list(
title = "From YAML",
description = "Loaded from a file.",
url = "https://example.no",
image = "https://example.no/share.png"
), path)
html <- htmltools::renderTags(social_meta(path))$head
expect_match(html, "From YAML", fixed = TRUE)
})
test_that("social_meta validates required fields", {
expect_error(
social_meta(list(title = "Only title")),
"Missing required meta fields"
)
})
test_that("schema can be disabled", {
html <- htmltools::renderTags(social_meta(list(
title = "No schema",
description = "Short app description.",
url = "https://example.no",
image = "https://example.no/share.png",
schema = FALSE
)))$head
expect_false(grepl("application/ld\\+json", html))
})
# Local Variables:
# mode: R
# End: