diff --git a/Examples/xx-messenger/Sources/AppCore/AuthCallbackHandler/AuthCallbackHandlerRequest.swift b/Examples/xx-messenger/Sources/AppCore/AuthCallbackHandler/AuthCallbackHandlerRequest.swift index d8ac3d18a496b64427b293fcc476c341d93353cb..6d1943e923732bc6dbdafe053deeb962191b7d13 100644 --- a/Examples/xx-messenger/Sources/AppCore/AuthCallbackHandler/AuthCallbackHandlerRequest.swift +++ b/Examples/xx-messenger/Sources/AppCore/AuthCallbackHandler/AuthCallbackHandlerRequest.swift @@ -15,7 +15,6 @@ public struct AuthCallbackHandlerRequest { extension AuthCallbackHandlerRequest { public static func live( db: DBManagerGetDB, - messenger: Messenger, now: @escaping () -> Date ) -> AuthCallbackHandlerRequest { AuthCallbackHandlerRequest { xxContact in @@ -28,21 +27,9 @@ extension AuthCallbackHandlerRequest { dbContact.username = try xxContact.getFact(.username)?.value dbContact.email = try xxContact.getFact(.email)?.value dbContact.phone = try xxContact.getFact(.phone)?.value - dbContact.authStatus = .verificationInProgress + dbContact.authStatus = .stranger dbContact.createdAt = now() dbContact = try db().saveContact(dbContact) - - do { - try messenger.waitForNetwork() - try messenger.waitForNodes() - let verified = try messenger.verifyContact(xxContact) - dbContact.authStatus = verified ? .verified : .verificationFailed - dbContact = try db().saveContact(dbContact) - } catch { - dbContact.authStatus = .verificationFailed - dbContact = try db().saveContact(dbContact) - throw error - } } } } diff --git a/Examples/xx-messenger/Sources/AppFeature/AppEnvironment+Live.swift b/Examples/xx-messenger/Sources/AppFeature/AppEnvironment+Live.swift index 906e9992a9391461f0ff5410d196727996d7c892..4cbcef24b7d39adec9ec0eb32a84b88340d043d8 100644 --- a/Examples/xx-messenger/Sources/AppFeature/AppEnvironment+Live.swift +++ b/Examples/xx-messenger/Sources/AppFeature/AppEnvironment+Live.swift @@ -20,11 +20,7 @@ extension AppEnvironment { let messenger = Messenger.live(messengerEnv) let authHandler = AuthCallbackHandler.live( messenger: messenger, - handleRequest: .live( - db: dbManager.getDB, - messenger: messenger, - now: Date.init - ), + handleRequest: .live(db: dbManager.getDB, now: Date.init), handleConfirm: .live(db: dbManager.getDB), handleReset: .live(db: dbManager.getDB) ) diff --git a/Examples/xx-messenger/Tests/AppCoreTests/AuthCallbackHandler/AuthCallbackHandlerRequestTests.swift b/Examples/xx-messenger/Tests/AppCoreTests/AuthCallbackHandler/AuthCallbackHandlerRequestTests.swift index 65786884bfbe0821343509f20bd1f0942998768d..3a7cb6fbf2d475eadfdc10aa854938fad247167b 100644 --- a/Examples/xx-messenger/Tests/AppCoreTests/AuthCallbackHandler/AuthCallbackHandlerRequestTests.swift +++ b/Examples/xx-messenger/Tests/AppCoreTests/AuthCallbackHandler/AuthCallbackHandlerRequestTests.swift @@ -10,17 +10,8 @@ final class AuthCallbackHandlerRequestTests: XCTestCase { func testRequestFromNewContact() throws { let now = Date() var didFetchContacts: [XXModels.Contact.Query] = [] - var didVerifyContact: [XXClient.Contact] = [] var didSaveContact: [XXModels.Contact] = [] - var messenger: Messenger = .unimplemented - messenger.waitForNetwork.run = { _ in } - messenger.waitForNodes.run = { _, _, _, _ in } - messenger.verifyContact.run = { contact in - didVerifyContact.append(contact) - return true - } - let request = AuthCallbackHandlerRequest.live( db: .init { var db: Database = .failing @@ -34,7 +25,6 @@ final class AuthCallbackHandlerRequestTests: XCTestCase { } return db }, - messenger: messenger, now: { now } ) var xxContact = XXClient.Contact.unimplemented("contact".data(using: .utf8)!) @@ -50,26 +40,15 @@ final class AuthCallbackHandlerRequestTests: XCTestCase { try request(xxContact) XCTAssertNoDifference(didFetchContacts, [.init(id: ["id".data(using: .utf8)!])]) - XCTAssertNoDifference(didSaveContact, [ - .init( - id: "id".data(using: .utf8)!, - marshaled: "contact".data(using: .utf8)!, - username: "username", - email: "email", - phone: "phone", - authStatus: .verificationInProgress, - createdAt: now - ), - .init( - id: "id".data(using: .utf8)!, - marshaled: "contact".data(using: .utf8)!, - username: "username", - email: "email", - phone: "phone", - authStatus: .verified, - createdAt: now - ) - ]) + XCTAssertNoDifference(didSaveContact, [.init( + id: "id".data(using: .utf8)!, + marshaled: "contact".data(using: .utf8)!, + username: "username", + email: "email", + phone: "phone", + authStatus: .stranger, + createdAt: now + )]) } func testRequestWhenContactInDatabase() throws { @@ -79,7 +58,6 @@ final class AuthCallbackHandlerRequestTests: XCTestCase { db.fetchContacts.run = { _ in [.init(id: "id".data(using: .utf8)!)] } return db }, - messenger: .unimplemented, now: XCTUnimplemented("now", placeholder: Date()) ) var contact = XXClient.Contact.unimplemented("contact".data(using: .utf8)!) @@ -87,96 +65,4 @@ final class AuthCallbackHandlerRequestTests: XCTestCase { try request(contact) } - - func testRequestFromNewContactVerificationFalse() throws { - let now = Date() - var didSaveContact: [XXModels.Contact] = [] - - var messenger: Messenger = .unimplemented - messenger.waitForNetwork.run = { _ in } - messenger.waitForNodes.run = { _, _, _, _ in } - messenger.verifyContact.run = { _ in false } - - let request = AuthCallbackHandlerRequest.live( - db: .init { - var db: Database = .failing - db.fetchContacts.run = { query in return [] } - db.saveContact.run = { contact in - didSaveContact.append(contact) - return contact - } - return db - }, - messenger: messenger, - now: { now } - ) - var xxContact = XXClient.Contact.unimplemented("contact".data(using: .utf8)!) - xxContact.getIdFromContact.run = { _ in "id".data(using: .utf8)! } - xxContact.getFactsFromContact.run = { _ in [] } - - try request(xxContact) - - XCTAssertNoDifference(didSaveContact, [ - .init( - id: "id".data(using: .utf8)!, - marshaled: "contact".data(using: .utf8)!, - authStatus: .verificationInProgress, - createdAt: now - ), - .init( - id: "id".data(using: .utf8)!, - marshaled: "contact".data(using: .utf8)!, - authStatus: .verificationFailed, - createdAt: now - ) - ]) - } - - func testRequestFromNewContactVerificationFailure() throws { - struct Failure: Error, Equatable {} - let failure = Failure() - let now = Date() - var didSaveContact: [XXModels.Contact] = [] - - var messenger: Messenger = .unimplemented - messenger.waitForNetwork.run = { _ in } - messenger.waitForNodes.run = { _, _, _, _ in } - messenger.verifyContact.run = { _ in throw failure } - - let request = AuthCallbackHandlerRequest.live( - db: .init { - var db: Database = .failing - db.fetchContacts.run = { query in return [] } - db.saveContact.run = { contact in - didSaveContact.append(contact) - return contact - } - return db - }, - messenger: messenger, - now: { now } - ) - var xxContact = XXClient.Contact.unimplemented("contact".data(using: .utf8)!) - xxContact.getIdFromContact.run = { _ in "id".data(using: .utf8)! } - xxContact.getFactsFromContact.run = { _ in [] } - - XCTAssertThrowsError(try request(xxContact)) { error in - XCTAssertNoDifference(error as? Failure, failure) - } - - XCTAssertNoDifference(didSaveContact, [ - .init( - id: "id".data(using: .utf8)!, - marshaled: "contact".data(using: .utf8)!, - authStatus: .verificationInProgress, - createdAt: now - ), - .init( - id: "id".data(using: .utf8)!, - marshaled: "contact".data(using: .utf8)!, - authStatus: .verificationFailed, - createdAt: now - ) - ]) - } }