@@ -823,6 +823,75 @@ 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+ assert .False (t , didGetSessionCallCore )
882+ tokensAfterRefresh := refreshResp .GetAllSessionTokensDangerously ()
883+ assert .True (t , tokensAfterRefresh .AccessToken != "" )
884+ assert .True (t , * tokensAfterRefresh .RefreshToken != "" )
885+ assert .True (t , tokensAfterRefresh .FrontToken != "" )
886+
887+ getSessionResp , err = GetSessionWithoutRequestResponse (tokensAfterRefresh .AccessToken , tokensAfterRefresh .AntiCsrfToken , nil )
888+ if err != nil {
889+ t .Error (err .Error ())
890+ }
891+
892+ assert .True (t , didGetSessionCallCore )
893+ }
894+
826895type typeTestEndpoint struct {
827896 path string
828897 overrideGlobalClaimValidators func (globalClaimValidators []claims.SessionClaimValidator , sessionContainer sessmodels.SessionContainer , userContext supertokens.UserContext ) ([]claims.SessionClaimValidator , error )
0 commit comments