From 79bed93b2d862dc87153d23e34be7b64df593a7f Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Sat, 10 Nov 2018 13:28:57 -0600 Subject: [PATCH] reconcile jobqueue with new readiness based setup --- .../src/Network/MessageSenderJobQueue.swift | 2 +- SignalServiceKit/src/Util/JobQueue.swift | 23 +++++++++++++------ .../Network/MessageSendJobQueueTest.swift | 2 +- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/SignalServiceKit/src/Network/MessageSenderJobQueue.swift b/SignalServiceKit/src/Network/MessageSenderJobQueue.swift index 8a96e1e3e..57316fcd5 100644 --- a/SignalServiceKit/src/Network/MessageSenderJobQueue.swift +++ b/SignalServiceKit/src/Network/MessageSenderJobQueue.swift @@ -65,7 +65,7 @@ public class MessageSenderJobQueue: NSObject, JobQueue { } private func add(message: TSOutgoingMessage, removeMessageAfterSending: Bool, transaction: YapDatabaseReadWriteTransaction) { - assert(AppReadiness.isAppReady()) + assert(AppReadiness.isAppReady() || CurrentAppContext().isRunningTests) let jobRecord: SSKMessageSenderJobRecord do { diff --git a/SignalServiceKit/src/Util/JobQueue.swift b/SignalServiceKit/src/Util/JobQueue.swift index 12851fdef..1b4bb8985 100644 --- a/SignalServiceKit/src/Util/JobQueue.swift +++ b/SignalServiceKit/src/Util/JobQueue.swift @@ -110,10 +110,21 @@ public extension JobQueue { jobRecord.save(with: transaction) transaction.addCompletionQueue(.global()) { - AppReadiness.runNowOrWhenAppDidBecomeReady { - DispatchQueue.global().async { - self.workStep() - } + self.startWorkWhenAppIsReady() + } + } + + func startWorkWhenAppIsReady() { + guard !CurrentAppContext().isRunningTests else { + DispatchQueue.global().async { + self.workStep() + } + return + } + + AppReadiness.runNowOrWhenAppDidBecomeReady { + DispatchQueue.global().async { + self.workStep() } } } @@ -220,9 +231,7 @@ public extension JobQueue { self.isSetup = true - DispatchQueue.global().async { - self.workStep() - } + self.startWorkWhenAppIsReady() } func remainingRetries(durableOperation: DurableOperationType) -> UInt { diff --git a/SignalServiceKit/tests/Network/MessageSendJobQueueTest.swift b/SignalServiceKit/tests/Network/MessageSendJobQueueTest.swift index d5ecbc6bc..3991ef168 100644 --- a/SignalServiceKit/tests/Network/MessageSendJobQueueTest.swift +++ b/SignalServiceKit/tests/Network/MessageSendJobQueueTest.swift @@ -37,7 +37,7 @@ class MessageSenderJobQueueTest: SSKBaseTestSwift { self.wait(for: [expectation], timeout: 0.1) } - func test_waitsForReady() { + func test_waitsForSetup() { let message: TSOutgoingMessage = OutgoingMessageFactory().create() let sentBeforeReadyExpectation = sentExpectation(message: message)