Skip to content

Commit cb09853

Browse files
committed
Update tests to use NetworkError, not DotcomError
1 parent 78cb337 commit cb09853

File tree

9 files changed

+63
-60
lines changed

9 files changed

+63
-60
lines changed

Modules/Sources/Networking/Remote/WordPressThemeRemote.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@ public enum InstallThemeError: Error {
7070
case themeAlreadyInstalled
7171

7272
init?(_ error: Error) {
73-
guard let dotcomError = error as? DotcomError,
74-
case let .unknown(code, _) = dotcomError else {
73+
guard let networkError = error as? NetworkError,
74+
let code = networkError.apiErrorCode else {
7575
return nil
7676
}
7777

Modules/Tests/NetworkingTests/Remote/CommentRemoteTests.swift

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -142,12 +142,13 @@ class CommentRemoteTests: XCTestCase {
142142

143143
network.simulateResponse(requestUrlSuffix: "sites/\(sampleSiteID)/comments/\(sampleCommentID)", filename: "generic_error")
144144
remote.moderateComment(siteID: sampleSiteID, commentID: sampleCommentID, status: .untrash) { (updatedStatus, error) in
145-
guard let error = error as? DotcomError else {
146-
XCTFail()
145+
XCTAssertNotNil(error, "Expected an error but got nil")
146+
guard let networkError = error as? NetworkError else {
147+
XCTFail("Expected NetworkError but got \(type(of: error)): \(String(describing: error))")
147148
return
148149
}
150+
XCTAssertEqual(networkError.apiErrorCode, "unauthorized", "Expected apiErrorCode 'unauthorized' but got '\(networkError.apiErrorCode ?? "nil")'")
149151

150-
XCTAssert(error == .unauthorized)
151152
XCTAssertNil(updatedStatus)
152153

153154
expectation.fulfill()

Modules/Tests/NetworkingTests/Remote/NotificationsRemoteTests.swift

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -90,12 +90,12 @@ final class NotificationsRemoteTests: XCTestCase {
9090
network.simulateResponse(requestUrlSuffix: "notifications/seen", filename: "generic_error")
9191

9292
remote.updateLastSeen("") { error in
93-
guard let error = error as? DotcomError else {
94-
XCTFail()
93+
guard let error = error as? NetworkError else {
94+
XCTFail("Expected NetworkError but got \(type(of: error)): \(String(describing: error))")
9595
return
9696
}
97-
98-
XCTAssert(error == .unauthorized)
97+
XCTAssertEqual(error.apiErrorCode, "unauthorized", "Expected apiErrorCode 'unauthorized' but got '\(error.apiErrorCode ?? "nil")'")
98+
9999
expectation.fulfill()
100100
}
101101

@@ -127,13 +127,13 @@ final class NotificationsRemoteTests: XCTestCase {
127127
network.simulateResponse(requestUrlSuffix: "notifications/read", filename: "generic_error")
128128

129129
remote.updateReadStatus(noteIDs: [], read: true) { error in
130-
guard let error = error as? DotcomError else {
131-
XCTFail()
130+
guard let error = error as? NetworkError else {
131+
XCTFail("Expected NetworkError but got \(type(of: error)): \(String(describing: error))")
132132
return
133133
}
134134

135-
XCTAssert(error == .unauthorized)
136-
135+
XCTAssertEqual(error.apiErrorCode, "unauthorized", "Expected apiErrorCode 'unauthorized' but got '\(error.apiErrorCode ?? "nil")'")
136+
137137
expectation.fulfill()
138138
}
139139

Modules/Tests/NetworkingTests/Remote/ProductsReportsRemoteTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,6 @@ class ProductsReportsRemoteTests: XCTestCase {
5656
earliestDateToInclude: Date(),
5757
latestDateToInclude: Date(),
5858
quantity: 5)
59-
}, errorAssert: { ($0 as? DotcomError) == .unauthorized })
59+
}, errorAssert: { ($0 as? NetworkError)?.apiErrorCode == "unauthorized" })
6060
}
6161
}

Modules/Tests/NetworkingTests/Remote/ReportRemoteTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,6 @@ class ReportRemoteTests: XCTestCase {
6060

6161
//Then
6262
XCTAssertTrue(result.isFailure)
63-
XCTAssertEqual(result.failure as? DotcomError, .unauthorized)
63+
XCTAssertEqual((result.failure as? NetworkError)?.apiErrorCode, "unauthorized")
6464
}
6565
}

Modules/Tests/NetworkingTests/Remote/ShipmentsRemoteTests.swift

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -88,13 +88,13 @@ final class ShipmentsRemoteTests: XCTestCase {
8888
network.simulateResponse(requestUrlSuffix: "orders/\(sampleOrderID)/shipment-trackings/", filename: "shipment_tracking_plugin_not_active")
8989
remote.loadShipmentTrackings(for: sampleSiteID, orderID: sampleOrderID, completion: { (shipmentTrackings, error) in
9090
XCTAssertNil(shipmentTrackings)
91-
XCTAssertNotNil(error)
91+
XCTAssertNotNil(error, "Expected an error but got nil")
9292

93-
guard let dotComError = error as? DotcomError else {
94-
XCTFail()
93+
guard let networkError = error as? NetworkError else {
94+
XCTFail("Expected NetworkError but got \(type(of: error)): \(String(describing: error))")
9595
return
9696
}
97-
XCTAssertTrue(dotComError == .noRestRoute)
97+
XCTAssertEqual(networkError.apiErrorCode, "rest_no_route", "Expected apiErrorCode 'rest_no_route' but got '\(networkError.apiErrorCode ?? "nil")'")
9898
expectation.fulfill()
9999
})
100100

@@ -182,13 +182,14 @@ final class ShipmentsRemoteTests: XCTestCase {
182182
dateShipped: "2019-04-01",
183183
trackingNumber: "1111") { (shipmentTracking, error) in
184184
XCTAssertNil(shipmentTracking)
185-
XCTAssertNotNil(error)
185+
XCTAssertNotNil(error, "Expected an error but got nil")
186186

187-
guard let dotComError = error as? DotcomError else {
188-
XCTFail()
187+
guard let networkError = error as? NetworkError else {
188+
XCTFail("Expected NetworkError but got \(type(of: error)): \(String(describing: error))")
189189
return
190190
}
191-
XCTAssertTrue(dotComError == .noRestRoute)
191+
XCTAssertEqual(networkError.apiErrorCode, "rest_no_route", "Expected apiErrorCode 'rest_no_route' but got '\(networkError.apiErrorCode ?? "nil")'")
192+
192193
expectation.fulfill()
193194
}
194195

@@ -280,13 +281,12 @@ final class ShipmentsRemoteTests: XCTestCase {
280281
trackingURL: "https://somewhere.online.net.com?q=%1$s",
281282
dateShipped: "1234") { (shipmentTracking, error) in
282283
XCTAssertNil(shipmentTracking)
283-
XCTAssertNotNil(error)
284+
XCTAssertNotNil(error, "Expected an error but got nil")
284285

285-
guard let dotComError = error as? DotcomError else {
286-
XCTFail()
287-
return
286+
guard let networkError = error as? NetworkError else {
287+
return XCTFail("Expected NetworkError but got \(type(of: error)): \(String(describing: error))")
288288
}
289-
XCTAssertTrue(dotComError == .noRestRoute)
289+
XCTAssertEqual(networkError.apiErrorCode, "rest_no_route", "Expected apiErrorCode 'rest_no_route' but got '\(networkError.apiErrorCode ?? "nil")'")
290290
expectation.fulfill()
291291
}
292292

@@ -360,13 +360,14 @@ final class ShipmentsRemoteTests: XCTestCase {
360360
network.simulateResponse(requestUrlSuffix: "orders/\(sampleOrderID)/shipment-trackings/\(trackingID)", filename: "shipment_tracking_plugin_not_active")
361361
remote.deleteShipmentTracking(for: sampleSiteID, orderID: sampleOrderID, trackingID: trackingID) { (shipmentTracking, error) in
362362
XCTAssertNil(shipmentTracking)
363-
XCTAssertNotNil(error)
363+
XCTAssertNotNil(error, "Expected an error but got nil")
364364

365-
guard let dotComError = error as? DotcomError else {
366-
XCTFail()
365+
guard let networkError = error as? NetworkError else {
366+
XCTFail("Expected NetworkError but got \(type(of: error)): \(String(describing: error))")
367367
return
368368
}
369-
XCTAssertTrue(dotComError == .noRestRoute)
369+
XCTAssertEqual(networkError.apiErrorCode, "rest_no_route", "Expected apiErrorCode 'rest_no_route' but got '\(networkError.apiErrorCode ?? "nil")'")
370+
370371
expectation.fulfill()
371372
}
372373

@@ -435,13 +436,14 @@ final class ShipmentsRemoteTests: XCTestCase {
435436
network.simulateResponse(requestUrlSuffix: "orders/\(sampleOrderID)/shipment-trackings/providers", filename: "shipment_tracking_plugin_not_active")
436437
remote.loadShipmentTrackingProviderGroups(for: sampleSiteID, orderID: sampleOrderID) { (shipmentTrackingGroups, error) in
437438
XCTAssertNil(shipmentTrackingGroups)
438-
XCTAssertNotNil(error)
439+
XCTAssertNotNil(error, "Expected an error but got nil")
439440

440-
guard let dotComError = error as? DotcomError else {
441-
XCTFail()
441+
guard let networkError = error as? NetworkError else {
442+
XCTFail("Expected NetworkError but got \(type(of: error)): \(String(describing: error))")
442443
return
443444
}
444-
XCTAssertTrue(dotComError == .noRestRoute)
445+
XCTAssertEqual(networkError.apiErrorCode, "rest_no_route", "Expected apiErrorCode 'rest_no_route' but got '\(networkError.apiErrorCode ?? "nil")'")
446+
445447
expectation.fulfill()
446448
}
447449

Modules/Tests/NetworkingTests/Remote/ShippingLabelRemoteTests.swift

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -99,11 +99,9 @@ final class ShippingLabelRemoteTests: XCTestCase {
9999
}
100100

101101
// Then
102-
let expectedError = DotcomError
103-
.unknown(code: "wcc_server_error_response",
104-
message: "Error: The WooCommerce Shipping & Tax server returned: Bad Request Unable to request refund. " +
105-
"The parcel has been shipped. ( 400 )")
106-
XCTAssertEqual(result.failure as? DotcomError, expectedError)
102+
let networkError = result.failure as? NetworkError
103+
XCTAssertEqual(networkError?.apiErrorCode, "wcc_server_error_response")
104+
XCTAssertEqual(networkError?.apiErrorMessage, "Error: The WooCommerce Shipping & Tax server returned: Bad Request Unable to request refund. The parcel has been shipped. ( 400 )")
107105
}
108106

109107
func test_shippingAddressValidation_returns_address_on_success() throws {
@@ -276,10 +274,9 @@ final class ShippingLabelRemoteTests: XCTestCase {
276274
}
277275

278276
// Then
279-
let expectedError = DotcomError
280-
.unknown(code: "duplicate_custom_package_names_of_existing_packages",
281-
message: "At least one of the new custom packages has the same name as existing packages.")
282-
XCTAssertEqual(result.failure as? DotcomError, expectedError)
277+
let networkError = result.failure as? NetworkError
278+
XCTAssertEqual(networkError?.apiErrorCode, "duplicate_custom_package_names_of_existing_packages")
279+
XCTAssertEqual(networkError?.apiErrorMessage, "At least one of the new custom packages has the same name as existing packages.")
283280
}
284281

285282
func test_createPackage_returns_missingPackage_error_with_no_packages() throws {

Modules/Tests/NetworkingTests/Remote/SiteRemoteTests.swift

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,10 @@ final class SiteRemoteTests: XCTestCase {
5050
await assertThrowsError({
5151
// When
5252
_ = try await remote.createSite(name: "Wapuu swags", flow: .onboarding(domain: "wapuu.store"))
53-
}, errorAssert: { ($0 as? DotcomError) == .unknown(code: "blog_name_only_lowercase_letters_and_numbers",
54-
message: "Site names can only contain lowercase letters (a-z) and numbers.")
53+
}, errorAssert: {
54+
guard let networkError = $0 as? NetworkError else { return false }
55+
return networkError.apiErrorCode == "blog_name_only_lowercase_letters_and_numbers" &&
56+
networkError.apiErrorMessage == "Site names can only contain lowercase letters (a-z) and numbers."
5557
})
5658
}
5759

@@ -128,8 +130,9 @@ final class SiteRemoteTests: XCTestCase {
128130
// When
129131
try await remote.enableFreeTrial(siteID: 134)
130132
}, errorAssert: { error in
131-
(error as? DotcomError) == .unknown(code: "no-upgrades-permitted",
132-
message: "You cannot add WordPress.com eCommerce Trial when you already have paid upgrades")
133+
guard let networkError = error as? NetworkError else { return false }
134+
return networkError.apiErrorCode == "no-upgrades-permitted" &&
135+
networkError.apiErrorMessage == "You cannot add WordPress.com eCommerce Trial when you already have paid upgrades"
133136
})
134137
}
135138

@@ -290,7 +293,7 @@ final class SiteRemoteTests: XCTestCase {
290293
category: "clothing_and_accessories",
291294
countryCode: "US"))
292295
}, errorAssert: { error in
293-
(error as? DotcomError) == .unauthorized
296+
(error as? NetworkError)?.apiErrorCode == "unauthorized"
294297
})
295298
}
296299

@@ -318,10 +321,11 @@ final class SiteRemoteTests: XCTestCase {
318321
await assertThrowsError({
319322
// When
320323
_ = try await remote.loadSite(domain: domain)
321-
}, errorAssert: { ($0 as? DotcomError) == .unknown(
322-
code: "parse_error",
323-
message: "The Jetpack site is inaccessible or returned an error: parse error (local). not well formed [-32710]"
324-
)})
324+
}, errorAssert: {
325+
guard let networkError = $0 as? NetworkError else { return false }
326+
return networkError.apiErrorCode == "parse_error" &&
327+
networkError.apiErrorMessage == "The Jetpack site is inaccessible or returned an error: parse error (local). not well formed [-32710]"
328+
})
325329
}
326330

327331
// MARK: - `finalizeJetpackConnection`

Modules/Tests/NetworkingTests/Remote/WooShippingRemoteTests.swift

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,9 @@ final class WooShippingRemoteTests: XCTestCase {
102102
}
103103

104104
// Then
105-
let expectedError = DotcomError
106-
.unknown(code: "duplicate_custom_package_names_of_existing_packages",
107-
message: "At least one of the new custom packages has the same name as existing packages.")
108-
XCTAssertEqual(result.failure as? DotcomError, expectedError)
105+
let networkError = result.failure as? NetworkError
106+
XCTAssertEqual(networkError?.apiErrorCode, "duplicate_custom_package_names_of_existing_packages")
107+
XCTAssertEqual(networkError?.apiErrorMessage, "At least one of the new custom packages has the same name as existing packages.")
109108
}
110109

111110
func test_createPackage_returns_missingPackage_error_with_no_packages() throws {
@@ -163,8 +162,8 @@ final class WooShippingRemoteTests: XCTestCase {
163162
}
164163

165164
// Then
166-
let expectedError = DotcomError.unauthorized
167-
XCTAssertEqual(result.failure as? DotcomError, expectedError)
165+
let networkError = result.failure as? NetworkError
166+
XCTAssertEqual(networkError?.apiErrorCode, "unauthorized")
168167
}
169168

170169
func test_loadLabelRates_sends_correct_params_and_parses_success_response() throws {

0 commit comments

Comments
 (0)