Skip to content

Commit c4d5848

Browse files
authored
fix(auth): missing initializers for AWSAuth*Options (#658)
* Added initializers for serveral options and added integration tests * options init default to nil
1 parent 65757ce commit c4d5848

File tree

11 files changed

+122
-19
lines changed

11 files changed

+122
-19
lines changed

AmplifyPlugins/Auth/AWSCognitoAuthPlugin.xcodeproj/project.pbxproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
3AB72AEC1B90671D652C3F96 /* Pods_HostApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 234C2AFA9205B1766FB8E090 /* Pods_HostApp.framework */; };
1212
8337B0CA31C0E650D640B82C /* Pods_HostApp_AWSCognitoAuthPluginIntegrationTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 242DDB230CE2BA243E395217 /* Pods_HostApp_AWSCognitoAuthPluginIntegrationTests.framework */; };
1313
B40F165D24784AE300CDB920 /* AWSCognitoAuthPlugin.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B43DC7452410572400D40275 /* AWSCognitoAuthPlugin.framework */; };
14-
B40F167A24784B3400CDB920 /* amplifyconfiguration.json in Resources */ = {isa = PBXBuildFile; fileRef = B40F166524784B3400CDB920 /* amplifyconfiguration.json */; };
1514
B40F167C24784B3400CDB920 /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = B40F166824784B3400CDB920 /* README.md */; };
1615
B40F167D24784B3400CDB920 /* AuthSignInHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = B40F166A24784B3400CDB920 /* AuthSignInHelper.swift */; };
1716
B40F167E24784B3400CDB920 /* AuthConfigurationHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = B40F166B24784B3400CDB920 /* AuthConfigurationHelper.swift */; };
@@ -114,6 +113,7 @@
114113
B4F3EA4F243A782700F23296 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4F3EA4C243A782700F23296 /* ViewController.swift */; };
115114
B4F3EA50243A782700F23296 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4F3EA4D243A782700F23296 /* AppDelegate.swift */; };
116115
B4F3EA51243A782700F23296 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4F3EA4E243A782700F23296 /* SceneDelegate.swift */; };
116+
D8D4514C24C7AF2600EE2086 /* amplifyconfiguration.json in Resources */ = {isa = PBXBuildFile; fileRef = D8D4514B24C7AF2500EE2086 /* amplifyconfiguration.json */; };
117117
FA6B0EA8249443C90062AA59 /* AWSCognitoAuthPluginConfigTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA6B0EA7249443C90062AA59 /* AWSCognitoAuthPluginConfigTests.swift */; };
118118
FECB988C412E46FD5961894A /* Pods_AWSCognitoAuthPlugin_AWSCognitoAuthPluginTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1674B6AE81501F6E278CE00B /* Pods_AWSCognitoAuthPlugin_AWSCognitoAuthPluginTests.framework */; };
119119
/* End PBXBuildFile section */
@@ -159,7 +159,6 @@
159159
8B2FC5990A6ABD808EA9B984 /* Pods-AWSAuthPlugin-AWSAuthPluginTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AWSAuthPlugin-AWSAuthPluginTests.release.xcconfig"; path = "Target Support Files/Pods-AWSAuthPlugin-AWSAuthPluginTests/Pods-AWSAuthPlugin-AWSAuthPluginTests.release.xcconfig"; sourceTree = "<group>"; };
160160
94AE978618BF1C30FD808FB6 /* Pods-HostApp-AWSAuthPluginIntegrationTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HostApp-AWSAuthPluginIntegrationTests.debug.xcconfig"; path = "Target Support Files/Pods-HostApp-AWSAuthPluginIntegrationTests/Pods-HostApp-AWSAuthPluginIntegrationTests.debug.xcconfig"; sourceTree = "<group>"; };
161161
B40F165824784AE300CDB920 /* AWSCognitoAuthPluginIntegrationTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AWSCognitoAuthPluginIntegrationTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
162-
B40F166524784B3400CDB920 /* amplifyconfiguration.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = amplifyconfiguration.json; sourceTree = "<group>"; };
163162
B40F166724784B3400CDB920 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
164163
B40F166824784B3400CDB920 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
165164
B40F166A24784B3400CDB920 /* AuthSignInHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSignInHelper.swift; sourceTree = "<group>"; };
@@ -278,6 +277,7 @@
278277
B4F3EA4E243A782700F23296 /* SceneDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = "<group>"; };
279278
C49A4C812B0F973F5536DCC8 /* Pods-AWSAuthPlugin.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AWSAuthPlugin.release.xcconfig"; path = "Target Support Files/Pods-AWSAuthPlugin/Pods-AWSAuthPlugin.release.xcconfig"; sourceTree = "<group>"; };
280279
C5E50D8021B9740CB511898D /* Pods-AWSAuthPlugin.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AWSAuthPlugin.debug.xcconfig"; path = "Target Support Files/Pods-AWSAuthPlugin/Pods-AWSAuthPlugin.debug.xcconfig"; sourceTree = "<group>"; };
280+
D8D4514B24C7AF2500EE2086 /* amplifyconfiguration.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = amplifyconfiguration.json; sourceTree = "<group>"; };
281281
E9289652B314AA0AA1F31BC8 /* Pods-HostApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HostApp.release.xcconfig"; path = "Target Support Files/Pods-HostApp/Pods-HostApp.release.xcconfig"; sourceTree = "<group>"; };
282282
FA6B0EA7249443C90062AA59 /* AWSCognitoAuthPluginConfigTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AWSCognitoAuthPluginConfigTests.swift; sourceTree = "<group>"; };
283283
/* End PBXFileReference section */
@@ -341,7 +341,7 @@
341341
B40F166424784B3400CDB920 /* Configuration */ = {
342342
isa = PBXGroup;
343343
children = (
344-
B40F166524784B3400CDB920 /* amplifyconfiguration.json */,
344+
D8D4514B24C7AF2500EE2086 /* amplifyconfiguration.json */,
345345
);
346346
path = Configuration;
347347
sourceTree = "<group>";
@@ -896,7 +896,7 @@
896896
buildActionMask = 2147483647;
897897
files = (
898898
B40F167C24784B3400CDB920 /* README.md in Resources */,
899-
B40F167A24784B3400CDB920 /* amplifyconfiguration.json in Resources */,
899+
D8D4514C24C7AF2600EE2086 /* amplifyconfiguration.json in Resources */,
900900
);
901901
runOnlyForDeploymentPostprocessing = 0;
902902
};

AmplifyPlugins/Auth/AWSCognitoAuthPlugin/Models/Options/AWSAuthConfirmResetPasswordOptions.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,8 @@ import Foundation
1010
public struct AWSAuthConfirmResetPasswordOptions {
1111

1212
public let metadata: [String: String]?
13+
14+
public init(metadata: [String: String]? = nil) {
15+
self.metadata = metadata
16+
}
1317
}

AmplifyPlugins/Auth/AWSCognitoAuthPlugin/Models/Options/AWSAuthConfirmSignInOptions.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,9 @@ public struct AWSAuthConfirmSignInOptions {
1212
public let userAttributes: [AuthUserAttribute]?
1313

1414
public let metadata: [String: String]?
15+
16+
public init(userAttributes: [AuthUserAttribute]? = nil, metadata: [String: String]? = nil) {
17+
self.userAttributes = userAttributes
18+
self.metadata = metadata
19+
}
1520
}

AmplifyPlugins/Auth/AWSCognitoAuthPlugin/Models/Options/AWSAuthConfirmSignUpOptions.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,9 @@ public struct AWSAuthConfirmSignUpOptions {
1212
public let validationData: [String: String]?
1313

1414
public let metadata: [String: String]?
15+
16+
public init(validationData: [String: String]? = nil, metadata: [String: String]? = nil) {
17+
self.validationData = validationData
18+
self.metadata = metadata
19+
}
1520
}

AmplifyPlugins/Auth/AWSCognitoAuthPlugin/Models/Options/AWSAuthResetPasswordOptions.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,8 @@ import Foundation
1010
public struct AWSAuthResetPasswordOptions {
1111

1212
public let metadata: [String: String]?
13+
14+
public init(metadata: [String: String]? = nil) {
15+
self.metadata = metadata
16+
}
1317
}

AmplifyPlugins/Auth/AWSCognitoAuthPlugin/Models/Options/AWSAuthSignInOptions.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,9 @@ public struct AWSAuthSignInOptions {
1212
public let validationData: [String: String]?
1313

1414
public let metadata: [String: String]?
15+
16+
public init(validationData: [String: String]? = nil, metadata: [String: String]? = nil) {
17+
self.validationData = validationData
18+
self.metadata = metadata
19+
}
1520
}

AmplifyPlugins/Auth/AWSCognitoAuthPlugin/Models/Options/AWSAuthSignUpOptions.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,9 @@ public struct AWSAuthSignUpOptions {
1212
public let validationData: [String: String]?
1313

1414
public let metadata: [String: String]?
15+
16+
public init(validationData: [String: String]? = nil, metadata: [String: String]? = nil) {
17+
self.validationData = validationData
18+
self.metadata = metadata
19+
}
1520
}

AmplifyPlugins/Auth/AWSCognitoAuthPlugin/Models/Options/AWSAuthWebUISignInOptions.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,9 @@ public struct AWSAuthWebUISignInOptions {
2323
/// `federationProviderName` is required if you are signIn directly with a third party provider. For example if you
2424
/// are using Auth0, specify the `federationProviderName` as <your_domain>.auth0.com.
2525
public let federationProviderName: String?
26+
27+
public init(idpIdentifier: String? = nil, federationProviderName: String? = nil) {
28+
self.idpIdentifier = idpIdentifier
29+
self.federationProviderName = federationProviderName
30+
}
2631
}

AmplifyPlugins/Auth/AWSCognitoAuthPluginIntegrationTests/AuthSignInTests/AuthUsernamePasswordSignInTests.swift

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class AuthUsernamePasswordSignInTests: AWSAuthBaseTest {
2626
///
2727
/// - Given: A user registered in Cognito user pool
2828
/// - When:
29-
/// - I invoke Amplify.Auth.signIn with the username password
29+
/// - I invoke Amplify.Auth.signIn with the username and password
3030
/// - Then:
3131
/// - I should get a completed signIn flow.
3232
///
@@ -58,6 +58,45 @@ class AuthUsernamePasswordSignInTests: AWSAuthBaseTest {
5858
wait(for: [operationExpectation], timeout: networkTimeout)
5959
}
6060

61+
/// Test successful signIn of a valid user
62+
///
63+
/// - Given: A user registered in Cognito user pool
64+
/// - When:
65+
/// - I invoke Amplify.Auth.signIn with the username, password and AWSAuthSignInOptions
66+
/// - Then:
67+
/// - I should get a completed signIn flow.
68+
///
69+
func testSignInWithSignInOptions() {
70+
71+
let username = "integTest\(UUID().uuidString)"
72+
let password = "P123@\(UUID().uuidString)"
73+
74+
let signUpExpectation = expectation(description: "SignUp operation should complete")
75+
AuthSignInHelper.signUpUser(username: username, password: password) { didSucceed, error in
76+
signUpExpectation.fulfill()
77+
XCTAssertTrue(didSucceed, "Signup operation failed - \(String(describing: error))")
78+
}
79+
wait(for: [signUpExpectation], timeout: networkTimeout)
80+
81+
let operationExpectation = expectation(description: "Operation should complete")
82+
let awsAuthSignInOptions = AWSAuthSignInOptions(validationData: ["mydata": "myvalue"],
83+
metadata: ["mydata": "myvalue"])
84+
let options = AuthSignInOperation.Request.Options(pluginOptions: awsAuthSignInOptions)
85+
let operation = Amplify.Auth.signIn(username: username, password: password, options: options) { result in
86+
defer {
87+
operationExpectation.fulfill()
88+
}
89+
switch result {
90+
case .success(let signInResult):
91+
XCTAssertTrue(signInResult.isSignedIn, "SignIn should be complete")
92+
case .failure(let error):
93+
XCTFail("SignIn with a valid username/password should not fail \(error)")
94+
}
95+
}
96+
XCTAssertNotNil(operation, "SignIn operation should not be nil")
97+
wait(for: [operationExpectation], timeout: networkTimeout)
98+
}
99+
61100
/// Test if user not found error is returned for signIn with unknown user
62101
///
63102
/// - Given: Amplify Auth plugin in signedout state

AmplifyPlugins/Auth/AWSCognitoAuthPluginIntegrationTests/AuthSignUpTests/AuthConfirmSignUpTests.swift

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -63,20 +63,20 @@ class AuthConfirmSignUpTests: AWSAuthBaseTest {
6363
let operationExpectation = expectation(description: "Operation should complete")
6464
let operation = Amplify.Auth.confirmSignUp(for: username,
6565
confirmationCode: "") { result in
66-
defer {
67-
operationExpectation.fulfill()
68-
}
69-
switch result {
70-
case .success:
71-
XCTFail("""
72-
confirmSignUp with validation error should not succeed
73-
""")
74-
case .failure(let error):
75-
guard case .validation(_, _, _, _) = error else {
76-
XCTFail("Should return validation error")
77-
return
78-
}
79-
}
66+
defer {
67+
operationExpectation.fulfill()
68+
}
69+
switch result {
70+
case .success:
71+
XCTFail("""
72+
confirmSignUp with validation error should not succeed
73+
""")
74+
case .failure(let error):
75+
guard case .validation(_, _, _, _) = error else {
76+
XCTFail("Should return validation error")
77+
return
78+
}
79+
}
8080
}
8181
XCTAssertNotNil(operation, "confirmSignUp operations should not be nil")
8282
wait(for: [operationExpectation], timeout: networkTimeout)

0 commit comments

Comments
 (0)