import Hummingbird import HummingbirdTesting import NIOCore import Testing @testable import WebsiteCore @Suite("RootController controller") struct RootControllerTests { // MARK: Constants private let app: Application = .init(router: { let router = Router(context: WebsiteRequestContext.self) router.addMiddleware { LocalizationMiddleware() } router.addRoutes(RootController().routes) return router }()) // MARK: Functional tests @Test func `serves the landing page at the root path`() async throws { try await app.test(.router) { client in try await client.execute( uri: "/", method: .get ) { response in let body = String(buffer: response.body) #expect(response.status == .ok) #expect(response.headers[.contentType] == "text/html; charset=utf-8") #expect(response.headers[.contentLanguage] == "en") #expect(response.headers[.vary] == "Accept-Language") #expect(body.contains("Hello world!")) } } } }