Skip to content

Commit 0db612e

Browse files
author
Mihai Arosoaie
committed
add tests for new user API
1 parent 6403d4f commit 0db612e

File tree

1 file changed

+51
-7
lines changed

1 file changed

+51
-7
lines changed

Tests/OctoKitTests/UserTests.swift

Lines changed: 51 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import XCTest
44
class UserTests: XCTestCase {
55
// MARK: Actual Request tests
66

7-
func testGetUser() {
7+
func testGetUserByName() {
88
let session = OctoKitURLTestSession(expectedURL: "https://api.github.com/users/mietzmithut", expectedHTTPMethod: "GET", jsonFile: "user_mietzmithut", statusCode: 200)
99
let username = "mietzmithut"
1010
let task = Octokit(session: session).user(name: username) { response in
@@ -20,7 +20,7 @@ class UserTests: XCTestCase {
2020
XCTAssertTrue(session.wasCalled)
2121
}
2222

23-
func testFailingToGetUser() {
23+
func testFailingToGetUserByName() {
2424
let username = "notexisting"
2525
let session = OctoKitURLTestSession(expectedURL: "https://api.github.com/users/notexisting", expectedHTTPMethod: "GET", jsonFile: nil, statusCode: 404)
2626
let task = Octokit(session: session).user(name: username) { response in
@@ -38,11 +38,55 @@ class UserTests: XCTestCase {
3838

3939
#if compiler(>=5.5.2) && canImport(_Concurrency)
4040
@available(macOS 12.0, iOS 15.0, tvOS 15.0, watchOS 8.0, *)
41-
func testGetUserAsync() async throws {
42-
let session = OctoKitURLTestSession(expectedURL: "https://api.github.com/users/mietzmithut", expectedHTTPMethod: "GET", jsonFile: "user_mietzmithut", statusCode: 200)
43-
let username = "mietzmithut"
44-
let user = try await Octokit(session: session).user(name: username)
45-
XCTAssertEqual(user.login, username)
41+
func testGetUserByNameAsync() async throws {
42+
let expectedUserId = 4672699
43+
let session = OctoKitURLTestSession(expectedURL: "https://api.github.com/user/\(expectedUserId)", expectedHTTPMethod: "GET", jsonFile: "user_mietzmithut", statusCode: 200)
44+
let user = try await Octokit(session: session).user(id: expectedUserId)
45+
XCTAssertEqual(user.id, expectedUserId)
46+
XCTAssertNotNil(user.createdAt)
47+
XCTAssertTrue(session.wasCalled)
48+
}
49+
#endif
50+
51+
func testGetUserById() {
52+
let expectedUserId = 4672699
53+
let session = OctoKitURLTestSession(expectedURL: "https://api.github.com/user/\(expectedUserId)", expectedHTTPMethod: "GET", jsonFile: "user_mietzmithut", statusCode: 200)
54+
let task = Octokit(session: session).user(id: expectedUserId) { response in
55+
switch response {
56+
case let .success(user):
57+
XCTAssertEqual(user.id, expectedUserId)
58+
XCTAssertNotNil(user.createdAt)
59+
case .failure:
60+
XCTFail("should get a user")
61+
}
62+
}
63+
XCTAssertNotNil(task)
64+
XCTAssertTrue(session.wasCalled)
65+
}
66+
67+
func testFailingToGetUserById() {
68+
let userId = 123456
69+
let session = OctoKitURLTestSession(expectedURL: "https://api.github.com/user/\(userId)", expectedHTTPMethod: "GET", jsonFile: nil, statusCode: 404)
70+
let task = Octokit(session: session).user(id: userId) { response in
71+
switch response {
72+
case .success:
73+
XCTAssert(false, "should not retrieve user")
74+
case let .failure(error as NSError):
75+
XCTAssertEqual(error.code, 404)
76+
XCTAssertEqual(error.domain, OctoKitErrorDomain)
77+
}
78+
}
79+
XCTAssertNotNil(task)
80+
XCTAssertTrue(session.wasCalled)
81+
}
82+
83+
#if compiler(>=5.5.2) && canImport(_Concurrency)
84+
@available(macOS 12.0, iOS 15.0, tvOS 15.0, watchOS 8.0, *)
85+
func testGetUserByIdAsync() async throws {
86+
let expectedUserId = 4672699
87+
let session = OctoKitURLTestSession(expectedURL: "https://api.github.com/user/\(expectedUserId)", expectedHTTPMethod: "GET", jsonFile: "user_mietzmithut", statusCode: 200)
88+
let user = try await Octokit(session: session).user(id: expectedUserId)
89+
XCTAssertEqual(user.id, expectedUserId)
4690
XCTAssertNotNil(user.createdAt)
4791
XCTAssertTrue(session.wasCalled)
4892
}

0 commit comments

Comments
 (0)