- Add LoadingSpinner component with small/medium/large sizes using system gray color - Add LoadingPlaceholder for skeleton loading states - Add LoadingSheet for full-screen blocking overlays - Replace ThemedSpinner/ThemedSpinnerCompact across all views - Remove deprecated loading components from AnimatedComponents.swift - Delete LoadingTextGenerator.swift - Fix PhotoImportView layout to fill full width Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
48 lines
1.3 KiB
Swift
48 lines
1.3 KiB
Swift
//
|
|
// LoadingSpinnerTests.swift
|
|
// SportsTimeTests
|
|
//
|
|
|
|
import Testing
|
|
import SwiftUI
|
|
@testable import SportsTime
|
|
|
|
struct LoadingSpinnerTests {
|
|
|
|
@Test func smallSizeHasCorrectDimensions() {
|
|
let config = LoadingSpinner.Size.small
|
|
#expect(config.diameter == 16)
|
|
#expect(config.strokeWidth == 2)
|
|
}
|
|
|
|
@Test func mediumSizeHasCorrectDimensions() {
|
|
let config = LoadingSpinner.Size.medium
|
|
#expect(config.diameter == 24)
|
|
#expect(config.strokeWidth == 3)
|
|
}
|
|
|
|
@Test func largeSizeHasCorrectDimensions() {
|
|
let config = LoadingSpinner.Size.large
|
|
#expect(config.diameter == 40)
|
|
#expect(config.strokeWidth == 4)
|
|
}
|
|
|
|
@Test func spinnerCanBeCreatedWithAllSizes() {
|
|
let small = LoadingSpinner(size: .small)
|
|
let medium = LoadingSpinner(size: .medium)
|
|
let large = LoadingSpinner(size: .large)
|
|
|
|
#expect(small.size == .small)
|
|
#expect(medium.size == .medium)
|
|
#expect(large.size == .large)
|
|
}
|
|
|
|
@Test func spinnerCanHaveOptionalLabel() {
|
|
let withLabel = LoadingSpinner(size: .medium, label: "Loading...")
|
|
let withoutLabel = LoadingSpinner(size: .medium)
|
|
|
|
#expect(withLabel.label == "Loading...")
|
|
#expect(withoutLabel.label == nil)
|
|
}
|
|
}
|