//
//  PlanningTipsTests.swift
//  SportsTimeTests
//

import Testing
@testable import SportsTime

struct PlanningTipsTests {

    @Test func allTipsHasAtLeast100Tips() {
        #expect(PlanningTips.all.count >= 100)
    }

    @Test func randomReturnsRequestedCount() {
        let tips = PlanningTips.random(3)
        #expect(tips.count == 3)
    }

    @Test func randomReturnsUniqueIds() {
        let tips = PlanningTips.random(5)
        let uniqueIds = Set(tips.map { $0.id })
        #expect(uniqueIds.count == 5)
    }

    @Test func eachTipHasNonEmptyFields() {
        for tip in PlanningTips.all {
            #expect(!tip.icon.isEmpty, "Tip should have icon")
            #expect(!tip.title.isEmpty, "Tip should have title")
            #expect(!tip.subtitle.isEmpty, "Tip should have subtitle")
        }
    }

    @Test func randomWithCountGreaterThanAvailableReturnsAll() {
        let tips = PlanningTips.random(1000)
        #expect(tips.count == PlanningTips.all.count)
    }
}
