Skip to content

Commit 66089db

Browse files
fix: used superTokenInstance to check if debug is enabled, instead of the ENV variable
1 parent 758edbc commit 66089db

File tree

5 files changed

+66
-19
lines changed

5 files changed

+66
-19
lines changed

recipe/session/logger_test.go

Lines changed: 55 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,13 @@ import (
1111
"github.com/supertokens/supertokens-golang/test/unittesting"
1212
)
1313

14+
// Added the logger tests here because supertokens/logger_test.go causes cyclic import errors due to imports in test/unittesting/testingUtils.go
15+
1416
func TestLogDebugMessageWhenDebugTrue(t *testing.T) {
1517
var logMessage = "test log message"
1618
var buf bytes.Buffer
1719

18-
debug := true
19-
supertokens.Logger = log.New(&buf, "", 0)
20+
supertokens.Logger = log.New(&buf, "test", 0)
2021

2122
configValue := supertokens.TypeInput{
2223
Supertokens: &supertokens.ConnectionInfo{
@@ -30,13 +31,14 @@ func TestLogDebugMessageWhenDebugTrue(t *testing.T) {
3031
RecipeList: []supertokens.Recipe{
3132
Init(nil),
3233
},
33-
Debug: &debug,
34+
Debug: true,
3435
}
3536
BeforeEach()
3637

3738
unittesting.StartUpST("localhost", "8080")
3839

3940
defer AfterEach()
41+
defer resetLogger()
4042

4143
err := supertokens.Init(configValue)
4244

@@ -51,16 +53,59 @@ func TestLogDebugMessageWhenDebugTrue(t *testing.T) {
5153
}
5254

5355
supertokens.LogDebugMessage(logMessage)
54-
assert.Equal(t, &debug, supertokensInstance.Debug)
56+
assert.Equal(t, true, supertokensInstance.Debug)
5557
assert.Contains(t, buf.String(), logMessage, "checking log message in logs")
5658
}
5759

5860
func TestLogDebugMessageWhenDebugFalse(t *testing.T) {
5961
var logMessage = "test log message"
6062
var buf bytes.Buffer
6163

62-
debug := false
63-
supertokens.Logger = log.New(&buf, "", 0)
64+
supertokens.Logger = log.New(&buf, "test", 0)
65+
66+
configValue := supertokens.TypeInput{
67+
Supertokens: &supertokens.ConnectionInfo{
68+
ConnectionURI: "http://localhost:8080",
69+
},
70+
AppInfo: supertokens.AppInfo{
71+
AppName: "SuperTokens",
72+
APIDomain: "api.supertokens.io",
73+
WebsiteDomain: "supertokens.io",
74+
},
75+
RecipeList: []supertokens.Recipe{
76+
Init(nil),
77+
},
78+
Debug: false,
79+
}
80+
BeforeEach()
81+
82+
unittesting.StartUpST("localhost", "8080")
83+
84+
defer AfterEach()
85+
defer resetLogger()
86+
87+
err := supertokens.Init(configValue)
88+
89+
if err != nil {
90+
t.Error(err.Error())
91+
}
92+
93+
supertokensInstance, err := supertokens.GetInstanceOrThrowError()
94+
95+
if err != nil {
96+
t.Error(err.Error())
97+
}
98+
99+
supertokens.LogDebugMessage(logMessage)
100+
assert.Equal(t, false, supertokensInstance.Debug)
101+
assert.NotContains(t, buf.String(), logMessage, "checking log message in logs")
102+
}
103+
104+
func TestLogDebugMessageWhenDebugNotSet(t *testing.T) {
105+
var logMessage = "test log message"
106+
var buf bytes.Buffer
107+
108+
supertokens.Logger = log.New(&buf, "test", 0)
64109

65110
configValue := supertokens.TypeInput{
66111
Supertokens: &supertokens.ConnectionInfo{
@@ -74,13 +119,13 @@ func TestLogDebugMessageWhenDebugFalse(t *testing.T) {
74119
RecipeList: []supertokens.Recipe{
75120
Init(nil),
76121
},
77-
Debug: &debug,
78122
}
79123
BeforeEach()
80124

81125
unittesting.StartUpST("localhost", "8080")
82126

83127
defer AfterEach()
128+
defer resetLogger()
84129

85130
err := supertokens.Init(configValue)
86131

@@ -95,15 +140,15 @@ func TestLogDebugMessageWhenDebugFalse(t *testing.T) {
95140
}
96141

97142
supertokens.LogDebugMessage(logMessage)
98-
assert.Equal(t, &debug, supertokensInstance.Debug)
143+
assert.Equal(t, false, supertokensInstance.Debug)
99144
assert.NotContains(t, buf.String(), logMessage, "checking log message in logs")
100145
}
101146

102147
func TestLogDebugMessageWithEnvVar(t *testing.T) {
103148
var logMessage = "test log message"
104149
var buf bytes.Buffer
105150

106-
supertokens.Logger = log.New(&buf, "", 0)
151+
supertokens.Logger = log.New(&buf, "test", 0)
107152
os.Setenv("SUPERTOKENS_DEBUG", "1")
108153

109154
configValue := supertokens.TypeInput{
@@ -124,6 +169,7 @@ func TestLogDebugMessageWithEnvVar(t *testing.T) {
124169
unittesting.StartUpST("localhost", "8080")
125170

126171
defer AfterEach()
172+
defer resetLogger()
127173

128174
err := supertokens.Init(configValue)
129175

recipe/session/testingUtils.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@
1616
package session
1717

1818
import (
19+
"log"
1920
"net/http"
21+
"os"
2022

2123
"github.com/supertokens/supertokens-golang/supertokens"
2224
"github.com/supertokens/supertokens-golang/test/unittesting"
@@ -48,6 +50,11 @@ func AfterEach() {
4850
unittesting.CleanST()
4951
}
5052

53+
func resetLogger() {
54+
supertokens.Logger = log.New(os.Stdout, "com.supertokens", 0)
55+
os.Unsetenv("SUPERTOKENS_DEBUG")
56+
}
57+
5158
type fakeRes struct{}
5259

5360
func (f fakeRes) Header() http.Header {

supertokens/logger.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ func formatMessage(message string) string {
2626

2727
func LogDebugMessage(message string) {
2828
_, exists := os.LookupEnv("SUPERTOKENS_DEBUG")
29-
if exists {
29+
if exists || superTokensInstance.Debug == true {
3030
Logger.Printf(formatMessage(message))
3131
}
3232
}

supertokens/models.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ type TypeInput struct {
4646
AppInfo AppInfo
4747
RecipeList []Recipe
4848
Telemetry *bool
49-
Debug *bool
49+
Debug bool
5050
OnSuperTokensAPIError func(err error, req *http.Request, res http.ResponseWriter)
5151
}
5252

supertokens/supertokens.go

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import (
2020
"errors"
2121
"flag"
2222
"net/http"
23-
"os"
2423
"reflect"
2524
"strconv"
2625
"strings"
@@ -36,7 +35,7 @@ type superTokens struct {
3635
RecipeModules []RecipeModule
3736
OnSuperTokensAPIError func(err error, req *http.Request, res http.ResponseWriter)
3837
Telemetry *bool
39-
Debug *bool
38+
Debug bool
4039
}
4140

4241
// this will be set to true if this is used in a test app environment
@@ -57,12 +56,7 @@ func supertokensInit(config TypeInput) error {
5756
}
5857

5958
superTokens.Debug = config.Debug
60-
if superTokens.Debug != nil && *superTokens.Debug == true {
61-
err := os.Setenv("SUPERTOKENS_DEBUG", "1")
62-
if err != nil {
63-
return err
64-
}
65-
}
59+
superTokensInstance = superTokens
6660

6761
LogDebugMessage("Started SuperTokens with debug logging (supertokens.Init called)")
6862

0 commit comments

Comments
 (0)