chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,288 @@
|
||||
import CodexBarCore
|
||||
import Foundation
|
||||
import SwiftUI
|
||||
import Testing
|
||||
@testable import CodexBar
|
||||
|
||||
struct MiniMaxMenuCardModelPlanTests {
|
||||
@Test
|
||||
func `minimax loginMethod maps to planText in MenuCardModel`() throws {
|
||||
let now = Date()
|
||||
let minimax = MiniMaxUsageSnapshot(
|
||||
planName: "MiniMax Star",
|
||||
availablePrompts: nil,
|
||||
currentPrompts: nil,
|
||||
remainingPrompts: nil,
|
||||
windowMinutes: nil,
|
||||
usedPercent: nil,
|
||||
resetsAt: nil,
|
||||
updatedAt: now)
|
||||
let snapshot = UsageSnapshot(
|
||||
primary: RateWindow(usedPercent: 0, windowMinutes: nil, resetsAt: nil, resetDescription: nil),
|
||||
secondary: nil,
|
||||
minimaxUsage: minimax,
|
||||
updatedAt: now,
|
||||
identity: ProviderIdentitySnapshot(
|
||||
providerID: .minimax,
|
||||
accountEmail: nil,
|
||||
accountOrganization: nil,
|
||||
loginMethod: "MiniMax Star"))
|
||||
let metadata = try #require(ProviderDefaults.metadata[.minimax])
|
||||
|
||||
let model = UsageMenuCardView.Model.make(.init(
|
||||
provider: .minimax,
|
||||
metadata: metadata,
|
||||
snapshot: snapshot,
|
||||
credits: nil,
|
||||
creditsError: nil,
|
||||
dashboard: nil,
|
||||
dashboardError: nil,
|
||||
tokenSnapshot: nil,
|
||||
tokenError: nil,
|
||||
account: AccountInfo(email: nil, plan: nil),
|
||||
isRefreshing: false,
|
||||
lastError: nil,
|
||||
usageBarsShowUsed: true,
|
||||
resetTimeDisplayStyle: .countdown,
|
||||
tokenCostUsageEnabled: false,
|
||||
showOptionalCreditsAndExtraUsage: true,
|
||||
hidePersonalInfo: false,
|
||||
now: now))
|
||||
|
||||
#expect(model.planText == "MiniMax Star")
|
||||
}
|
||||
|
||||
@Test
|
||||
func `minimax nil loginMethod results in nil planText`() throws {
|
||||
let now = Date()
|
||||
let minimax = MiniMaxUsageSnapshot(
|
||||
planName: nil,
|
||||
availablePrompts: nil,
|
||||
currentPrompts: nil,
|
||||
remainingPrompts: nil,
|
||||
windowMinutes: nil,
|
||||
usedPercent: nil,
|
||||
resetsAt: nil,
|
||||
updatedAt: now)
|
||||
let snapshot = UsageSnapshot(
|
||||
primary: RateWindow(usedPercent: 0, windowMinutes: nil, resetsAt: nil, resetDescription: nil),
|
||||
secondary: nil,
|
||||
minimaxUsage: minimax,
|
||||
updatedAt: now,
|
||||
identity: ProviderIdentitySnapshot(
|
||||
providerID: .minimax,
|
||||
accountEmail: nil,
|
||||
accountOrganization: nil,
|
||||
loginMethod: nil))
|
||||
let metadata = try #require(ProviderDefaults.metadata[.minimax])
|
||||
|
||||
let model = UsageMenuCardView.Model.make(.init(
|
||||
provider: .minimax,
|
||||
metadata: metadata,
|
||||
snapshot: snapshot,
|
||||
credits: nil,
|
||||
creditsError: nil,
|
||||
dashboard: nil,
|
||||
dashboardError: nil,
|
||||
tokenSnapshot: nil,
|
||||
tokenError: nil,
|
||||
account: AccountInfo(email: nil, plan: nil),
|
||||
isRefreshing: false,
|
||||
lastError: nil,
|
||||
usageBarsShowUsed: true,
|
||||
resetTimeDisplayStyle: .countdown,
|
||||
tokenCostUsageEnabled: false,
|
||||
showOptionalCreditsAndExtraUsage: true,
|
||||
hidePersonalInfo: false,
|
||||
now: now))
|
||||
|
||||
#expect(model.planText == nil)
|
||||
}
|
||||
|
||||
@Test
|
||||
func `minimax quota rows include configured warning markers`() throws {
|
||||
let now = Date()
|
||||
let minimax = MiniMaxUsageSnapshot(
|
||||
planName: "TokenPlanPlus-年度会员",
|
||||
availablePrompts: nil,
|
||||
currentPrompts: nil,
|
||||
remainingPrompts: nil,
|
||||
windowMinutes: nil,
|
||||
usedPercent: nil,
|
||||
resetsAt: nil,
|
||||
updatedAt: now,
|
||||
services: [
|
||||
MiniMaxServiceUsage(
|
||||
serviceType: "general",
|
||||
windowType: "5 hours",
|
||||
timeRange: "15:00-20:00(UTC+8)",
|
||||
usage: 31,
|
||||
limit: 100,
|
||||
percent: 31,
|
||||
resetsAt: now.addingTimeInterval(3600),
|
||||
resetDescription: "Resets in 1 hour"),
|
||||
MiniMaxServiceUsage(
|
||||
serviceType: "general",
|
||||
windowType: "Weekly",
|
||||
timeRange: "06/01 00:00 - 06/08 00:00(UTC+8)",
|
||||
usage: 4,
|
||||
limit: 100,
|
||||
percent: 4,
|
||||
resetsAt: now.addingTimeInterval(6 * 24 * 3600),
|
||||
resetDescription: "Resets in 6 days"),
|
||||
])
|
||||
let metadata = try #require(ProviderDefaults.metadata[.minimax])
|
||||
let model = UsageMenuCardView.Model.make(.init(
|
||||
provider: .minimax,
|
||||
metadata: metadata,
|
||||
snapshot: minimax.toUsageSnapshot(),
|
||||
credits: nil,
|
||||
creditsError: nil,
|
||||
dashboard: nil,
|
||||
dashboardError: nil,
|
||||
tokenSnapshot: nil,
|
||||
tokenError: nil,
|
||||
account: AccountInfo(email: nil, plan: nil),
|
||||
isRefreshing: false,
|
||||
lastError: nil,
|
||||
usageBarsShowUsed: true,
|
||||
resetTimeDisplayStyle: .countdown,
|
||||
tokenCostUsageEnabled: false,
|
||||
showOptionalCreditsAndExtraUsage: true,
|
||||
hidePersonalInfo: false,
|
||||
quotaWarningThresholds: [.session: [50, 20], .weekly: [50, 20]],
|
||||
workDaysPerWeek: 5,
|
||||
now: now))
|
||||
|
||||
#expect(model.metrics.map(\.warningMarkerPercents) == [[50, 80], [50, 80]])
|
||||
#expect(model.metrics.map(\.workdayMarkerPercents) == [[], [20, 40, 60, 80]])
|
||||
}
|
||||
|
||||
@Test
|
||||
func `minimax quota rows use canonical general first order`() throws {
|
||||
let now = Date()
|
||||
let minimax = MiniMaxUsageSnapshot(
|
||||
planName: "TokenPlanMax-年度会员",
|
||||
availablePrompts: nil,
|
||||
currentPrompts: nil,
|
||||
remainingPrompts: nil,
|
||||
windowMinutes: nil,
|
||||
usedPercent: nil,
|
||||
resetsAt: nil,
|
||||
updatedAt: now,
|
||||
services: [
|
||||
MiniMaxServiceUsage(
|
||||
serviceType: "video",
|
||||
windowType: "Today",
|
||||
timeRange: "06/01 00:00 - 06/02 00:00(UTC+8)",
|
||||
usage: 70,
|
||||
limit: 100,
|
||||
percent: 70,
|
||||
resetsAt: now.addingTimeInterval(3600),
|
||||
resetDescription: "Resets in 1 hour"),
|
||||
MiniMaxServiceUsage(
|
||||
serviceType: "general",
|
||||
windowType: "5 hours",
|
||||
timeRange: "15:00-20:00(UTC+8)",
|
||||
usage: 4,
|
||||
limit: 100,
|
||||
percent: 4,
|
||||
resetsAt: now.addingTimeInterval(3600),
|
||||
resetDescription: "Resets in 1 hour"),
|
||||
MiniMaxServiceUsage(
|
||||
serviceType: "general",
|
||||
windowType: "Weekly",
|
||||
timeRange: "06/01 00:00 - 06/08 00:00(UTC+8)",
|
||||
usage: 1,
|
||||
limit: 100,
|
||||
percent: 1,
|
||||
resetsAt: now.addingTimeInterval(6 * 24 * 3600),
|
||||
resetDescription: "Resets in 6 days"),
|
||||
])
|
||||
let metadata = try #require(ProviderDefaults.metadata[.minimax])
|
||||
let model = UsageMenuCardView.Model.make(.init(
|
||||
provider: .minimax,
|
||||
metadata: metadata,
|
||||
snapshot: minimax.toUsageSnapshot(),
|
||||
credits: nil,
|
||||
creditsError: nil,
|
||||
dashboard: nil,
|
||||
dashboardError: nil,
|
||||
tokenSnapshot: nil,
|
||||
tokenError: nil,
|
||||
account: AccountInfo(email: nil, plan: nil),
|
||||
isRefreshing: false,
|
||||
lastError: nil,
|
||||
usageBarsShowUsed: true,
|
||||
resetTimeDisplayStyle: .countdown,
|
||||
tokenCostUsageEnabled: false,
|
||||
showOptionalCreditsAndExtraUsage: true,
|
||||
hidePersonalInfo: false,
|
||||
now: now))
|
||||
|
||||
#expect(model.metrics.map(\.title) == ["General · 5h", "General · Weekly", "Video"])
|
||||
#expect(model.metrics.map(\.percent) == [4, 1, 70])
|
||||
}
|
||||
|
||||
@Test
|
||||
func `minimax unlimited quota rows omit usage copy and warning markers`() throws {
|
||||
let now = Date()
|
||||
let minimax = MiniMaxUsageSnapshot(
|
||||
planName: "Plus",
|
||||
availablePrompts: nil,
|
||||
currentPrompts: nil,
|
||||
remainingPrompts: nil,
|
||||
windowMinutes: nil,
|
||||
usedPercent: nil,
|
||||
resetsAt: nil,
|
||||
updatedAt: now,
|
||||
services: [
|
||||
MiniMaxServiceUsage(
|
||||
serviceType: "general",
|
||||
windowType: "5 hours",
|
||||
timeRange: "15:00-20:00(UTC+8)",
|
||||
usage: 2,
|
||||
limit: 200,
|
||||
percent: 2,
|
||||
resetsAt: now.addingTimeInterval(3600),
|
||||
resetDescription: "Resets in 1 hour"),
|
||||
MiniMaxServiceUsage(
|
||||
serviceType: "general",
|
||||
windowType: "Weekly",
|
||||
timeRange: "06/01 00:00 - 06/08 00:00(UTC+8)",
|
||||
usage: 0,
|
||||
limit: 0,
|
||||
percent: 0,
|
||||
isUnlimited: true,
|
||||
resetsAt: nil,
|
||||
resetDescription: "Unlimited"),
|
||||
])
|
||||
let metadata = try #require(ProviderDefaults.metadata[.minimax])
|
||||
let model = UsageMenuCardView.Model.make(.init(
|
||||
provider: .minimax,
|
||||
metadata: metadata,
|
||||
snapshot: minimax.toUsageSnapshot(),
|
||||
credits: nil,
|
||||
creditsError: nil,
|
||||
dashboard: nil,
|
||||
dashboardError: nil,
|
||||
tokenSnapshot: nil,
|
||||
tokenError: nil,
|
||||
account: AccountInfo(email: nil, plan: nil),
|
||||
isRefreshing: false,
|
||||
lastError: nil,
|
||||
usageBarsShowUsed: true,
|
||||
resetTimeDisplayStyle: .countdown,
|
||||
tokenCostUsageEnabled: false,
|
||||
showOptionalCreditsAndExtraUsage: true,
|
||||
hidePersonalInfo: false,
|
||||
quotaWarningThresholds: [.session: [50, 20], .weekly: [50, 20]],
|
||||
now: now))
|
||||
|
||||
#expect(model.metrics.count == 2)
|
||||
#expect(model.metrics[1].title == "General · Weekly")
|
||||
#expect(model.metrics[1].statusText == "∞ Unlimited")
|
||||
#expect(model.metrics[1].detailLeftText == nil)
|
||||
#expect(model.metrics[1].warningMarkerPercents == [])
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user