IceCubes/Packages/Env/Tests/RouterTests.swift

59 lines
1.6 KiB
Swift

@testable import Env
import Network
import SwiftUI
import XCTest
import Testing
@Test
@MainActor
func testRouterThreadsURL() {
let router = RouterPath()
let url = URL(string: "https://www.threads.net/@dimillian")!
_ = router.handle(url: url)
#expect(router.path.isEmpty)
}
@Test
@MainActor
func testRouterTagsURL() {
let router = RouterPath()
let url = URL(string: "https://mastodon.social/tags/test")!
_ = router.handle(url: url)
#expect(router.path.first == .hashTag(tag: "test", account: nil))
}
@Test
@MainActor
func testRouterLocalStatusURL() {
let router = RouterPath()
let client = Client(server: "mastodon.social",
oauthToken: .init(accessToken: "", tokenType: "", scope: "", createdAt: 0))
client.addConnections(["mastodon.social"])
router.client = client
let url = URL(string: "https://mastodon.social/status/1010384")!
_ = router.handle(url: url)
#expect(router.path.first == .statusDetail(id: "1010384"))
}
@Test
@MainActor
func testRouterRemoteStatusURL() {
let router = RouterPath()
let client = Client(server: "mastodon.social",
oauthToken: .init(accessToken: "", tokenType: "", scope: "", createdAt: 0))
client.addConnections(["mastodon.social", "mastodon.online"])
router.client = client
let url = URL(string: "https://mastodon.online/status/1010384")!
_ = router.handle(url: url)
#expect(router.path.first == .remoteStatusDetail(url: url))
}
@Test
@MainActor
func testRouteRandomURL() {
let router = RouterPath()
let url = URL(string: "https://theweb.com/test/test/one")!
_ = router.handle(url: url)
#expect(router.path.isEmpty)
}