Don’t wrap PreKeyManager mocks in Tasks
This commit is contained in:
parent
65f577efed
commit
8f60728454
@ -345,11 +345,10 @@ public class RegistrationCoordinatorTest {
|
||||
// It needs an apns token to register.
|
||||
pushRegistrationManagerMock.addRequestPushTokenMock({ .success(Stubs.apnsRegistrationId) })
|
||||
// It needs prekeys as well.
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Task { Stubs.prekeyBundles() } })
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Stubs.prekeyBundles() })
|
||||
// And will finalize prekeys after success.
|
||||
preKeyManagerMock.addFinalizePreKeyMock { didSucceed in
|
||||
#expect(didSucceed)
|
||||
return Task {}
|
||||
}
|
||||
|
||||
let identityResponse = Stubs.accountIdentityResponse()
|
||||
@ -389,7 +388,6 @@ public class RegistrationCoordinatorTest {
|
||||
// When registered, we should create pre-keys.
|
||||
preKeyManagerMock.addRotateOneTimePreKeyMock({ auth in
|
||||
#expect(auth == expectedAuthedAccount().chatServiceAuth)
|
||||
return Task {}
|
||||
})
|
||||
|
||||
if wasReglockEnabled {
|
||||
@ -504,11 +502,10 @@ public class RegistrationCoordinatorTest {
|
||||
// It needs an apns token to register.
|
||||
pushRegistrationManagerMock.addRequestPushTokenMock({ .success(Stubs.apnsRegistrationId) })
|
||||
// Every time we register we also ask for prekeys.
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Task { Stubs.prekeyBundles() } })
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Stubs.prekeyBundles() })
|
||||
// And we finalize them after.
|
||||
preKeyManagerMock.addFinalizePreKeyMock { didSucceed in
|
||||
#expect(didSucceed)
|
||||
return Task {}
|
||||
}
|
||||
|
||||
let identityResponse = Stubs.accountIdentityResponse()
|
||||
@ -541,7 +538,6 @@ public class RegistrationCoordinatorTest {
|
||||
// When registered, we should create pre-keys.
|
||||
preKeyManagerMock.addRotateOneTimePreKeyMock({ auth in
|
||||
#expect(auth == expectedAuthedAccount().chatServiceAuth)
|
||||
return Task {}
|
||||
})
|
||||
|
||||
// We haven't done a SVR backup; that should happen now.
|
||||
@ -647,18 +643,16 @@ public class RegistrationCoordinatorTest {
|
||||
pushRegistrationManagerMock.addRequestPushTokenMock({ .success(Stubs.apnsRegistrationId) })
|
||||
|
||||
// Every time we register we also ask for prekeys.
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Task { Stubs.prekeyBundles() } })
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Task { Stubs.prekeyBundles() } })
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Stubs.prekeyBundles() })
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Stubs.prekeyBundles() })
|
||||
|
||||
// And we finalize them after.
|
||||
// Set up a list of mocks that should be returned in order
|
||||
preKeyManagerMock.addFinalizePreKeyMock { didSucceed in
|
||||
#expect(didSucceed.negated)
|
||||
return Task {}
|
||||
}
|
||||
preKeyManagerMock.addFinalizePreKeyMock { didSucceed in
|
||||
#expect(didSucceed)
|
||||
return Task {}
|
||||
}
|
||||
|
||||
// Fail the request; the reg recovery pw is invalid.
|
||||
@ -753,17 +747,15 @@ public class RegistrationCoordinatorTest {
|
||||
pushRegistrationManagerMock.addRequestPushTokenMock({ .success(Stubs.apnsRegistrationId) })
|
||||
pushRegistrationManagerMock.addRequestPushTokenMock({ .success(Stubs.apnsRegistrationId) })
|
||||
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Task { Stubs.prekeyBundles() } })
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Task { Stubs.prekeyBundles() } })
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Task { Stubs.prekeyBundles() } })
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Stubs.prekeyBundles() })
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Stubs.prekeyBundles() })
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Stubs.prekeyBundles() })
|
||||
|
||||
preKeyManagerMock.addFinalizePreKeyMock { didSucceed in
|
||||
#expect(didSucceed.negated)
|
||||
return Task {}
|
||||
}
|
||||
preKeyManagerMock.addFinalizePreKeyMock { didSucceed in
|
||||
#expect(didSucceed.negated)
|
||||
return Task {}
|
||||
}
|
||||
|
||||
// Fail the first request; the reglock is invalid.
|
||||
@ -851,17 +843,15 @@ public class RegistrationCoordinatorTest {
|
||||
pushRegistrationManagerMock.addRequestPushTokenMock({ .success(Stubs.apnsRegistrationId) })
|
||||
|
||||
// Every time we register we also ask for prekeys.
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Task { Stubs.prekeyBundles() } })
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Task { Stubs.prekeyBundles() } })
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Stubs.prekeyBundles() })
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Stubs.prekeyBundles() })
|
||||
|
||||
// And we finalize them after.
|
||||
preKeyManagerMock.addFinalizePreKeyMock { didSucceed in
|
||||
#expect(didSucceed.negated)
|
||||
return Task {}
|
||||
}
|
||||
preKeyManagerMock.addFinalizePreKeyMock { didSucceed in
|
||||
#expect(didSucceed)
|
||||
return Task {}
|
||||
}
|
||||
|
||||
// Fail the request with a network error.
|
||||
@ -911,7 +901,6 @@ public class RegistrationCoordinatorTest {
|
||||
// When registered, it should try and sync pre-keys.
|
||||
preKeyManagerMock.addRotateOneTimePreKeyMock({ auth in
|
||||
#expect(auth == expectedAuthedAccount().chatServiceAuth)
|
||||
return Task {}
|
||||
})
|
||||
|
||||
// We haven't done a SVR backup; that should happen.
|
||||
@ -1068,11 +1057,11 @@ public class RegistrationCoordinatorTest {
|
||||
pushRegistrationManagerMock.addRequestPushTokenMock({ .success(Stubs.apnsRegistrationId) })
|
||||
pushRegistrationManagerMock.addRequestPushTokenMock({ .success(Stubs.apnsRegistrationId) })
|
||||
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Task { Stubs.prekeyBundles() } })
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Task { Stubs.prekeyBundles() } })
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Stubs.prekeyBundles() })
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Stubs.prekeyBundles() })
|
||||
|
||||
preKeyManagerMock.addFinalizePreKeyMock({ _ in Task {} })
|
||||
preKeyManagerMock.addFinalizePreKeyMock({ _ in Task {} })
|
||||
preKeyManagerMock.addFinalizePreKeyMock({ _ in })
|
||||
preKeyManagerMock.addFinalizePreKeyMock({ _ in })
|
||||
|
||||
// Fail the first request;
|
||||
let expectedRecoveryPwRequest = createAccountWithRecoveryPw(masterKey)
|
||||
@ -1222,16 +1211,14 @@ public class RegistrationCoordinatorTest {
|
||||
pushRegistrationManagerMock.addRequestPushTokenMock({ .success(Stubs.apnsRegistrationId) })
|
||||
pushRegistrationManagerMock.addRequestPushTokenMock({ .success(Stubs.apnsRegistrationId) })
|
||||
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Task { Stubs.prekeyBundles() } })
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Task { Stubs.prekeyBundles() } })
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Stubs.prekeyBundles() })
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Stubs.prekeyBundles() })
|
||||
|
||||
preKeyManagerMock.addFinalizePreKeyMock { didSucceed in
|
||||
#expect(didSucceed.negated)
|
||||
return Task {}
|
||||
}
|
||||
preKeyManagerMock.addFinalizePreKeyMock { didSucceed in
|
||||
#expect(didSucceed)
|
||||
return Task {}
|
||||
}
|
||||
|
||||
// Fail the first request; the reglock is invalid.
|
||||
@ -1275,7 +1262,6 @@ public class RegistrationCoordinatorTest {
|
||||
// When registered, we should create pre-keys.
|
||||
preKeyManagerMock.addRotateOneTimePreKeyMock({ auth in
|
||||
#expect(auth == expectedAuthedAccount().chatServiceAuth)
|
||||
return Task {}
|
||||
})
|
||||
|
||||
// If we had reglock before registration, it should be re-enabled.
|
||||
@ -1437,13 +1423,13 @@ public class RegistrationCoordinatorTest {
|
||||
pushRegistrationManagerMock.addRequestPushTokenMock({ .success(Stubs.apnsRegistrationId) })
|
||||
pushRegistrationManagerMock.addRequestPushTokenMock({ .success(Stubs.apnsRegistrationId) })
|
||||
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Task { Stubs.prekeyBundles() } })
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Task { Stubs.prekeyBundles() } })
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Task { Stubs.prekeyBundles() } })
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Stubs.prekeyBundles() })
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Stubs.prekeyBundles() })
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Stubs.prekeyBundles() })
|
||||
|
||||
preKeyManagerMock.addFinalizePreKeyMock({ _ in Task {} })
|
||||
preKeyManagerMock.addFinalizePreKeyMock({ _ in Task {} })
|
||||
preKeyManagerMock.addFinalizePreKeyMock({ _ in Task {} })
|
||||
preKeyManagerMock.addFinalizePreKeyMock({ _ in })
|
||||
preKeyManagerMock.addFinalizePreKeyMock({ _ in })
|
||||
preKeyManagerMock.addFinalizePreKeyMock({ _ in })
|
||||
|
||||
// Fail the first request; the local key is invalid.
|
||||
let expectedRecoveryPwRequest = createAccountWithRecoveryPw(masterKey)
|
||||
@ -1567,12 +1553,11 @@ public class RegistrationCoordinatorTest {
|
||||
pushRegistrationManagerMock.addRequestPushTokenMock({ .success(Stubs.apnsRegistrationId) })
|
||||
|
||||
// Every time we register we also ask for prekeys.
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Task { Stubs.prekeyBundles() } })
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Stubs.prekeyBundles() })
|
||||
|
||||
// And we finalize them after.
|
||||
preKeyManagerMock.addFinalizePreKeyMock { didSucceed in
|
||||
#expect(didSucceed)
|
||||
return Task {}
|
||||
}
|
||||
|
||||
// Now still at it should make a reg recovery pw request
|
||||
@ -1604,7 +1589,6 @@ public class RegistrationCoordinatorTest {
|
||||
// When registered, it should try and create pre-keys.
|
||||
preKeyManagerMock.addRotateOneTimePreKeyMock({ auth in
|
||||
#expect(auth == expectedAuthedAccount().chatServiceAuth)
|
||||
return Task {}
|
||||
})
|
||||
|
||||
// Once we create pre-keys, we should back up to svr.
|
||||
@ -1882,7 +1866,7 @@ public class RegistrationCoordinatorTest {
|
||||
pushRegistrationManagerMock.addRequestPushTokenMock({ .success(Stubs.apnsRegistrationId) })
|
||||
|
||||
// It should also fetch the prekeys for account creation
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Task { Stubs.prekeyBundles() } })
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Stubs.prekeyBundles() })
|
||||
|
||||
let expectedRequest = createAccountWithSession(newMasterKey)
|
||||
mockURLSession.addResponse(
|
||||
@ -1909,14 +1893,12 @@ public class RegistrationCoordinatorTest {
|
||||
// Once we are registered, we should finalize prekeys.
|
||||
preKeyManagerMock.addFinalizePreKeyMock { didSucceed in
|
||||
#expect(didSucceed)
|
||||
return Task {}
|
||||
}
|
||||
|
||||
// Then we should try and create one time pre-keys
|
||||
// with the credentials we got in the identity response.
|
||||
preKeyManagerMock.addRotateOneTimePreKeyMock({ auth in
|
||||
#expect(auth == expectedAuthedAccount().chatServiceAuth)
|
||||
return Task {}
|
||||
})
|
||||
|
||||
// Finish the validation.
|
||||
@ -2913,7 +2895,7 @@ public class RegistrationCoordinatorTest {
|
||||
pushRegistrationManagerMock.addRequestPushTokenMock({ .success(Stubs.apnsRegistrationId) })
|
||||
|
||||
// It should also fetch the prekeys for account creation
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Task { Stubs.prekeyBundles() } })
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Stubs.prekeyBundles() })
|
||||
|
||||
let expectedRequest = createAccountWithSession(newMasterKey)
|
||||
mockURLSession.addResponse(
|
||||
@ -2944,14 +2926,12 @@ public class RegistrationCoordinatorTest {
|
||||
// Once we are registered, we should finalize prekeys.
|
||||
preKeyManagerMock.addFinalizePreKeyMock { didSucceed in
|
||||
#expect(didSucceed)
|
||||
return Task {}
|
||||
}
|
||||
|
||||
// Then we should try and create one time pre-keys
|
||||
// with the credentials we got in the identity response.
|
||||
preKeyManagerMock.addRotateOneTimePreKeyMock({ auth in
|
||||
#expect(auth == expectedAuthedAccount().chatServiceAuth)
|
||||
return Task {}
|
||||
})
|
||||
|
||||
// When we skip the pin, it should skip any SVR backups.
|
||||
@ -3048,7 +3028,7 @@ public class RegistrationCoordinatorTest {
|
||||
pushRegistrationManagerMock.addRequestPushTokenMock({ .success(Stubs.apnsRegistrationId) })
|
||||
|
||||
// It should also fetch the prekeys for account creation
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Task { Stubs.prekeyBundles() } })
|
||||
preKeyManagerMock.addCreatePreKeysMock({ Stubs.prekeyBundles() })
|
||||
|
||||
let expectedRequest = createAccountWithSession(newMasterKey)
|
||||
mockURLSession.addResponse(
|
||||
@ -3075,14 +3055,12 @@ public class RegistrationCoordinatorTest {
|
||||
// Once we are registered, we should finalize prekeys.
|
||||
preKeyManagerMock.addFinalizePreKeyMock { didSucceed in
|
||||
#expect(didSucceed)
|
||||
return Task {}
|
||||
}
|
||||
|
||||
// Then we should try and create one time pre-keys
|
||||
// with the credentials we got in the identity response.
|
||||
preKeyManagerMock.addRotateOneTimePreKeyMock({ auth in
|
||||
#expect(auth == expectedAuthedAccount().chatServiceAuth)
|
||||
return Task {}
|
||||
})
|
||||
|
||||
// When we skip the pin, it should skip any SVR backups.
|
||||
|
||||
@ -173,28 +173,28 @@ public class _RegistrationCoordinator_PreKeyManagerMock: PreKeyManager {
|
||||
public func rotateSignedPreKeysIfNeeded() async throws { fatalError() }
|
||||
public func refreshOneTimePreKeys(forIdentity identity: OWSIdentity, alsoRefreshSignedPreKey shouldRefreshSignedPreKey: Bool) async throws { fatalError() }
|
||||
|
||||
public typealias CreatePreKeysMock = () -> Task<RegistrationPreKeyUploadBundles, Never>
|
||||
public typealias CreatePreKeysMock = () async -> RegistrationPreKeyUploadBundles
|
||||
private var createPreKeysMocks = [CreatePreKeysMock]()
|
||||
public func addCreatePreKeysMock(_ mock: @escaping CreatePreKeysMock) { createPreKeysMocks.append(mock) }
|
||||
public func createPreKeysForRegistration() async -> RegistrationPreKeyUploadBundles {
|
||||
run.addObservedStep(.createPreKeys)
|
||||
return await createPreKeysMocks.removeFirst()().value
|
||||
return await createPreKeysMocks.removeFirst()()
|
||||
}
|
||||
|
||||
public typealias FinalizePreKeysMock = (Bool) -> Task<Void, Never>
|
||||
public typealias FinalizePreKeysMock = (Bool) async -> Void
|
||||
private var finalizePreKeysMocks = [FinalizePreKeysMock]()
|
||||
public func addFinalizePreKeyMock(_ mock: @escaping FinalizePreKeysMock) { finalizePreKeysMocks.append(mock) }
|
||||
public func finalizeRegistrationPreKeys(_ bundles: RegistrationPreKeyUploadBundles, uploadDidSucceed: Bool) async {
|
||||
run.addObservedStep(.finalizePreKeys)
|
||||
await finalizePreKeysMocks.removeFirst()(uploadDidSucceed).value
|
||||
await finalizePreKeysMocks.removeFirst()(uploadDidSucceed)
|
||||
}
|
||||
|
||||
public typealias RotateOneTimePreKeysMock = (ChatServiceAuth) -> Task<Void, any Error>
|
||||
public typealias RotateOneTimePreKeysMock = (ChatServiceAuth) async throws -> Void
|
||||
private var rotateOneTimePreKeysMocks = [RotateOneTimePreKeysMock]()
|
||||
public func addRotateOneTimePreKeyMock(_ mock: @escaping RotateOneTimePreKeysMock) { rotateOneTimePreKeysMocks.append(mock) }
|
||||
public func rotateOneTimePreKeysForRegistration(auth: ChatServiceAuth) async throws {
|
||||
run.addObservedStep(.rotateOneTimePreKeys)
|
||||
return try await rotateOneTimePreKeysMocks.removeFirst()(auth).value
|
||||
return try await rotateOneTimePreKeysMocks.removeFirst()(auth)
|
||||
}
|
||||
|
||||
public func setIsChangingNumber(_ isChangingNumber: Bool) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user