// Copyright © 2023 Rangeproof Pty Ltd. All rights reserved. import Foundation import Quick import Nimble @testable import SessionUtilitiesKit class DependenciesSpec: QuickSpec { override class func spec() { // MARK: Configuration @TestState var dependencies: Dependencies! = Dependencies() // MARK: - Dependencies describe("Dependencies") { // MARK: -- when accessing dateNow context("when accessing dateNow") { // MARK: ---- creates a new date every time when not overwritten it("creates a new date every time when not overwritten") { let date1 = dependencies.dateNow Thread.sleep(forTimeInterval: 0.05) let date2 = dependencies.dateNow expect(date1.timeIntervalSince1970).toNot(equal(date2.timeIntervalSince1970)) } // MARK: ---- returns the same new date every time when overwritten it("returns the same new date every time when overwritten") { dependencies.dateNow = Date(timeIntervalSince1970: 1234567890) let date1 = dependencies.dateNow Thread.sleep(forTimeInterval: 0.05) let date2 = dependencies.dateNow expect(date1.timeIntervalSince1970).to(equal(date2.timeIntervalSince1970)) expect(date1.timeIntervalSince1970).to(equal(1234567890)) } } } } }