Skip to content

Commit 0c65d99

Browse files
[BWA-155] refactor: Move TimeProvider to BitwardenKit (#1558)
1 parent 06bf078 commit 0c65d99

File tree

52 files changed

+72
-116
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+72
-116
lines changed

AuthenticatorShared/Core/Platform/Services/TestHelpers/MockStateService.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import BitwardenKit
2+
import BitwardenKitMocks
23
import Combine
34
import Foundation
45
import TestHelpers

AuthenticatorShared/Core/Vault/Repositories/TestHelpers/MockAuthenticatorItemRepository.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import BitwardenKit
2+
import BitwardenKitMocks
13
import Combine
24
import Foundation
35

AuthenticatorShared/Core/Vault/Services/TOTP/TOTPExpirationCalculator.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import BitwardenKit
12
import Foundation
23
import OSLog
34

AuthenticatorShared/Core/Vault/Services/TOTP/TOTPExpirationCalculatorTests.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import BitwardenKitMocks
12
import XCTest
23

34
@testable import AuthenticatorShared

AuthenticatorShared/Core/Vault/Services/TestHelpers/MockVaultClientService.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import BitwardenKitMocks
12
import BitwardenSdk
23
import Foundation
34

AuthenticatorShared/UI/Vault/ItemList/ItemList/ItemListItem.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import AuthenticatorBridgeKit
2+
import BitwardenKit
23
import BitwardenSdk
34
import Foundation
45

AuthenticatorShared/UI/Vault/ItemList/ItemList/ItemListProcessor.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import BitwardenKit
12
import Combine
23
import Foundation
34

AuthenticatorShared/UI/Vault/ItemList/ItemList/ItemListView.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
// swiftlint:disable file_length
22

3+
import BitwardenKit
34
import SwiftUI
45

56
// MARK: - SearchableItemListView

AuthenticatorShared/UI/Vault/ItemList/ItemList/ItemListViewTests.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import BitwardenKitMocks
12
import SnapshotTesting
23
import SwiftUI
34
import ViewInspector

AuthenticatorShared/UI/Vault/Views/ItemListItemRow/ItemListItemRowView.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import BitwardenKit
12
import BitwardenSdk
23
import SwiftUI
34

AuthenticatorShared/UI/Vault/Views/TOTPCountdownTimer.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import BitwardenKit
12
import SwiftUI
23

34
// MARK: - TOTPCountdownTimer

AuthenticatorShared/UI/Vault/Views/TOTPCountdownTimerTests.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import BitwardenKit
12
import XCTest
23

34
@testable import AuthenticatorShared

AuthenticatorShared/UI/Vault/Views/TOTPCountdownTimerView.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import BitwardenKit
12
import SwiftUI
23

34
// MARK: - TOTPCountdownTimerView
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1+
import BitwardenKit
12
import Foundation
23

3-
@testable import AuthenticatorShared
4-
5-
class MockTimeProvider {
6-
enum TimeConfig {
4+
public class MockTimeProvider {
5+
public enum TimeConfig {
76
case currentTime
87
case mockTime(Date)
98

@@ -17,25 +16,25 @@ class MockTimeProvider {
1716
}
1817
}
1918

20-
var timeConfig: TimeConfig
19+
public var timeConfig: TimeConfig
2120

22-
init(_ timeConfig: TimeConfig) {
21+
public init(_ timeConfig: TimeConfig) {
2322
self.timeConfig = timeConfig
2423
}
2524
}
2625

2726
extension MockTimeProvider: Equatable {
28-
static func == (_: MockTimeProvider, _: MockTimeProvider) -> Bool {
27+
public static func == (_: MockTimeProvider, _: MockTimeProvider) -> Bool {
2928
true
3029
}
3130
}
3231

3332
extension MockTimeProvider: TimeProvider {
34-
var presentTime: Date {
33+
public var presentTime: Date {
3534
timeConfig.date
3635
}
3736

38-
func timeSince(_ date: Date) -> TimeInterval {
37+
public func timeSince(_ date: Date) -> TimeInterval {
3938
presentTime.timeIntervalSince(date)
4039
}
4140
}

AuthenticatorShared/Core/Vault/Services/TOTP/TimeProvider.swift renamed to BitwardenKit/Core/Platform/Services/TimeProvider.swift

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import Foundation
77
/// For regular builds, the `TimeProvider` should use the current time as `presentTime`.
88
/// When testing, this protocol allows the current time to be mocked with any `Date`.
99
///
10-
protocol TimeProvider: AnyObject {
10+
public protocol TimeProvider: AnyObject {
1111
/// The present time expressed as a `Date`, according to the provider.
1212
///
1313
var presentTime: Date { get }
@@ -24,12 +24,14 @@ protocol TimeProvider: AnyObject {
2424

2525
/// A `TimeProvider` that returns the current time whenever `presentTime` is read.
2626
///
27-
class CurrentTime: TimeProvider {
28-
var presentTime: Date {
27+
public class CurrentTime: TimeProvider {
28+
public var presentTime: Date {
2929
.now
3030
}
3131

32-
func timeSince(_ date: Date) -> TimeInterval {
32+
public func timeSince(_ date: Date) -> TimeInterval {
3333
presentTime.timeIntervalSince(date)
3434
}
35+
36+
public init() {}
3537
}

AuthenticatorShared/UI/Platform/Application/Utilities/PreviewTimeProvider.swift renamed to BitwardenKit/UI/Platform/Application/Utilities/PreviewTimeProvider.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,23 @@ import SwiftUI
33
#if DEBUG
44
/// A `TimeProvider` for previews.
55
///
6-
class PreviewTimeProvider: TimeProvider {
6+
public class PreviewTimeProvider: TimeProvider {
77
/// A fixed date to use for previews.
8-
var fixedDate: Date
8+
public var fixedDate: Date
99

10-
var presentTime: Date {
10+
public var presentTime: Date {
1111
fixedDate
1212
}
1313

14-
init(
14+
public init(
1515
fixedDate: Date = .init(
1616
timeIntervalSinceReferenceDate: 1_695_000_011
1717
)
1818
) {
1919
self.fixedDate = fixedDate
2020
}
2121

22-
func timeSince(_ date: Date) -> TimeInterval {
22+
public func timeSince(_ date: Date) -> TimeInterval {
2323
presentTime.timeIntervalSince(date)
2424
}
2525
}

BitwardenShared/Core/Platform/Services/TestHelpers/MockStateService.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import BitwardenKit
2+
import BitwardenKitMocks
23
import Combine
34
import Foundation
45

BitwardenShared/Core/Tools/Utilities/ShareExtensionHelper.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import BitwardenKit
12
import Foundation
23
import OSLog
34
import UIKit

BitwardenShared/Core/Tools/Utilities/ShareExtensionHelperTests.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import BitwardenKitMocks
12
import UniformTypeIdentifiers
23
import XCTest
34

BitwardenShared/Core/Vault/Extensions/BitwardenSdk+Vault.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// swiftlint:disable:this file_name
22
// swiftlint:disable file_length
33

4+
import BitwardenKit
45
import BitwardenSdk
56

67
// MARK: - DataMappingError

BitwardenShared/Core/Vault/Extensions/BitwardenSdkVaultTests.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
// swiftlint:disable:this file_name
22

3+
import BitwardenKitMocks
34
import BitwardenSdk
45
import XCTest
56

BitwardenShared/Core/Vault/Models/Domain/Fixtures/VaultListItem+Fixtures.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import BitwardenKit
12
import BitwardenSdk
23
import Foundation
34

BitwardenShared/Core/Vault/Repositories/TestHelpers/MockVaultRepository.swift

Lines changed: 2 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import BitwardenKit
2+
import BitwardenKitMocks
13
import BitwardenSdk
24
import Combine
35
import Foundation
@@ -330,43 +332,3 @@ class MockVaultRepository: VaultRepository {
330332
vaultListGroupSubject.eraseToAnyPublisher().values
331333
}
332334
}
333-
334-
// MARK: - MockTimeProvider
335-
336-
class MockTimeProvider {
337-
enum TimeConfig {
338-
case currentTime
339-
case mockTime(Date)
340-
341-
var date: Date {
342-
switch self {
343-
case .currentTime:
344-
return .now
345-
case let .mockTime(fixedDate):
346-
return fixedDate
347-
}
348-
}
349-
}
350-
351-
var timeConfig: TimeConfig
352-
353-
init(_ timeConfig: TimeConfig) {
354-
self.timeConfig = timeConfig
355-
}
356-
}
357-
358-
extension MockTimeProvider: Equatable {
359-
static func == (_: MockTimeProvider, _: MockTimeProvider) -> Bool {
360-
true
361-
}
362-
}
363-
364-
extension MockTimeProvider: TimeProvider {
365-
var presentTime: Date {
366-
timeConfig.date
367-
}
368-
369-
func timeSince(_ date: Date) -> TimeInterval {
370-
presentTime.timeIntervalSince(date)
371-
}
372-
}

BitwardenShared/Core/Vault/Services/SyncServiceTests.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import BitwardenKit
2+
import BitwardenKitMocks
23
import TestHelpers
34
import XCTest
45

BitwardenShared/Core/Vault/Services/TOTP/TOTPExpirationCalculator.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import BitwardenKit
12
import Foundation
23
import OSLog
34

BitwardenShared/Core/Vault/Services/TOTP/TOTPExpirationCalculatorTests.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import BitwardenKitMocks
12
import XCTest
23

34
@testable import BitwardenShared

BitwardenShared/Core/Vault/Services/TOTP/TimeProvider.swift

Lines changed: 0 additions & 35 deletions
This file was deleted.

BitwardenShared/Core/Vault/Services/TestHelpers/MockVaultClientService.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import BitwardenKitMocks
12
import BitwardenSdk
23
import Foundation
34

BitwardenShared/Core/Vault/Services/TestHelpers/MockVaultTimeoutService.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import BitwardenKitMocks
12
import Combine
23
import Foundation
34

BitwardenShared/UI/Platform/Settings/Settings/About/FlightRecorderLogs/FlightRecorderLogsView.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import BitwardenKit
12
import SwiftUI
23

34
// MARK: - FlightRecorderLogsView

BitwardenShared/UI/Platform/Settings/Settings/About/FlightRecorderLogs/FlightRecorderLogsViewTests.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import BitwardenKit
2+
import BitwardenKitMocks
13
import SnapshotTesting
24
import XCTest
35

BitwardenShared/UI/Vault/Utilities/TOTPExpirationManager.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import BitwardenKit
12
import Foundation
23

34
/// A protocol to manage TOTP code expirations for `VaultListItem`s and batch refresh calls.

BitwardenShared/UI/Vault/Utilities/TOTPExpirationManagerFactory.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import BitwardenKit
2+
13
/// Protocol to create `TOTPExpirationManager`.
24
protocol TOTPExpirationManagerFactory {
35
/// Creates a `TOTPExpirationManager` passing the `onExpiration` closure.

BitwardenShared/UI/Vault/Utilities/TOTPExpirationManagerFactoryTests.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import BitwardenKitMocks
12
import XCTest
23

34
@testable import BitwardenShared

BitwardenShared/UI/Vault/Vault/AutofillList/VaultAutofillListView.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import BitwardenKit
12
import BitwardenSdk
23
import SwiftUI
34

BitwardenShared/UI/Vault/Vault/AutofillList/VaultAutofillListViewTests.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import BitwardenKitMocks
12
import SnapshotTesting
23
import XCTest
34

BitwardenShared/UI/Vault/Vault/VaultGroup/VaultGroupView.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import BitwardenKit
12
import SwiftUI
23

34
// MARK: - VaultGroupView

BitwardenShared/UI/Vault/Vault/VaultGroup/VaultGroupViewTests.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import BitwardenKitMocks
12
import SnapshotTesting
23
import ViewInspector
34
import XCTest

BitwardenShared/UI/Vault/Vault/VaultItemSelection/VaultItemSelectionView.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import BitwardenKit
12
import BitwardenSdk
23
import SwiftUI
34

BitwardenShared/UI/Vault/Vault/VaultList/VaultListView.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
// swiftlint:disable file_length
22

3+
import BitwardenKit
34
import BitwardenSdk
45
import SwiftUI
56

BitwardenShared/UI/Vault/Vault/VaultList/VaultListViewTests.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import BitwardenKitMocks
12
import BitwardenSdk
23
import SnapshotTesting
34
import SwiftUI

BitwardenShared/UI/Vault/VaultItem/ViewItem/ViewItemDetailsView.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import BitwardenKit
12
import BitwardenSdk
23
import SwiftUI
34

0 commit comments

Comments
 (0)