diff --git a/Makefile b/Makefile index 3c9ece5..c883a9c 100644 --- a/Makefile +++ b/Makefile @@ -10,7 +10,7 @@ build-dashboard: clean: rm -rf build test: - rm -rf server/test/test.db && rm -rf test.db && cd server && go clean --testcache && go test -v ./test + rm -rf server/test/test.db && rm -rf test.db && cd server && go clean --testcache && go test -p 1 -v ./test generate: cd server && go get github.com/99designs/gqlgen/cmd@v0.14.0 && go run github.com/99designs/gqlgen generate \ No newline at end of file diff --git a/server/memorystore/providers/inmemory/envstore.go b/server/memorystore/providers/inmemory/envstore.go index 37fee08..0798b17 100644 --- a/server/memorystore/providers/inmemory/envstore.go +++ b/server/memorystore/providers/inmemory/envstore.go @@ -12,8 +12,8 @@ type EnvStore struct { // UpdateEnvStore to update the whole env store object func (e *EnvStore) UpdateStore(store map[string]interface{}) { - e.mutex.Lock() - defer e.mutex.Unlock() + // e.mutex.Lock() + // defer e.mutex.Unlock() // just override the keys + new keys for key, value := range store { @@ -23,22 +23,22 @@ func (e *EnvStore) UpdateStore(store map[string]interface{}) { // GetStore returns the env store func (e *EnvStore) GetStore() map[string]interface{} { - e.mutex.Lock() - defer e.mutex.Unlock() + // e.mutex.Lock() + // defer e.mutex.Unlock() return e.store } // Get returns the value of the key in evn store -func (s *EnvStore) Get(key string) interface{} { - s.mutex.Lock() - defer s.mutex.Unlock() - return s.store[key] +func (e *EnvStore) Get(key string) interface{} { + // e.mutex.Lock() + // defer e.mutex.Unlock() + return e.store[key] } // Set sets the value of the key in env store -func (s *EnvStore) Set(key string, value interface{}) { - s.mutex.Lock() - defer s.mutex.Unlock() - s.store[key] = value +func (e *EnvStore) Set(key string, value interface{}) { + // e.mutex.Lock() + // defer e.mutex.Unlock() + e.store[key] = value } diff --git a/server/memorystore/providers/inmemory/store.go b/server/memorystore/providers/inmemory/store.go index 2113046..8b86a48 100644 --- a/server/memorystore/providers/inmemory/store.go +++ b/server/memorystore/providers/inmemory/store.go @@ -7,8 +7,8 @@ import ( // ClearStore clears the in-memory store. func (c *provider) ClearStore() error { - c.mutex.Lock() - defer c.mutex.Unlock() + // c.mutex.Lock() + // defer c.mutex.Unlock() c.sessionStore = map[string]map[string]string{} return nil @@ -16,8 +16,8 @@ func (c *provider) ClearStore() error { // GetUserSessions returns all the user session token from the in-memory store. func (c *provider) GetUserSessions(userId string) map[string]string { - c.mutex.Lock() - defer c.mutex.Unlock() + // c.mutex.Lock() + // defer c.mutex.Unlock() res := map[string]string{} for k, v := range c.stateStore { split := strings.Split(v, "@") @@ -31,8 +31,8 @@ func (c *provider) GetUserSessions(userId string) map[string]string { // DeleteAllUserSession deletes all the user sessions from in-memory store. func (c *provider) DeleteAllUserSession(userId string) error { - c.mutex.Lock() - defer c.mutex.Unlock() + // c.mutex.Lock() + // defer c.mutex.Unlock() sessions := c.GetUserSessions(userId) for k := range sessions { c.RemoveState(k) @@ -43,8 +43,8 @@ func (c *provider) DeleteAllUserSession(userId string) error { // SetState sets the state in the in-memory store. func (c *provider) SetState(key, state string) error { - c.mutex.Lock() - defer c.mutex.Unlock() + // c.mutex.Lock() + // defer c.mutex.Unlock() c.stateStore[key] = state return nil @@ -52,8 +52,8 @@ func (c *provider) SetState(key, state string) error { // GetState gets the state from the in-memory store. func (c *provider) GetState(key string) (string, error) { - c.mutex.Lock() - defer c.mutex.Unlock() + // c.mutex.Lock() + // defer c.mutex.Unlock() state := "" if stateVal, ok := c.stateStore[key]; ok { @@ -65,8 +65,8 @@ func (c *provider) GetState(key string) (string, error) { // RemoveState removes the state from the in-memory store. func (c *provider) RemoveState(key string) error { - c.mutex.Lock() - defer c.mutex.Unlock() + // c.mutex.Lock() + // defer c.mutex.Unlock() delete(c.stateStore, key) return nil diff --git a/server/test/resolvers_test.go b/server/test/resolvers_test.go index 710d840..55e7f73 100644 --- a/server/test/resolvers_test.go +++ b/server/test/resolvers_test.go @@ -19,9 +19,10 @@ func TestResolvers(t *testing.T) { for dbType, dbURL := range databases { s := testSetup() + defer s.Server.Close() + memorystore.Provider.UpdateEnvVariable(constants.EnvKeyDatabaseURL, dbURL) memorystore.Provider.UpdateEnvVariable(constants.EnvKeyDatabaseType, dbType) - defer s.Server.Close() err := db.InitDB() if err != nil { t.Errorf("Error initializing database: %s", err) diff --git a/server/test/revoke_access_test.go b/server/test/revoke_access_test.go index 88fe167..3018c07 100644 --- a/server/test/revoke_access_test.go +++ b/server/test/revoke_access_test.go @@ -36,6 +36,7 @@ func revokeAccessTest(t *testing.T, s TestSetup) { adminSecret, err := memorystore.Provider.GetStringStoreEnvVariable(constants.EnvKeyAdminSecret) assert.Nil(t, err) + h, err := crypto.EncryptPassword(adminSecret) assert.Nil(t, err) req.Header.Set("Cookie", fmt.Sprintf("%s=%s", constants.AdminCookieName, h)) diff --git a/server/test/test.go b/server/test/test.go index 86866e2..0160ca0 100644 --- a/server/test/test.go +++ b/server/test/test.go @@ -87,16 +87,26 @@ func testSetup() TestSetup { log.Fatal("Error loading required env: ", err) } - memorystore.InitMemStore() + err = memorystore.InitMemStore() + if err != nil { + log.Fatal("Error loading memory store: ", err) + } memorystore.Provider.UpdateEnvVariable(constants.EnvKeySmtpHost, "smtp.yopmail.com") memorystore.Provider.UpdateEnvVariable(constants.EnvKeySmtpPort, "2525") memorystore.Provider.UpdateEnvVariable(constants.EnvKeySmtpUsername, "lakhan@yopmail.com") memorystore.Provider.UpdateEnvVariable(constants.EnvKeySmtpPassword, "test") memorystore.Provider.UpdateEnvVariable(constants.EnvKeySenderEmail, "info@yopmail.com") memorystore.Provider.UpdateEnvVariable(constants.EnvKeyProtectedRoles, "admin") - memorystore.InitMemStore() - db.InitDB() - env.InitAllEnv() + + err = db.InitDB() + if err != nil { + log.Fatal("Error loading db: ", err) + } + + err = env.InitAllEnv() + if err != nil { + log.Fatal("Error loading env: ", err) + } w := httptest.NewRecorder() c, r := gin.CreateTestContext(w) diff --git a/server/test/validator_test.go b/server/test/validator_test.go index ffa68bf..3509c4c 100644 --- a/server/test/validator_test.go +++ b/server/test/validator_test.go @@ -22,7 +22,7 @@ func TestIsValidEmail(t *testing.T) { func TestIsValidOrigin(t *testing.T) { // don't use portocal(http/https) for ALLOWED_ORIGINS while testing, // as we trim them off while running the main function - memorystore.Provider.UpdateEnvVariable(constants.EnvKeyAllowedOrigins, []string{"localhost:8080", "*.google.com", "*.google.in", "*abc.*"}) + memorystore.Provider.UpdateEnvVariable(constants.EnvKeyAllowedOrigins, "localhost:8080,*.google.com,*.google.in,*abc.*") assert.False(t, validators.IsValidOrigin("http://myapp.com"), "it should be invalid origin") assert.False(t, validators.IsValidOrigin("http://appgoogle.com"), "it should be invalid origin") assert.True(t, validators.IsValidOrigin("http://app.google.com"), "it should be valid origin") @@ -32,7 +32,7 @@ func TestIsValidOrigin(t *testing.T) { assert.True(t, validators.IsValidOrigin("http://xyx.abc.in"), "it should be valid origin") assert.True(t, validators.IsValidOrigin("http://xyxabc.in"), "it should be valid origin") assert.True(t, validators.IsValidOrigin("http://localhost:8080"), "it should be valid origin") - memorystore.Provider.UpdateEnvVariable(constants.EnvKeyAllowedOrigins, []string{"*"}) + memorystore.Provider.UpdateEnvVariable(constants.EnvKeyAllowedOrigins, "*") } func TestIsValidIdentifier(t *testing.T) {