Skip to content

Commit

Permalink
tests fixed :)
Browse files Browse the repository at this point in the history
  • Loading branch information
akrck02 committed Jul 19, 2024
1 parent bc8e011 commit 7f0df93
Show file tree
Hide file tree
Showing 8 changed files with 145 additions and 79 deletions.
5 changes: 5 additions & 0 deletions mock/system.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package mock

func InvalidId() string {
return "invalid_id"
}
19 changes: 10 additions & 9 deletions services/permission/permission.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,25 @@ import (
usersmodels "github.com/akrck02/valhalla-core-sdk/models/users"
)

// Users

func CanEditUser(author *usersmodels.User, user *usersmodels.User) bool {
return author.Email == user.Email
return author.ID == user.ID
}

func CanSeeUser(author *usersmodels.User, user *usersmodels.User) bool {
return author.Email == user.Email
return author.ID == user.ID
}
func CanDeleteProject(logedUser *usersmodels.User, project *projectmodels.Project) bool {
return logedUser.ID == project.Owner
}

//Projects

// func CanEditProject(author *models.Project, user *models.Project) bool {

// return author.Email == user.Email
// }
func CanEditProject(user *usersmodels.User, project *projectmodels.Project) bool {
return user.ID == project.Owner
}

// func CanSeeProject(author *models.Project, user *models.Project) bool {
// return author.Email == user.Email
// }
func CanSeeProject(user *usersmodels.User, project *projectmodels.Project) bool {
return user.ID == project.Owner
}
67 changes: 63 additions & 4 deletions services/user/user.go
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ func LoginAuth(conn *mongo.Client, auth *usersmodels.AuthLogin, ip string, userA

// Connect database

found, err := GetUser(conn, &usersmodels.User{Email: auth.Email}, false)
found, err := GetUserByEmail(conn, auth.Email, false)

if err != nil {
return err
Expand Down Expand Up @@ -462,26 +462,85 @@ func DeleteUser(conn *mongo.Client, user *usersmodels.User) *systemmodels.Error
return nil
}

func GetUser(conn *mongo.Client, user *usersmodels.User, secure bool) (*usersmodels.User, *systemmodels.Error) { // get user from database
func GetUser(conn *mongo.Client, user *usersmodels.User, secure bool) (*usersmodels.User, *systemmodels.Error) {

// Connect database
id, err := utils.StringToObjectId(user.ID)

if err != nil {
return nil, &systemmodels.Error{
Status: http.HTTP_STATUS_BAD_REQUEST,
Error: valerror.INVALID_OBJECT_ID,
Message: "Invalid user id",
}
}

filter := &bson.M{"_id": id}

// get user from database
users := conn.Database(database.CurrentDatabase).Collection(database.USER)
var found usersmodels.User
err = users.FindOne(database.GetDefaultContext(), filter).Decode(&found)

// if an error occurs,
if err != nil {
return nil, &systemmodels.Error{
Status: http.HTTP_STATUS_INTERNAL_SERVER_ERROR,
Error: valerror.UNEXPECTED_ERROR,
Message: err.Error(),
}
}

// if user not found, return error
if found.ID == "" {
return nil, &systemmodels.Error{
Status: http.HTTP_STATUS_NOT_FOUND,
Error: valerror.USER_NOT_FOUND,
Message: "User not found",
}
}

// if is secure search, hide password
if secure {
found.Password = "****************"
}

// return user
return &found, nil
}

func GetUserByEmail(conn *mongo.Client, email string, secure bool) (*usersmodels.User, *systemmodels.Error) {

filter := bson.M{"email": email}

// get user from database
users := conn.Database(database.CurrentDatabase).Collection(database.USER)
var found usersmodels.User
err := users.FindOne(database.GetDefaultContext(), bson.M{"email": user.Email}).Decode(&found)
err := users.FindOne(database.GetDefaultContext(), filter).Decode(&found)

// if an error occurs,
if err != nil {
return nil, &systemmodels.Error{
Status: http.HTTP_STATUS_INTERNAL_SERVER_ERROR,
Error: valerror.UNEXPECTED_ERROR,
Message: err.Error(),
}
}

// if user not found, return error
if found.ID == "" {
return nil, &systemmodels.Error{
Status: http.HTTP_STATUS_NOT_FOUND,
Error: valerror.USER_NOT_FOUND,
Message: "User not found",
}
}

// if is secure search, hide password
if secure {
found.Password = "****************"
}

// return user
return &found, nil
}

Expand Down
6 changes: 0 additions & 6 deletions tests/device_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,6 @@ func TestDeviceExists(t *testing.T) {
if err != nil {
t.Error(err)
}

// delete user
DeleteTestUser(conn, t, user)

}

func TestDeviceNotExists(t *testing.T) {
Expand All @@ -51,6 +47,4 @@ func TestDeviceNotExists(t *testing.T) {
t.Error("Device found")
}

// delete user
DeleteTestUser(conn, t, user)
}
16 changes: 11 additions & 5 deletions tests/prepare_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,16 @@ import (
"github.com/akrck02/valhalla-core-sdk/log"
)

var setupDone bool = false
var pathSetupDone bool = false

func TestMain(m *testing.M) {
setup()
setupPathIfNecessary()
satupDatabase()
os.Exit(m.Run())
}

func setup() {
if setupDone {
func setupPathIfNecessary() {
if pathSetupDone {
return
}

Expand All @@ -34,9 +35,14 @@ func setup() {
configuration.SetBasePath(BASE_PATH)
configuration.LoadConfiguration(BASE_PATH + ".env")

}

func satupDatabase() {

log.Jump()
log.Info("Setting up test environment...")
database.SetupTest()
setupDone = true
pathSetupDone = true
log.Jump()

}
11 changes: 2 additions & 9 deletions tests/team_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ func TestCreateTeam(t *testing.T) {

user := RegisterMockTestUser(conn, t)
_ = CreateMockTestTeamWithOwner(conn, t, user)
DeleteTestUser(conn, t, user)

}

Expand All @@ -38,7 +37,7 @@ func TestEditTeam(t *testing.T) {
}

t.Log("Team edited successfully")
DeleteTestUser(conn, t, user)

}

func TestDeleteTeam(t *testing.T) {
Expand All @@ -47,9 +46,7 @@ func TestDeleteTeam(t *testing.T) {
defer conn.Disconnect(context.Background())

user := RegisterMockTestUser(conn, t)
team := CreateMockTestTeamWithOwner(conn, t, user)
DeleteTestTeam(conn, t, team)
DeleteTestUser(conn, t, user)
_ = CreateMockTestTeamWithOwner(conn, t, user)
}

func TestAddTeamMember(t *testing.T) {
Expand All @@ -61,10 +58,6 @@ func TestAddTeamMember(t *testing.T) {
member := RegisterMockTestUser(conn, t)
team := CreateMockTestTeamWithOwner(conn, t, user)
_ = AddTestTeamMember(conn, t, team, member)
DeleteTestTeam(conn, t, team)
DeleteTestUser(conn, t, user)
DeleteTestUser(conn, t, member)

}

func TestRemoveTeamMember(t *testing.T) {
Expand Down
Loading

0 comments on commit 7f0df93

Please sign in to comment.