import Foundation import Hummingbird import HummingbirdTesting import Testing @testable import DoxyLibrary @Suite("ArchiveController", .tags(.controller)) struct ArchiveControllerTests { // MARK: Properties private let decoder: JSONDecoder = .init() @Test func xxx() async throws { // GIVEN let fileService = FileServiceMock(items: ["SomeArchive.doccarchive", "some-file.txt"]) let router = Router() ArchiveController("/path/to/archives/folder", fileService: fileService) .register(to: router) let app = Application(router: router) // WHEN // THEN try await app.test(.router) { client in try await client.execute(uri: "/archives", method: .get) { response in let archiveList = try decoder.decode(ArchiveList.self, from: response.body) #expect(response.status == .ok) #expect(archiveList.archives == ["SomeArchive.doccarchive"]) } } } @Test func yyy() async throws { // GIVEN let fileService = FileServiceMock(error: .folderNotFound) let router = Router() ArchiveController("/path/to/archives/folder", fileService: fileService) .register(to: router) let app = Application(router: router) // WHEN // THEN try await app.test(.router) { client in try await client.execute(uri: "/archives", method: .get) { response in #expect(response.status == .ok) } } } }