From 13ca65b65045e1acfc30378da213523054f18e40 Mon Sep 17 00:00:00 2001 From: Harshdeep Singh <6162866+harsh62@users.noreply.github.com> Date: Mon, 27 Nov 2023 09:58:00 -0500 Subject: [PATCH 1/3] feat(Auth): Adding forceAliasCreation option during confirmSignUp --- .../Models/Options/AWSAuthConfirmSignUpOptions.swift | 6 +++++- .../Support/Utils/ConfirmSignUpInput+Amplify.swift | 2 ++ .../Task/AWSAuthConfirmSignUpTask.swift | 2 ++ .../SignUpState/ConfirmSignUpInputTests.swift | 2 ++ .../SignUp/AWSAuthConfirmSignUpAPITests.swift | 9 +++++++-- 5 files changed, 18 insertions(+), 3 deletions(-) diff --git a/AmplifyPlugins/Auth/Sources/AWSCognitoAuthPlugin/Models/Options/AWSAuthConfirmSignUpOptions.swift b/AmplifyPlugins/Auth/Sources/AWSCognitoAuthPlugin/Models/Options/AWSAuthConfirmSignUpOptions.swift index 5d6505bfb6..c661c54855 100644 --- a/AmplifyPlugins/Auth/Sources/AWSCognitoAuthPlugin/Models/Options/AWSAuthConfirmSignUpOptions.swift +++ b/AmplifyPlugins/Auth/Sources/AWSCognitoAuthPlugin/Models/Options/AWSAuthConfirmSignUpOptions.swift @@ -11,7 +11,11 @@ public struct AWSAuthConfirmSignUpOptions { public let metadata: [String: String]? - public init(metadata: [String: String]? = nil) { + public let forceAliasCreation: Bool? + + public init(metadata: [String: String]? = nil, + forceAliasCreation: Bool? = nil) { self.metadata = metadata + self.forceAliasCreation = forceAliasCreation } } diff --git a/AmplifyPlugins/Auth/Sources/AWSCognitoAuthPlugin/Support/Utils/ConfirmSignUpInput+Amplify.swift b/AmplifyPlugins/Auth/Sources/AWSCognitoAuthPlugin/Support/Utils/ConfirmSignUpInput+Amplify.swift index 5590fccce0..12f057a7fb 100644 --- a/AmplifyPlugins/Auth/Sources/AWSCognitoAuthPlugin/Support/Utils/ConfirmSignUpInput+Amplify.swift +++ b/AmplifyPlugins/Auth/Sources/AWSCognitoAuthPlugin/Support/Utils/ConfirmSignUpInput+Amplify.swift @@ -13,6 +13,7 @@ extension ConfirmSignUpInput { confirmationCode: String, clientMetadata: [String: String]?, asfDeviceId: String?, + forceAliasCreation: Bool?, environment: UserPoolEnvironment ) { @@ -37,6 +38,7 @@ extension ConfirmSignUpInput { clientId: configuration.clientId, clientMetadata: clientMetadata, confirmationCode: confirmationCode, + forceAliasCreation: forceAliasCreation, secretHash: secretHash, userContextData: userContextData, username: username) diff --git a/AmplifyPlugins/Auth/Sources/AWSCognitoAuthPlugin/Task/AWSAuthConfirmSignUpTask.swift b/AmplifyPlugins/Auth/Sources/AWSCognitoAuthPlugin/Task/AWSAuthConfirmSignUpTask.swift index 962ae5c95a..03f9257f99 100644 --- a/AmplifyPlugins/Auth/Sources/AWSCognitoAuthPlugin/Task/AWSAuthConfirmSignUpTask.swift +++ b/AmplifyPlugins/Auth/Sources/AWSCognitoAuthPlugin/Task/AWSAuthConfirmSignUpTask.swift @@ -33,11 +33,13 @@ class AWSAuthConfirmSignUpTask: AuthConfirmSignUpTask, DefaultLogger { for: request.username, credentialStoreClient: authEnvironment.credentialsClient) let metadata = (request.options.pluginOptions as? AWSAuthConfirmSignUpOptions)?.metadata + let forceAliasCreation = (request.options.pluginOptions as? AWSAuthConfirmSignUpOptions)?.forceAliasCreation let client = try userPoolEnvironment.cognitoUserPoolFactory() let input = ConfirmSignUpInput(username: request.username, confirmationCode: request.code, clientMetadata: metadata, asfDeviceId: asfDeviceId, + forceAliasCreation: forceAliasCreation, environment: userPoolEnvironment) _ = try await client.confirmSignUp(input: input) log.verbose("Received success") diff --git a/AmplifyPlugins/Auth/Tests/AWSCognitoAuthPluginUnitTests/ResolverTests/SignUpState/ConfirmSignUpInputTests.swift b/AmplifyPlugins/Auth/Tests/AWSCognitoAuthPluginUnitTests/ResolverTests/SignUpState/ConfirmSignUpInputTests.swift index 52e54270d4..f926817dc6 100644 --- a/AmplifyPlugins/Auth/Tests/AWSCognitoAuthPluginUnitTests/ResolverTests/SignUpState/ConfirmSignUpInputTests.swift +++ b/AmplifyPlugins/Auth/Tests/AWSCognitoAuthPluginUnitTests/ResolverTests/SignUpState/ConfirmSignUpInputTests.swift @@ -31,6 +31,7 @@ class ConfirmSignUpInputTests: XCTestCase { confirmationCode: "123", clientMetadata: [:], asfDeviceId: "asdfDeviceId", + forceAliasCreation: nil, environment: environment) XCTAssertNotNil(confirmSignUpInput.secretHash) @@ -55,6 +56,7 @@ class ConfirmSignUpInputTests: XCTestCase { confirmationCode: "123", clientMetadata: [:], asfDeviceId: nil, + forceAliasCreation: nil, environment: environment) XCTAssertNil(confirmSignUpInput.secretHash) diff --git a/AmplifyPlugins/Auth/Tests/AWSCognitoAuthPluginUnitTests/TaskTests/ClientBehaviorTests/SignUp/AWSAuthConfirmSignUpAPITests.swift b/AmplifyPlugins/Auth/Tests/AWSCognitoAuthPluginUnitTests/TaskTests/ClientBehaviorTests/SignUp/AWSAuthConfirmSignUpAPITests.swift index fe5c8124c2..92812c342d 100644 --- a/AmplifyPlugins/Auth/Tests/AWSCognitoAuthPluginUnitTests/TaskTests/ClientBehaviorTests/SignUp/AWSAuthConfirmSignUpAPITests.swift +++ b/AmplifyPlugins/Auth/Tests/AWSCognitoAuthPluginUnitTests/TaskTests/ClientBehaviorTests/SignUp/AWSAuthConfirmSignUpAPITests.swift @@ -24,7 +24,9 @@ class AWSAuthConfirmSignUpAPITests: BasePluginTest { func testSuccessfulSignUp() async throws { self.mockIdentityProvider = MockIdentityProvider( - mockConfirmSignUpResponse: { _ in + mockConfirmSignUpResponse: { request in + XCTAssertNil(request.clientMetadata) + XCTAssertNil(request.forceAliasCreation) return .init() } ) @@ -47,11 +49,14 @@ class AWSAuthConfirmSignUpAPITests: BasePluginTest { mockConfirmSignUpResponse: { request in XCTAssertNotNil(request.clientMetadata) XCTAssertEqual(request.clientMetadata?["key"], "value") + XCTAssertEqual(request.forceAliasCreation, true) return .init() } ) - let pluginOptions = AWSAuthConfirmSignUpOptions(metadata: ["key": "value"]) + let pluginOptions = AWSAuthConfirmSignUpOptions( + metadata: ["key": "value"], + forceAliasCreation: true) let options = AuthConfirmSignUpRequest.Options(pluginOptions: pluginOptions) let result = try await self.plugin.confirmSignUp( for: "jeffb", From 0f804d8ae7ee548881523d2cd94207944324d333 Mon Sep 17 00:00:00 2001 From: Harshdeep Singh <6162866+harsh62@users.noreply.github.com> Date: Thu, 15 Feb 2024 09:37:05 -0500 Subject: [PATCH 2/3] update pinpoint unit tests --- .../ErrorPushNotificationsTests.swift | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/AmplifyPlugins/Notifications/Push/Tests/AWSPinpointPushNotificationsPluginUnitTests/ErrorPushNotificationsTests.swift b/AmplifyPlugins/Notifications/Push/Tests/AWSPinpointPushNotificationsPluginUnitTests/ErrorPushNotificationsTests.swift index 14963a0cc1..fd5c80a93e 100644 --- a/AmplifyPlugins/Notifications/Push/Tests/AWSPinpointPushNotificationsPluginUnitTests/ErrorPushNotificationsTests.swift +++ b/AmplifyPlugins/Notifications/Push/Tests/AWSPinpointPushNotificationsPluginUnitTests/ErrorPushNotificationsTests.swift @@ -6,11 +6,8 @@ // @testable import Amplify -import AWSClientRuntime -import AwsCommonRuntimeKit import AWSPinpoint @testable import AWSPinpointPushNotificationsPlugin -import ClientRuntime import Foundation import XCTest @@ -72,12 +69,19 @@ class ErrorPushNotificationsTests: XCTestCase { } } } +} + +#if canImport(AWSClientRuntime) +import AWSClientRuntime + +extension ErrorPushNotificationsTests { /// Given: An UnknownAWSHTTPServiceError /// When: pushNotificationsError is invoked /// Then: A .unknown error is returned func testPushNotificationError_withUnknownAWSHTTPServiceError_shouldReturnUnknownError() { - let error = UnknownAWSHTTPServiceError(httpResponse: .init(body: .none, statusCode: .accepted), message: "UnknownAWSHTTPServiceError", requestID: nil, typeName: nil) + let error = UnknownAWSHTTPServiceError( + httpResponse: .init(body: .empty, statusCode: .accepted), message: "UnknownAWSHTTPServiceError", requestID: nil, typeName: nil) let pushNotificationsError = error.pushNotificationsError switch pushNotificationsError { case .unknown(let errorDescription, let underlyingError): @@ -87,6 +91,14 @@ class ErrorPushNotificationsTests: XCTestCase { XCTFail("Expected error of type .unknown, got \(pushNotificationsError)") } } +} + +#endif + +#if canImport(AwsCommonRuntimeKit) +import AwsCommonRuntimeKit + +extension ErrorPushNotificationsTests { /// Given: A CommonRunTimeError.crtError /// When: pushNotificationsError is invoked @@ -103,3 +115,5 @@ class ErrorPushNotificationsTests: XCTestCase { } } } + +#endif From 1edc681018da7dd7ab365b52c8fc4e0d5a3353ca Mon Sep 17 00:00:00 2001 From: Harshdeep Singh <6162866+harsh62@users.noreply.github.com> Date: Thu, 15 Feb 2024 09:38:05 -0500 Subject: [PATCH 3/3] Revert "update pinpoint unit tests" This reverts commit 0f804d8ae7ee548881523d2cd94207944324d333. --- .../ErrorPushNotificationsTests.swift | 22 ++++--------------- 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/AmplifyPlugins/Notifications/Push/Tests/AWSPinpointPushNotificationsPluginUnitTests/ErrorPushNotificationsTests.swift b/AmplifyPlugins/Notifications/Push/Tests/AWSPinpointPushNotificationsPluginUnitTests/ErrorPushNotificationsTests.swift index fd5c80a93e..14963a0cc1 100644 --- a/AmplifyPlugins/Notifications/Push/Tests/AWSPinpointPushNotificationsPluginUnitTests/ErrorPushNotificationsTests.swift +++ b/AmplifyPlugins/Notifications/Push/Tests/AWSPinpointPushNotificationsPluginUnitTests/ErrorPushNotificationsTests.swift @@ -6,8 +6,11 @@ // @testable import Amplify +import AWSClientRuntime +import AwsCommonRuntimeKit import AWSPinpoint @testable import AWSPinpointPushNotificationsPlugin +import ClientRuntime import Foundation import XCTest @@ -69,19 +72,12 @@ class ErrorPushNotificationsTests: XCTestCase { } } } -} - -#if canImport(AWSClientRuntime) -import AWSClientRuntime - -extension ErrorPushNotificationsTests { /// Given: An UnknownAWSHTTPServiceError /// When: pushNotificationsError is invoked /// Then: A .unknown error is returned func testPushNotificationError_withUnknownAWSHTTPServiceError_shouldReturnUnknownError() { - let error = UnknownAWSHTTPServiceError( - httpResponse: .init(body: .empty, statusCode: .accepted), message: "UnknownAWSHTTPServiceError", requestID: nil, typeName: nil) + let error = UnknownAWSHTTPServiceError(httpResponse: .init(body: .none, statusCode: .accepted), message: "UnknownAWSHTTPServiceError", requestID: nil, typeName: nil) let pushNotificationsError = error.pushNotificationsError switch pushNotificationsError { case .unknown(let errorDescription, let underlyingError): @@ -91,14 +87,6 @@ extension ErrorPushNotificationsTests { XCTFail("Expected error of type .unknown, got \(pushNotificationsError)") } } -} - -#endif - -#if canImport(AwsCommonRuntimeKit) -import AwsCommonRuntimeKit - -extension ErrorPushNotificationsTests { /// Given: A CommonRunTimeError.crtError /// When: pushNotificationsError is invoked @@ -115,5 +103,3 @@ extension ErrorPushNotificationsTests { } } } - -#endif