migration
This commit is contained in:
42
PediFoodsTests/ApiCardModelsTests.swift
Normal file
42
PediFoodsTests/ApiCardModelsTests.swift
Normal file
@@ -0,0 +1,42 @@
|
||||
import Foundation
|
||||
import Testing
|
||||
@testable import PediFoods
|
||||
|
||||
private func makeCard(nickname: String? = nil, brand: String? = "visa") -> SavedCard {
|
||||
let json = """
|
||||
{"id":"1","nickname":\(nickname.map { "\"\($0)\"" } ?? "null"),"holderName":"Jane Doe",
|
||||
"last4":"4242","brand":\(brand.map { "\"\($0)\"" } ?? "null"),
|
||||
"expiryMonth":"09","expiryYear":"2027","isDefault":false}
|
||||
"""
|
||||
return try! JSONDecoder().decode(SavedCard.self, from: Data(json.utf8))
|
||||
}
|
||||
|
||||
@Test("SavedCard.displayLabel uses the nickname when present")
|
||||
func savedCardDisplayLabelUsesNickname() {
|
||||
let card = makeCard(nickname: "Meu cartão")
|
||||
#expect(card.displayLabel == "Meu cartão")
|
||||
}
|
||||
|
||||
@Test("SavedCard.displayLabel falls back to capitalized brand + last4 when nickname is absent")
|
||||
func savedCardDisplayLabelFallsBackToBrand() {
|
||||
let card = makeCard(nickname: nil, brand: "visa")
|
||||
#expect(card.displayLabel == "Visa •••• 4242")
|
||||
}
|
||||
|
||||
@Test("SavedCard.displayLabel falls back to a generic label when both nickname and brand are absent")
|
||||
func savedCardDisplayLabelFallsBackToGeneric() {
|
||||
let card = makeCard(nickname: nil, brand: nil)
|
||||
#expect(card.displayLabel == "Cartão •••• 4242")
|
||||
}
|
||||
|
||||
@Test("SavedCard.displayLabel ignores an empty-string nickname")
|
||||
func savedCardDisplayLabelIgnoresEmptyNickname() {
|
||||
let card = makeCard(nickname: "", brand: "mastercard")
|
||||
#expect(card.displayLabel == "Mastercard •••• 4242")
|
||||
}
|
||||
|
||||
@Test("SavedCard.expiryLabel joins month and year with a slash")
|
||||
func savedCardExpiryLabel() {
|
||||
let card = makeCard()
|
||||
#expect(card.expiryLabel == "09/2027")
|
||||
}
|
||||
Reference in New Issue
Block a user