Files
todos/UnitTests/Tests/Enumerations/TodoGroupTests.swift
T

119 lines
2.5 KiB
Swift
Raw Normal View History

2026-02-10 02:22:41 +00:00
import Foundation
import SwiftUI
import Testing
@testable import Todos
@Suite("TodoGroup enumeration tests")
struct TodoGroupTests {
// MARK: Computed tests
2026-02-11 13:00:46 +00:00
@Test(
"canShowCompleted returns correct values",
arguments: zip(
TodoGroup.allCases,
[true, true, true, false]
)
)
func canShowCompleted(
for group: TodoGroup,
expects expectation: Bool
) {
// GIVEN
// WHEN
let canShowCompleted = group.canShowCompleted
// THEN
#expect(canShowCompleted == expectation)
}
2026-02-10 02:22:41 +00:00
@Test(
"group color match expected values",
arguments: zip(
TodoGroup.allCases,
[Color.blue, .green, .red, .gray]
)
)
func color(
for group: TodoGroup,
expects expectation: Color
) {
// GIVEN
// WHEN
let color = group.color
// THEN
#expect(color == expectation)
}
@Test(
"group icon names match expected values",
arguments: zip(
TodoGroup.allCases,
["calendar.badge.clock", "calendar", "calendar.badge.exclamationmark", "checkmark.circle.fill"]
)
)
func iconName(
for group: TodoGroup,
expects expectation: String
) {
// GIVEN
// WHEN
let iconName = group.iconName
// THEN
#expect(iconName == expectation)
}
@Test(
"group titles match expected values",
arguments: zip(
TodoGroup.allCases,
["today", "upcoming", "overdue", "completed"]
)
)
func title(
for group: TodoGroup,
expects expectation: String
) {
// GIVEN
let key = "enumeration.todo-group.title." + expectation
// WHEN
let title = group.title
// THEN
#expect(title == .init(key))
}
// MARK: Case Iteration Tests
@Test("all cases contains all cases, in correct order")
func allCases() {
// GIVEN
// WHEN
let allCases = TodoGroup.allCases
// THEN
#expect(allCases.count == 4)
#expect(allCases[0] == .today)
#expect(allCases[1] == .upcoming)
#expect(allCases[2] == .overdue)
#expect(allCases[3] == .completed)
}
// MARK: Identifiable Tests
@Test("id returns an identity of a case", arguments: TodoGroup.allCases)
func id(for group: TodoGroup) {
// GIVEN
// WHEN
let id = group.id
// THEN
#expect(id == group)
}
}