mirror of https://github.com/oxen-io/session-ios
				
				
				
			Started laying the ground work for unit testing the JobRunnner
Starting injecting dependencies for the JobRunner Turned the JobRunner into a singleton instancepull/813/head
							parent
							
								
									65e7009b0a
								
							
						
					
					
						commit
						a7af1ca768
					
				
											
												
													File diff suppressed because it is too large
													Load Diff
												
											
										
									
								| @ -0,0 +1,68 @@ | ||||
| // Copyright © 2023 Rangeproof Pty Ltd. All rights reserved. | ||||
| 
 | ||||
| import Foundation | ||||
| import GRDB | ||||
| 
 | ||||
| import Quick | ||||
| import Nimble | ||||
| 
 | ||||
| @testable import SessionUtilitiesKit | ||||
| 
 | ||||
| class JobRunnerSpec: QuickSpec { | ||||
|     public enum TestSuccessfulJob: JobExecutor { | ||||
|         static let maxFailureCount: Int = 0 | ||||
|         static let requiresThreadId: Bool = false | ||||
|         static let requiresInteractionId: Bool = false | ||||
|          | ||||
|         static func run( | ||||
|             _ job: Job, | ||||
|             queue: DispatchQueue, | ||||
|             success: @escaping (Job, Bool, Dependencies) -> (), | ||||
|             failure: @escaping (Job, Error?, Bool, Dependencies) -> (), | ||||
|             deferred: @escaping (Job, Dependencies) -> (), | ||||
|             dependencies: Dependencies | ||||
|         ) { | ||||
|             success(job, true, dependencies) | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     // MARK: - Spec | ||||
| 
 | ||||
|     override func spec() { | ||||
|         var jobRunner: JobRunner! | ||||
|         var mockStorage: Storage! | ||||
|         var dependencies: Dependencies! | ||||
|          | ||||
|         // MARK: - JobRunner | ||||
|          | ||||
|         describe("a JobRunner") { | ||||
|             beforeEach { | ||||
|                 mockStorage = Storage( | ||||
|                     customWriter: try! DatabaseQueue(), | ||||
|                     customMigrations: [ | ||||
|                         SNUtilitiesKit.migrations() | ||||
|                     ] | ||||
|                 ) | ||||
|                 dependencies = Dependencies( | ||||
|                     storage: mockStorage, | ||||
|                     date: Date(timeIntervalSince1970: 1234567890) | ||||
|                 ) | ||||
|                  | ||||
|                 jobRunner = JobRunner() | ||||
|             } | ||||
|              | ||||
|             afterEach { | ||||
|                 jobRunner = nil | ||||
|                 mockStorage = nil | ||||
|                 dependencies = nil | ||||
|             } | ||||
|              | ||||
|             context("when configuring") { | ||||
|                 it("adds an executor correctly") { | ||||
|                     // TODO: Test this | ||||
|                     jobRunner.add(executor: TestSuccessfulJob.self, for: .messageSend) | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
					Loading…
					
					
				
		Reference in New Issue