KanbanFilterTest.swift 44 lignes · 1111 octets
import XCTest
@testable import Card2vcf

final class KanbanFilterTest: XCTestCase {
    private func tache(_ localId: Int64, _ assigneA: String? = nil) -> TacheEntity {
        TacheEntity(
            localId: localId,
            titre: "T\(localId)",
            assigneA: assigneA
        )
    }

    func testMine_keepsOnlyTasksAssignedToUser() {
        let tasks = [
            tache(1, "alice"),
            tache(2, "bob"),
            tache(3, nil),
        ]

        let result = KanbanFilter.filter(tasks, mode: .mine, userName: "alice")

        XCTAssertEqual([tasks[0]], result)
    }

    func testAll_keepsEveryTaskIncludingUnassigned() {
        let tasks = [
            tache(1, "alice"),
            tache(2, "bob"),
            tache(3, nil),
        ]

        let result = KanbanFilter.filter(tasks, mode: .all, userName: "alice")

        XCTAssertEqual(tasks, result)
    }

    func testMine_excludesUnassignedTasks() {
        let tasks = [tache(1, nil)]

        let result = KanbanFilter.filter(tasks, mode: .mine, userName: "alice")

        XCTAssertEqual([], result)
    }
}