Skip to content
Snippets Groups Projects
Select Git revision
  • 215426659da08c9105a08ee3a25857f9d1bc1566
  • main default protected
  • development
  • integration
  • v1.1.5
  • v1.1.4
  • v1.1.3
  • v1.1.2
  • v1.1.1
  • v1.1.0
  • v1.0.0
11 results

build-bindings.sh

Blame
  • ContactFeatureTests.swift 6.23 KiB
    import CheckContactAuthFeature
    import Combine
    import ComposableArchitecture
    import CustomDump
    import SendRequestFeature
    import VerifyContactFeature
    import XCTest
    import XXClient
    import XXModels
    @testable import ContactFeature
    
    final class ContactFeatureTests: XCTestCase {
      func testStart() {
        let store = TestStore(
          initialState: ContactState(
            id: "contact-id".data(using: .utf8)!
          ),
          reducer: contactReducer,
          environment: .unimplemented
        )
    
        var dbDidFetchContacts: [XXModels.Contact.Query] = []
        let dbContactsPublisher = PassthroughSubject<[XXModels.Contact], Error>()
    
        store.environment.mainQueue = .immediate
        store.environment.bgQueue = .immediate
        store.environment.db.run = {
          var db: Database = .failing
          db.fetchContactsPublisher.run = { query in
            dbDidFetchContacts.append(query)
            return dbContactsPublisher.eraseToAnyPublisher()
          }
          return db
        }
    
        store.send(.start)
    
        XCTAssertNoDifference(dbDidFetchContacts, [
          .init(id: ["contact-id".data(using: .utf8)!])
        ])
    
        let dbContact = XXModels.Contact(id: "contact-id".data(using: .utf8)!)
        dbContactsPublisher.send([dbContact])
    
        store.receive(.dbContactFetched(dbContact)) {
          $0.dbContact = dbContact
        }
    
        dbContactsPublisher.send(completion: .finished)
      }
    
      func testImportFacts() {
        let dbContact: XXModels.Contact = .init(
          id: "contact-id".data(using: .utf8)!
        )
    
        var xxContact: XXClient.Contact = .unimplemented("contact-data".data(using: .utf8)!)
        xxContact.getFactsFromContact.run = { _ in
          [
            Fact(type: .username, value: "contact-username"),
            Fact(type: .email, value: "contact-email"),
            Fact(type: .phone, value: "contact-phone"),
          ]
        }
    
        let store = TestStore(
          initialState: ContactState(
            id: "contact-id".data(using: .utf8)!,
            dbContact: dbContact,
            xxContact: xxContact