51 lines
2.6 KiB
Swift
51 lines
2.6 KiB
Swift
import XCTest
|
|
@testable import EdgeEver
|
|
|
|
final class URLNormalizeTests: XCTestCase {
|
|
func testDirectTagSuggestionsKeepCanonicalNamesAndExcludeCurrentTags() {
|
|
let result = AiDirectStream.tagSuggestions("<edgeever-tags>\nreact\nReact\n#Current\nnew-topic\n</edgeever-tags>", currentTags: ["Current"], canonicalTags: ["react": "React"])
|
|
XCTAssertEqual(result.map(\.name), ["React", "new-topic"])
|
|
XCTAssertEqual(result.map(\.existing), [true, false])
|
|
let json = AiDirectStream.tagSuggestions(#"{"suggestions":[{"name":"react"},"Current","one","two","three"]}"#, currentTags: ["Current"], canonicalTags: ["react": "React"])
|
|
XCTAssertEqual(json.map(\.name), ["React", "one", "two"])
|
|
XCTAssertTrue(AiDirectStream.tagSuggestions(#"{"suggestions":[]}"#, currentTags: [], canonicalTags: [:]).isEmpty)
|
|
}
|
|
|
|
func testDirectModelRequestsUseTheConfiguredPrivateEndpoint() throws {
|
|
let prepared = AiPreparedGeneration(provider: "openai-compatible", baseUrl: "http://192.168.1.20:11434/v1", apiKey: "model-key", modelId: "local", system: "Suggest tags", prompt: "Body", maxOutputTokens: 300, resultBoundary: .init(start: "", end: ""))
|
|
let request = try AiDirectStream.providerRequest(for: prepared)
|
|
XCTAssertFalse(request.httpShouldHandleCookies)
|
|
XCTAssertEqual(request.url?.absoluteString, "http://192.168.1.20:11434/v1/chat/completions")
|
|
XCTAssertEqual(request.value(forHTTPHeaderField: "Authorization"), "Bearer model-key")
|
|
}
|
|
|
|
func testAddsHTTPS() throws {
|
|
let url = try EdgeEverURLNormalizer.normalizeInstanceURL("demo.edgeever.org")
|
|
XCTAssertEqual(url.absoluteString, "https://demo.edgeever.org")
|
|
}
|
|
|
|
func testStripsTrailingSlash() throws {
|
|
let url = try EdgeEverURLNormalizer.normalizeInstanceURL("https://demo.edgeever.org/")
|
|
XCTAssertEqual(url.absoluteString, "https://demo.edgeever.org")
|
|
}
|
|
|
|
func testRejectsEmpty() {
|
|
XCTAssertThrowsError(try EdgeEverURLNormalizer.normalizeInstanceURL(" "))
|
|
}
|
|
|
|
func testMapsBareDemoAliasToPublicInstance() throws {
|
|
XCTAssertEqual(
|
|
try EdgeEverURLNormalizer.normalizeInstanceURL("demo").absoluteString,
|
|
EdgeEverPublicDemo.instanceURLString
|
|
)
|
|
XCTAssertEqual(
|
|
try EdgeEverURLNormalizer.normalizeInstanceURL("https://demo").absoluteString,
|
|
EdgeEverPublicDemo.instanceURLString
|
|
)
|
|
XCTAssertEqual(
|
|
try EdgeEverURLNormalizer.normalizeInstanceURL("DEMO/").absoluteString,
|
|
EdgeEverPublicDemo.instanceURLString
|
|
)
|
|
}
|
|
}
|