Skip to content
This repository was archived by the owner on Sep 15, 2025. It is now read-only.

Commit d84d68f

Browse files
committed
Add unit tests for getting zendesk metadata
1 parent f51e13d commit d84d68f

File tree

3 files changed

+45
-0
lines changed

3 files changed

+45
-0
lines changed

WordPressKit.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,7 @@
188188
4AE278482B2FBF1100E4D9B1 /* HTTPBodyEncodingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4AE278472B2FBF1100E4D9B1 /* HTTPBodyEncodingTests.swift */; };
189189
4AE2784A2B2FC6C600E4D9B1 /* HTTPHeaderValueParserTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4AE278492B2FC6C600E4D9B1 /* HTTPHeaderValueParserTests.swift */; };
190190
4AE7E36B2B9A995500C8CED5 /* AnnouncementServiceRemoteTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4AE7E36A2B9A995500C8CED5 /* AnnouncementServiceRemoteTests.swift */; };
191+
4AE7E36D2B9A9BC400C8CED5 /* site-zendesk-metadata-success.json in Resources */ = {isa = PBXBuildFile; fileRef = 4AE7E36C2B9A9BC400C8CED5 /* site-zendesk-metadata-success.json */; };
191192
57BCD3D426209D9500292CB3 /* AppTransportSecuritySettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57BCD3D326209D9500292CB3 /* AppTransportSecuritySettings.swift */; };
192193
730E869F21E44EFD00753E1A /* WordPressComServiceRemote+SiteVerticals.swift in Sources */ = {isa = PBXBuildFile; fileRef = 730E869E21E44EFD00753E1A /* WordPressComServiceRemote+SiteVerticals.swift */; };
193194
731BA83621DECD61000FDFCD /* SiteCreationRequestEncodingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 731BA83521DECD61000FDFCD /* SiteCreationRequestEncodingTests.swift */; };
@@ -910,6 +911,7 @@
910911
4AE278472B2FBF1100E4D9B1 /* HTTPBodyEncodingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HTTPBodyEncodingTests.swift; sourceTree = "<group>"; };
911912
4AE278492B2FC6C600E4D9B1 /* HTTPHeaderValueParserTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HTTPHeaderValueParserTests.swift; sourceTree = "<group>"; };
912913
4AE7E36A2B9A995500C8CED5 /* AnnouncementServiceRemoteTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnnouncementServiceRemoteTests.swift; sourceTree = "<group>"; };
914+
4AE7E36C2B9A9BC400C8CED5 /* site-zendesk-metadata-success.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = "site-zendesk-metadata-success.json"; sourceTree = "<group>"; };
913915
57BCD3D326209D9500292CB3 /* AppTransportSecuritySettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppTransportSecuritySettings.swift; sourceTree = "<group>"; };
914916
6C2A33D76FD1052D6F30466D /* Pods-WordPressKit.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressKit.debug.xcconfig"; path = "Pods/Target Support Files/Pods-WordPressKit/Pods-WordPressKit.debug.xcconfig"; sourceTree = "<group>"; };
915917
6F2E0CC4FA01B5475A378DA2 /* Pods-WordPressKitTests.release-alpha.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressKitTests.release-alpha.xcconfig"; path = "Pods/Target Support Files/Pods-WordPressKitTests/Pods-WordPressKitTests.release-alpha.xcconfig"; sourceTree = "<group>"; };
@@ -2412,6 +2414,7 @@
24122414
74D67F2C1F15C3740010C5ED /* site-viewers-delete-bad-json.json */,
24132415
74D67F2D1F15C3740010C5ED /* site-viewers-delete-failure.json */,
24142416
74D67F2E1F15C3740010C5ED /* site-viewers-delete-success.json */,
2417+
4AE7E36C2B9A9BC400C8CED5 /* site-zendesk-metadata-success.json */,
24152418
E6B0461125E5B6F500DF6F4F /* sites-invites-links-disable-empty.json */,
24162419
E6B0460F25E5B6F500DF6F4F /* sites-invites-links-disable.json */,
24172420
E6B0461025E5B6F500DF6F4F /* sites-invites-links-generate.json */,
@@ -3096,6 +3099,7 @@
30963099
C738CAF3286226D6001BE107 /* qrlogin-validate-400.json in Resources */,
30973100
93BD27651EE73442002BB00B /* me-sites-visibility-success.json in Resources */,
30983101
404057D0221C46790060250C /* stats-videos-data.json in Resources */,
3102+
4AE7E36D2B9A9BC400C8CED5 /* site-zendesk-metadata-success.json in Resources */,
30993103
E1787DB0200E564B004CB3AF /* timezones.json in Resources */,
31003104
93BD275E1EE73442002BB00B /* me-bad-json-failure.json in Resources */,
31013105
FFE247AF20C891E6002DF3A2 /* WordPressComOAuthWrongPasswordFail.json in Resources */,
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"sites": [
3+
{ "ID": 123, "zendesk_site_meta": { "plan": "free", "addon": [] } }
4+
]
5+
}

WordPressKitTests/PlanServiceRemoteTests.swift

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ class PlanServiceRemoteTests: RemoteTestCase, RESTTestable {
1414
let getPlansBadJsonFailureMockFilename_ApiVersion1_3 = "site-plans-v3-bad-json-failure.json"
1515
let getWpcomPlansSuccessMockFilename = "plans-mobile-success.json"
1616
let getPlansMeSitesSuccessMockFilename = "plans-me-sites-success.json"
17+
let getZendeskMetadataSuccessMockFilename = "site-zendesk-metadata-success.json"
1718

1819
// MARK: - Properties
1920

@@ -294,4 +295,39 @@ class PlanServiceRemoteTests: RemoteTestCase, RESTTestable {
294295
XCTAssertEqual(result2.siteID, 2)
295296
XCTAssertFalse(result2.plan.name.contains(jetpackFlag))
296297
}
298+
299+
// MARK: - Zendesk
300+
301+
func testZendeskMetadata() throws {
302+
stubRemoteResponse("rest/v1.1/me/sites?fields=ID%2C%20zendesk_site_meta", filename: getZendeskMetadataSuccessMockFilename, contentType: .ApplicationJSON, status: 200)
303+
304+
var result: Result<ZendeskMetadata, Error>? = nil
305+
let completed = expectation(description: "API call completed")
306+
remote.getZendeskMetadata(siteID: 123, completion: {
307+
result = $0
308+
completed.fulfill()
309+
})
310+
wait(for: [completed], timeout: 0.3)
311+
312+
try XCTAssertEqual(XCTUnwrap(result).get().plan, "free")
313+
}
314+
315+
func testZendeskMetadataSiteNotFound() throws {
316+
stubRemoteResponse("rest/v1.1/me/sites?fields=ID%2C%20zendesk_site_meta", filename: getZendeskMetadataSuccessMockFilename, contentType: .ApplicationJSON, status: 200)
317+
318+
var result: Result<ZendeskMetadata, Error>? = nil
319+
let completed = expectation(description: "API call completed")
320+
remote.getZendeskMetadata(siteID: 9999, completion: {
321+
result = $0
322+
completed.fulfill()
323+
})
324+
wait(for: [completed], timeout: 0.3)
325+
326+
switch try XCTUnwrap(result) {
327+
case .failure(PlanServiceRemoteError.noMetadata):
328+
XCTAssertTrue(true)
329+
default:
330+
XCTFail("Unexpected result: \(result)")
331+
}
332+
}
297333
}

0 commit comments

Comments
 (0)