Skip to content

Commit 98e27bd

Browse files
authored
Merge pull request #198 from 0xsequence/Test/verifyUniqueSessionIdsOnLogins
Updated SignInOutRepeatedlyTest such that it verifies that the sessio…
2 parents 8dbee26 + 1662b3f commit 98e27bd

4 files changed

Lines changed: 26 additions & 1 deletion

File tree

Plugins/SequencePlugin/Source/SequencePlugin/Private/Sequence/SequenceAPI.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,12 @@ FString USequenceWallet::GetWalletAddress() const
187187
return Addr;
188188
}
189189

190+
FString USequenceWallet::GetSessionId() const
191+
{
192+
return this->Credentials.GetSessionWallet()->GetSessionId();
193+
}
194+
195+
190196
void USequenceWallet::GetIdToken(const FString& Nonce, const TSuccessCallback<FSeqIdTokenResponse_Data>&OnSuccess, const FFailureCallback& OnFailure) const
191197
{
192198
if (this->SequenceRPCManager)

Plugins/SequencePlugin/Source/SequencePlugin/Public/Sequence/SequenceAPI.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,12 @@ class SEQUENCEPLUGIN_API USequenceWallet : public UGameInstanceSubsystem
126126
*/
127127
FString GetWalletAddress() const;
128128

129+
/**
130+
* Get the current/active session id associated with this wallet
131+
* @return the current/active session id associated with this wallet
132+
*/
133+
FString GetSessionId() const;
134+
129135
/**
130136
* Allows you to update the provider URL set for the SequenceWallet
131137
* @param Url New provider Url you wish to use

Plugins/SequenceTests/Source/SequenceTests/Private/SessionManagementEndToEndTests/SignInOutRepeatedlyTest.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,17 @@ void USignInOutRepeatedlyTestHelper::OnAuthSuccess()
6161
Repetitions++;
6262
if (TOptional<USequenceWallet*> OptionalSequenceWallet = USequenceWallet::Get(); OptionalSequenceWallet.IsSet() && OptionalSequenceWallet.GetValue())
6363
{
64+
65+
TSet<FString> UniqueSessionIds(SessionIds);
66+
bool bAllSessionIdsUnique = UniqueSessionIds.Num() == SessionIds.Num();
67+
if (!bAllSessionIdsUnique)
68+
{
69+
bTestComplete = true;
70+
ParentTest->AddError(TEXT("Session Ids are not unique"));
71+
return;
72+
}
73+
74+
SessionIds.Add(OptionalSequenceWallet.GetValue()->GetSessionId());
6475
OptionalSequenceWallet.GetValue()->SignOut();
6576
}
6677
else

Plugins/SequenceTests/Source/SequenceTests/Private/SessionManagementEndToEndTests/SignInOutRepeatedlyTest.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#include "CoreMinimal.h"
44
#include "Misc/AutomationTest.h"
55
#include "SequencePlugin/Public/SequenceAuthenticator.h"
6+
#include "SequencePlugin/Public/Sequence/SequenceAPI.h"
67
#include "SignInOutRepeatedlyTest.generated.h"
78

89
class FSignInOutRepeatedlyTest;
@@ -29,8 +30,9 @@ class USignInOutRepeatedlyTestHelper : public UObject
2930
USequenceAuthenticator* Authenticator = nullptr;
3031
int32 Repetitions = 0;
3132
static const int32 MaxRepetitions = 3;
33+
TArray<FString> SessionIds;
3234

3335
void ConnectAsGuest();
3436
};
3537

36-
DEFINE_LATENT_AUTOMATION_COMMAND_ONE_PARAMETER(FWaitForSignInOutCompletion, USignInOutRepeatedlyTestHelper*, TestHelper);
38+
DEFINE_LATENT_AUTOMATION_COMMAND_ONE_PARAMETER(FWaitForSignInOutCompletion, USignInOutRepeatedlyTestHelper*, TestHelper);

0 commit comments

Comments
 (0)