Version casi lista
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
import XCTest
|
||||
@testable import MealMood
|
||||
|
||||
@MainActor
|
||||
final class OnboardingViewModelTests: XCTestCase {
|
||||
|
||||
func testAddDishAllowsNameOnlyAndUsesDefaultTag() {
|
||||
let vm = OnboardingViewModel()
|
||||
vm.newDishName = "Test dish"
|
||||
let fallbackId = UUID()
|
||||
|
||||
vm.addDish(defaultTagId: fallbackId)
|
||||
|
||||
XCTAssertEqual(vm.addedDishes.count, 1)
|
||||
XCTAssertEqual(vm.addedDishes.first?.name, "Test dish")
|
||||
XCTAssertEqual(vm.addedDishes.first?.tagIds, [fallbackId])
|
||||
}
|
||||
|
||||
func testAddDishPreventsDuplicateNames() {
|
||||
let vm = OnboardingViewModel()
|
||||
vm.newDishName = "Lentils"
|
||||
vm.addDish(defaultTagId: UUID())
|
||||
|
||||
vm.newDishName = " lentils "
|
||||
vm.addDish(defaultTagId: UUID())
|
||||
|
||||
XCTAssertEqual(vm.addedDishes.count, 1)
|
||||
}
|
||||
|
||||
func testSuggestedDishFallsBackToFirstTagWhenNoNameMatch() {
|
||||
let vm = OnboardingViewModel()
|
||||
let fallback = Tag(name: "Carne", nameEN: "Meat", color: "#E74C3C", sortOrder: 0)
|
||||
let other = Tag(name: "Pescado", nameEN: "Fish", color: "#3498DB", sortOrder: 1)
|
||||
|
||||
vm.addSuggestedDish(
|
||||
name: "Roast chicken",
|
||||
preferredTagNames: ["Unknown tag"],
|
||||
availableTags: [other, fallback]
|
||||
)
|
||||
|
||||
XCTAssertEqual(vm.addedDishes.count, 1)
|
||||
XCTAssertEqual(vm.addedDishes.first?.tagIds, [fallback.id])
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user