IceCubesApp/Packages/Env/Tests/RouterTests.swift
2024-01-01 09:48:53 +01:00

51 lines
1.7 KiB
Swift

@testable import Env
import XCTest
import SwiftUI
import Network
@MainActor
final class RouterTests: XCTestCase {
func testRouterThreadsURL() {
let router = RouterPath()
let url = URL(string: "https://www.threads.net/@dimillian")!
_ = router.handle(url: url)
XCTAssertTrue(router.path.isEmpty)
}
func testRouterTagsURL() {
let router = RouterPath()
let url = URL(string: "https://mastodon.social/tags/test")!
_ = router.handle(url: url)
XCTAssertTrue(router.path.first == .hashTag(tag: "test", account: nil))
}
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)
XCTAssertTrue(router.path.first == .statusDetail(id: "1010384"))
}
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)
XCTAssertTrue(router.path.first == .remoteStatusDetail(url: url))
}
func testRouteRandomURL() {
let router = RouterPath()
let url = URL(string: "https://theweb.com/test/test/one")!
_ = router.handle(url: url)
XCTAssertTrue(router.path.isEmpty)
}
}