Skip to content

Commit cba28d9

Browse files
committed
resolving comments in tests
1 parent b6f1fe8 commit cba28d9

File tree

1 file changed

+39
-9
lines changed

1 file changed

+39
-9
lines changed

FirebaseAuth/Tests/Unit/StartPasskeyEnrollmentResponseTests.swift

Lines changed: 39 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import XCTest
1919

2020
@available(iOS 15.0, macOS 12.0, tvOS 16.0, *)
21-
class StartPasskeyEnrollmentResponseTests: XCTestCase {
21+
class StartPasskeyEnrollmentResponseTests: RPCBaseTests {
2222
private func makeValidDictionary() -> [String: AnyHashable] {
2323
return [
2424
"credentialCreationOptions": [
@@ -41,7 +41,7 @@
4141
XCTAssertThrowsError(try StartPasskeyEnrollmentResponse(dictionary: invalidDict))
4242
}
4343

44-
func testInitWithMissingRpThrowsError() {
44+
func testInitWithMissingRp() {
4545
var dict = makeValidDictionary()
4646
if var options = dict["credentialCreationOptions"] as? [String: Any] {
4747
options.removeValue(forKey: "rp")
@@ -50,7 +50,7 @@
5050
XCTAssertThrowsError(try StartPasskeyEnrollmentResponse(dictionary: dict))
5151
}
5252

53-
func testInitWithMissingRpIdThrowsError() {
53+
func testInitWithMissingRpId() {
5454
var dict = makeValidDictionary()
5555
if var options = dict["credentialCreationOptions"] as? [String: Any],
5656
var rp = options["rp"] as? [String: Any] {
@@ -61,7 +61,7 @@
6161
XCTAssertThrowsError(try StartPasskeyEnrollmentResponse(dictionary: dict))
6262
}
6363

64-
func testInitWithMissingUserThrowsError() {
64+
func testInitWithMissingUser() {
6565
var dict = makeValidDictionary()
6666
if var options = dict["credentialCreationOptions"] as? [String: Any] {
6767
options.removeValue(forKey: "user")
@@ -70,7 +70,7 @@
7070
XCTAssertThrowsError(try StartPasskeyEnrollmentResponse(dictionary: dict))
7171
}
7272

73-
func testInitWithMissingUserIdThrowsError() {
73+
func testInitWithMissingUserId() {
7474
var dict = makeValidDictionary()
7575
if var options = dict["credentialCreationOptions"] as? [String: Any],
7676
var user = options["user"] as? [String: Any] {
@@ -81,13 +81,43 @@
8181
XCTAssertThrowsError(try StartPasskeyEnrollmentResponse(dictionary: dict))
8282
}
8383

84-
func testInitWithMissingChallengeThrowsError() {
84+
func testInitWithMissingChallenge() {
8585
var dict = makeValidDictionary()
86-
if var options = dict["credentialCreationOptions"] as? [String: Any] {
86+
if var options = dict["credentialCreationOptions"] as? [String: AnyHashable] {
8787
options.removeValue(forKey: "challenge")
88-
dict["credentialCreationOptions"] = options as? AnyHashable
88+
dict["credentialCreationOptions"] = options as [String: AnyHashable]
8989
}
90-
XCTAssertThrowsError(try StartPasskeyEnrollmentResponse(dictionary: dict))
90+
XCTAssertThrowsError(
91+
try StartPasskeyEnrollmentResponse(dictionary: dict)
92+
) { error in
93+
let nsError = error as NSError
94+
XCTAssertEqual(nsError.domain, AuthErrorDomain)
95+
XCTAssertEqual(nsError.code, AuthErrorCode.internalError.rawValue)
96+
}
97+
}
98+
99+
func testSuccessfulStartPasskeyEnrollmentResponse() async throws {
100+
let expectedRpID = "example.com"
101+
let expectedUserID = "USER_123"
102+
let expectedChallenge = "FAKE_CHALLENGE"
103+
104+
rpcIssuer.respondBlock = {
105+
try self.rpcIssuer.respond(withJSON: [
106+
"credentialCreationOptions": [
107+
"rp": ["id": expectedRpID],
108+
"user": ["id": expectedUserID],
109+
"challenge": expectedChallenge,
110+
],
111+
])
112+
}
113+
let request = StartPasskeyEnrollmentRequest(
114+
idToken: "DUMMY_ID_TOKEN",
115+
requestConfiguration: AuthRequestConfiguration(apiKey: "API_KEY", appID: "APP_ID")
116+
)
117+
let response = try await authBackend.call(with: request)
118+
XCTAssertEqual(response.rpID, expectedRpID)
119+
XCTAssertEqual(response.userID, expectedUserID)
120+
XCTAssertEqual(response.challenge, expectedChallenge)
91121
}
92122
}
93123

0 commit comments

Comments
 (0)