Files
steipete--codexbar/Tests/CodexBarTests/GoogleWorkspaceStatusTests.swift
2026-07-13 12:22:33 +08:00

73 lines
2.2 KiB
Swift

import Foundation
import Testing
@testable import CodexBar
@MainActor
struct GoogleWorkspaceStatusTests {
private let productID = "npdyhgECDJ6tB66MxXyo"
@Test
func `parse workspace status selects worst incident`() throws {
let data = Data(#"""
[
{
"id": "inc-1",
"begin": "2025-12-02T09:00:00+00:00",
"end": null,
"affected_products": [
{"title": "Gemini", "id": "npdyhgECDJ6tB66MxXyo"}
],
"most_recent_update": {
"when": "2025-12-02T10:00:00+00:00",
"status": "SERVICE_INFORMATION",
"text": "**Summary**\nMinor issue.\n"
}
},
{
"id": "inc-2",
"begin": "2025-12-02T11:00:00+00:00",
"end": null,
"affected_products": [
{"title": "Gemini", "id": "npdyhgECDJ6tB66MxXyo"}
],
"most_recent_update": {
"when": "2025-12-02T12:00:00+00:00",
"status": "SERVICE_OUTAGE",
"text": "**Summary**\nGemini API error.\n"
}
}
]
"""#.utf8)
let status = try UsageStore.parseGoogleWorkspaceStatus(data: data, productID: self.productID)
#expect(status.indicator == .critical)
#expect(status.description == "Gemini API error.")
#expect(status.updatedAt != nil)
}
@Test
func `parse workspace status ignores resolved incidents`() throws {
let data = Data(#"""
[
{
"id": "inc-3",
"begin": "2025-12-02T08:00:00+00:00",
"end": "2025-12-02T09:00:00+00:00",
"affected_products": [
{"title": "Gemini", "id": "npdyhgECDJ6tB66MxXyo"}
],
"most_recent_update": {
"when": "2025-12-02T09:00:00+00:00",
"status": "AVAILABLE",
"text": "**Summary**\nResolved.\n"
}
}
]
"""#.utf8)
let status = try UsageStore.parseGoogleWorkspaceStatus(data: data, productID: self.productID)
#expect(status.indicator == .none)
#expect(status.description == nil)
}
}