Files
kangkang/康康Tests/ModelStoreTests.swift
link2026 53da442424 chore: rename Tiji→Kangkang test imports + scheme + sync docs
Rename @testable imports across all test/UI test files after the Tiji→Kangkang
project rename in 44ed01a. Add shared scheme. Sync CLAUDE.md / W2 plan / spec
v1.0 to current scope (Symptom feature noted, C1/C2 flow lockdown).
2026-05-25 23:18:00 +08:00

55 lines
1.9 KiB
Swift

import Testing
import Foundation
@testable import
struct ModelStoreTests {
private func isolatedStore() throws -> ModelStore {
let temp = FileManager.default.temporaryDirectory
.appendingPathComponent(UUID().uuidString, isDirectory: true)
return try ModelStore(rootURL: temp)
}
@Test func freshStoreReportsBothModelsMissing() throws {
let store = try isolatedStore()
defer { try? FileManager.default.removeItem(at: store.rootURL) }
#expect(store.isReady(.llm) == false)
#expect(store.isReady(.vl) == false)
}
@Test func markReadyAfterFolderCreated() throws {
let store = try isolatedStore()
defer { try? FileManager.default.removeItem(at: store.rootURL) }
let llmFolder = store.localURL(for: .llm)
try FileManager.default.createDirectory(at: llmFolder, withIntermediateDirectories: true)
let configURL = llmFolder.appendingPathComponent("config.json")
try "{}".write(to: configURL, atomically: true, encoding: .utf8)
#expect(store.isReady(.llm) == true)
#expect(store.isReady(.vl) == false)
}
@Test func totalBytesSumsExistingFiles() throws {
let store = try isolatedStore()
defer { try? FileManager.default.removeItem(at: store.rootURL) }
let folder = store.localURL(for: .llm)
try FileManager.default.createDirectory(at: folder, withIntermediateDirectories: true)
let data = Data(repeating: 0, count: 1024)
try data.write(to: folder.appendingPathComponent("a.bin"))
try data.write(to: folder.appendingPathComponent("b.bin"))
#expect(store.totalBytes(for: .llm) == 2048)
}
@Test func totalBytesReturnsZeroWhenFolderMissing() throws {
let store = try isolatedStore()
defer { try? FileManager.default.removeItem(at: store.rootURL) }
// vl
#expect(store.totalBytes(for: .vl) == 0)
}
}