import XCTest
@testable import studydeck

final class studydeckTests: XCTestCase {
    func testResourceKindFromExtension() {
        XCTAssertEqual(ResourceKind.from(extension: "mp4"), .video)
        XCTAssertEqual(ResourceKind.from(extension: "MP3"), .audio)
        XCTAssertEqual(ResourceKind.from(extension: "pdf"), .pdf)
        XCTAssertEqual(ResourceKind.from(extension: "txt"), .other)
    }

    func testResolveSelectionVideoPdf() {
        let video = CatalogEntry(name: "a", kind: .video, relativePath: "a.mp4")
        let pdf = CatalogEntry(name: "b", kind: .pdf, relativePath: "b.pdf")
        let resolved = SelectionResolver.resolve([video, pdf])
        XCTAssertEqual(resolved.status, .ready)
        XCTAssertEqual(resolved.mode, .videoPdf)
    }

    func testPathNormalizeRejectsEscape() {
        XCTAssertThrowsError(try FileLibrary.assertSafeRelative("../etc/passwd"))
        XCTAssertEqual(try FileLibrary.assertSafeRelative("Series/A/video.mp4"), "Series/A/video.mp4")
    }
}
