41 lines
1016 B
Swift
41 lines
1016 B
Swift
import Elementary
|
|
import Testing
|
|
|
|
@testable import WebsiteLibrary
|
|
|
|
@Suite(
|
|
"SiteFooter component",
|
|
.tags(.component)
|
|
)
|
|
struct SiteFooterTests {
|
|
|
|
// MARK: Functional tests
|
|
|
|
@Test
|
|
func `renders its link columns`() {
|
|
let html = SiteFooter().render()
|
|
|
|
for title in ["Browse", "Sell", "Account", "Language"] {
|
|
#expect(html.contains(">\(title)</h2>"))
|
|
}
|
|
|
|
for path in [String.Route.series, .Route.openShop, .Route.gradingGuide, .Route.signIn, .Route.recover, .Route.terms] {
|
|
#expect(html.contains(#"href="\#(path)""#))
|
|
}
|
|
}
|
|
|
|
@Test
|
|
func `escapes the ampersands in its labels`() {
|
|
#expect(SiteFooter().render().contains("Want list & alerts"))
|
|
}
|
|
|
|
@Test
|
|
func `presses the one language the prototype serves`() {
|
|
let html = SiteFooter().render()
|
|
|
|
#expect(html.components(separatedBy: #"aria-pressed="true""#).count - 1 == 1)
|
|
#expect(html.contains(#"aria-pressed="true">EN<"#))
|
|
}
|
|
|
|
}
|