This commit is contained in:
wt committed 2026-07-30 20:07:51 +07:00
commit 92660a4ba0
228 files changed
+24496

No files matched your search

+42
View File
@@ -0,0 +1,42 @@
import Foundation
import XCTest
@testable import Luma
final class MediaFileIOTests: XCTestCase {
func testStagedDraftSurvivesThePickerURLBeingRemoved() async throws {
let sourceDirectory = FileManager.default.temporaryDirectory
.appendingPathComponent(UUID().uuidString, isDirectory: true)
try FileManager.default.createDirectory(
at: sourceDirectory,
withIntermediateDirectories: true
)
let source = sourceDirectory.appendingPathComponent("photo.jpg")
let payload = Data([0xFF, 0xD8, 0xFF, 0xD9])
try payload.write(to: source)
defer { try? FileManager.default.removeItem(at: sourceDirectory) }
let staged = try await MediaFileIO().stageAttachmentDraft(from: source)
defer { try? FileManager.default.removeItem(at: staged.url) }
try FileManager.default.removeItem(at: source)
XCTAssertEqual(staged.filename, "photo.jpg")
XCTAssertEqual(staged.byteCount, payload.count)
XCTAssertEqual(try Data(contentsOf: staged.url), payload)
}
func testEmptyPickerFileIsRejectedBeforePreviewOrUpload() async throws {
let source = FileManager.default.temporaryDirectory
.appendingPathComponent("empty-\(UUID().uuidString).mov")
try Data().write(to: source)
defer { try? FileManager.default.removeItem(at: source) }
do {
_ = try await MediaFileIO().stageAttachmentDraft(from: source)
XCTFail("An empty media file must not become a sendable draft")
} catch MediaFileIOError.emptyFile(_) {
// Expected.
} catch {
XCTFail("Unexpected error: \(error)")
}
}
}