Skip to content

Commit d176388

Browse files
Delete application password upon removing default store.
1 parent b79972d commit d176388

File tree

2 files changed

+54
-1
lines changed

2 files changed

+54
-1
lines changed

WooCommerce/Classes/Yosemite/DefaultStoresManager.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ class DefaultStoresManager: StoresManager {
157157
/// Prepares for changing the selected store and remains Authenticated.
158158
///
159159
func removeDefaultStore() {
160+
sessionManager.deleteApplicationPassword()
160161
ServiceLocator.analytics.refreshUserData()
161162
ZendeskProvider.shared.reset()
162163
ServiceLocator.pushNotesManager.unregisterForRemoteNotifications()

WooCommerce/WooCommerceTests/Yosemite/StoresManagerTests.swift

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import Combine
33
import XCTest
44
import Networking
55
@testable import WooCommerce
6-
6+
import Yosemite
77

88
/// StoresManager Unit Tests
99
///
@@ -252,6 +252,18 @@ final class StoresManagerTests: XCTestCase {
252252
// Then
253253
XCTAssertTrue(mockProductImageUploader.resetWasCalled)
254254
}
255+
256+
func test_removing_default_store_invokes_delete_application_password() {
257+
// Given
258+
let mockSessionManager = MockSessionManager()
259+
let sut = DefaultStoresManager(sessionManager: mockSessionManager)
260+
261+
// When
262+
sut.removeDefaultStore()
263+
264+
// Then
265+
XCTAssertTrue(mockSessionManager.deleteApplicationPasswordInvoked)
266+
}
255267
}
256268

257269

@@ -274,3 +286,43 @@ final class MockAuthenticationManager: AuthenticationManager {
274286
return UIViewController()
275287
}
276288
}
289+
290+
final class MockSessionManager: SessionManagerProtocol {
291+
private(set) var deleteApplicationPasswordInvoked: Bool = false
292+
293+
var defaultAccount: Yosemite.Account? = nil
294+
295+
var defaultAccountID: Int64? = nil
296+
297+
var defaultSite: Yosemite.Site? = nil
298+
299+
let site = PassthroughSubject<Yosemite.Site?, Never>()
300+
301+
var defaultSitePublisher: AnyPublisher<Yosemite.Site?, Never> {
302+
site.eraseToAnyPublisher()
303+
}
304+
305+
var defaultStoreID: Int64? = nil
306+
307+
var defaultStoreURL: String? = nil
308+
309+
var defaultRoles: [Yosemite.User.Role] = []
310+
311+
let storeID = PassthroughSubject<Int64?, Never>()
312+
313+
var defaultStoreIDPublisher: AnyPublisher<Int64?, Never> {
314+
storeID.eraseToAnyPublisher()
315+
}
316+
317+
var anonymousUserID: String? = nil
318+
319+
var defaultCredentials: Yosemite.Credentials? = nil
320+
321+
func reset() {
322+
// Do nothing
323+
}
324+
325+
func deleteApplicationPassword() {
326+
deleteApplicationPasswordInvoked = true
327+
}
328+
}

0 commit comments

Comments
 (0)