Files
praca_inzynierska/Implementation/PeeredTests/NotesStorageTests.swift
T
2026-05-24 20:40:25 +02:00

75 lines
1.8 KiB
Swift

import Foundation
import Testing
@testable import Peered
@Suite
struct NotesStorageTests {
private func makeStorage(root: URL = URL(filePath: "/test")) -> (
NotesStorage, InMemoryStorageProvider
) {
let provider = InMemoryStorageProvider()
let storage = NotesStorage(storageProvider: provider, rootDirectory: root)
return (storage, provider)
}
@Test
func loadNotesReturnsEmptyArrayWhenNoFiles() {
let (storage, _) = makeStorage()
let notes = storage.loadNotes()
#expect(notes.isEmpty)
}
@Test
func createNoteCreatesFile() {
let root = URL(filePath: "/test")
let (storage, provider) = makeStorage(root: root)
storage.createNote(name: "My note")
#expect(!provider.files.isEmpty)
}
@Test
func loadNotesReturnCreatedNote() {
let root = URL(filePath: "/test")
let (storage, provider) = makeStorage(root: root)
let filePath = root.appendingPathComponent("Note").path
provider.createFile(atPath: filePath, contents: Data(), attributes: nil)
let notes = storage.loadNotes()
#expect(notes.count == 1)
#expect(notes.first?.name == "Note")
}
@Test
func createNoteDeduplicatesNames() {
let root = URL(filePath: "/test")
let (storage, provider) = makeStorage(root: root)
let existingPath = root.appendingPathComponent("Note").path
provider.createFile(atPath: existingPath, contents: Data(), attributes: nil)
storage.createNote(name: "Note")
#expect(provider.files.count == 2)
let paths = provider.files.keys
#expect(paths.contains(where: { $0.contains("Note 1") }))
}
@Test
func createNoteTwiceCreatesTwoFiles() {
let root = URL(filePath: "/test")
let (storage, _) = makeStorage(root: root)
storage.createNote(name: "Note")
storage.createNote(name: "Note")
let notes = storage.loadNotes()
#expect(notes.count == 2)
}
}