@@ -823,6 +823,74 @@ func TestShouldAllowCustomValidatorReturningTrueWithOverride(t *testing.T) {
823823 assert .NotEmpty (t , res ["message" ].(string ))
824824}
825825
826+ /**
827+ This test is to make sure that we dont always call the core for session verification by default.
828+ 1. Create a session
829+ 2. Call get session and expect to not call the core
830+ 3. Call refresh session
831+ 4. Call get session and expect the core to be called
832+ */
833+ func TestThatVerifySessionDoesNotAlwaysCallCore (t * testing.T ) {
834+ configValue := supertokens.TypeInput {
835+ Supertokens : & supertokens.ConnectionInfo {
836+ ConnectionURI : "http://localhost:8080" ,
837+ },
838+ AppInfo : supertokens.AppInfo {
839+ AppName : "SuperTokens" ,
840+ WebsiteDomain : "supertokens.io" ,
841+ APIDomain : "api.supertokens.io" ,
842+ },
843+ RecipeList : []supertokens.Recipe {
844+ Init (nil ),
845+ },
846+ }
847+ BeforeEach ()
848+ unittesting .StartUpST ("localhost" , "8080" )
849+ defer AfterEach ()
850+ err := supertokens .Init (configValue )
851+ if err != nil {
852+ t .Error (err .Error ())
853+ }
854+
855+ createSessionResp , err := CreateNewSessionWithoutRequestResponse ("test-user-id" , nil , nil , nil )
856+ if err != nil {
857+ t .Error (err .Error ())
858+ }
859+
860+ createdTokens := createSessionResp .GetAllSessionTokensDangerously ()
861+ assert .True (t , createdTokens .AccessToken != "" )
862+ assert .True (t , * createdTokens .RefreshToken != "" )
863+ assert .True (t , createdTokens .FrontToken != "" )
864+
865+ getSessionResp , err := GetSessionWithoutRequestResponse (createdTokens .AccessToken , createdTokens .AntiCsrfToken , nil )
866+ if err != nil {
867+ t .Error (err .Error ())
868+ }
869+
870+ assert .False (t , didGetSessionCallCore )
871+ newTokens := getSessionResp .GetAllSessionTokensDangerously ()
872+ assert .True (t , newTokens .AccessToken != "" )
873+ assert .True (t , newTokens .RefreshToken == nil )
874+ assert .True (t , newTokens .FrontToken != "" )
875+
876+ refreshResp , err := RefreshSessionWithoutRequestResponse (* createdTokens .RefreshToken , nil , nil )
877+ if err != nil {
878+ t .Error (err .Error ())
879+ }
880+
881+ tokensAfterRefresh := refreshResp .GetAllSessionTokensDangerously ()
882+ assert .True (t , tokensAfterRefresh .AccessToken != "" )
883+ assert .True (t , * tokensAfterRefresh .RefreshToken != "" )
884+ assert .True (t , tokensAfterRefresh .FrontToken != "" )
885+
886+ getSessionResp , err = GetSessionWithoutRequestResponse (tokensAfterRefresh .AccessToken , tokensAfterRefresh .AntiCsrfToken , nil )
887+ if err != nil {
888+ t .Error (err .Error ())
889+ }
890+
891+ assert .True (t , didGetSessionCallCore )
892+ }
893+
826894type typeTestEndpoint struct {
827895 path string
828896 overrideGlobalClaimValidators func (globalClaimValidators []claims.SessionClaimValidator , sessionContainer sessmodels.SessionContainer , userContext supertokens.UserContext ) ([]claims.SessionClaimValidator , error )
0 commit comments