ProjetsViewModelTest.swift
38 lignes · 1481 octets
import XCTest @testable import Card2vcf /// Port of the android `ProjetsViewModelTest` (project creation from mobile). @MainActor final class ProjetsViewModelTest: XCTestCase { func testCreateProjetInsertsEntityAndSyncOp() async throws { let projetDao = InMemoryProjetDao() let workflowDao = InMemoryWorkflowDao() let syncOpDao = InMemorySyncOpDao() var workflow = WorkflowEntity(serverId: "wf-1") workflow.nom = "Vente" try await workflowDao.upsert(workflow) let viewModel = ProjetsViewModel( projetDao: projetDao, workflowDao: workflowDao, syncOpDao: syncOpDao ) await viewModel.createProjetAsync(nom: " Salon ", description: " Stand A ", workflowServerId: "wf-1") let projets = try await projetDao.listAll() XCTAssertEqual(1, projets.count) XCTAssertEqual("Salon", projets[0].nom) XCTAssertEqual("Stand A", projets[0].description) XCTAssertEqual("wf-1", projets[0].workflowServerId) let ops = try await syncOpDao.listAll() XCTAssertEqual(1, ops.count) XCTAssertEqual("projet", ops[0].entityType) XCTAssertEqual("create", ops[0].op) XCTAssertEqual(projets[0].localId, ops[0].localId) let payload = try SyncJson.decode(CreateProjetRequest.self, from: ops[0].payloadJson) XCTAssertEqual("Salon", payload.nom) XCTAssertEqual("wf-1", payload.workflowId) } }
GitRust