mirror of
https://github.com/documize/community.git
synced 2025-08-02 20:15:26 +02:00
Space store tests
Test all space database operations
This commit is contained in:
parent
42b86b0513
commit
e92ad317d8
1 changed files with 218 additions and 9 deletions
|
@ -1,6 +1,7 @@
|
|||
package space
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"testing"
|
||||
|
||||
"github.com/documize/community/core/uniqueid"
|
||||
|
@ -12,6 +13,12 @@ import (
|
|||
func TestSpace(t *testing.T) {
|
||||
rt, s, ctx := test.SetupTest()
|
||||
spaceID := uniqueid.Generate()
|
||||
spaceID2 := uniqueid.Generate()
|
||||
sp := space.Space{}
|
||||
sp2 := space.Space{}
|
||||
r := space.Role{}
|
||||
r2 := space.Role{}
|
||||
r3 := space.Role{}
|
||||
var err error
|
||||
|
||||
t.Run("Add Space", func(t *testing.T) {
|
||||
|
@ -19,23 +26,37 @@ func TestSpace(t *testing.T) {
|
|||
if err != nil {
|
||||
return
|
||||
}
|
||||
sp := space.Space{}
|
||||
|
||||
sp.RefID = spaceID
|
||||
sp.OrgID = ctx.OrgID
|
||||
sp.Type = space.ScopePrivate
|
||||
sp.UserID = ctx.UserID
|
||||
sp.Name = "test"
|
||||
sp.Type = space.ScopePublic
|
||||
sp.Name = "PublicTestSpace"
|
||||
|
||||
err = s.Space.Add(ctx, sp)
|
||||
if err != nil {
|
||||
ctx.Transaction.Rollback()
|
||||
t.Error("failed to delete space")
|
||||
t.Error("failed to add sp space")
|
||||
}
|
||||
|
||||
r.RefID = uniqueid.Generate()
|
||||
r.LabelID = spaceID
|
||||
r.OrgID = ctx.OrgID
|
||||
r.UserID = "testAddSpace"
|
||||
r.CanView = true
|
||||
r.CanEdit = true
|
||||
|
||||
err = s.Space.AddRole(ctx, r)
|
||||
if err != nil {
|
||||
ctx.Transaction.Rollback()
|
||||
t.Error("failed to add role r")
|
||||
}
|
||||
|
||||
ctx.Transaction.Commit()
|
||||
|
||||
sp2, err := s.Space.Get(ctx, sp.RefID)
|
||||
if err != nil || sp.Name != sp2.Name {
|
||||
t.Error("failed to create space")
|
||||
spGet, err := s.Space.Get(ctx, sp.RefID)
|
||||
if err != nil || sp.Name != spGet.Name {
|
||||
t.Error("failed to get sp space")
|
||||
}
|
||||
})
|
||||
|
||||
|
@ -45,7 +66,7 @@ func TestSpace(t *testing.T) {
|
|||
sp, err := s.Space.Get(ctx, spaceID)
|
||||
if err != nil {
|
||||
ctx.Transaction.Rollback()
|
||||
t.Error("failed to get space")
|
||||
t.Error("failed to get space prior to update")
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -61,10 +82,172 @@ func TestSpace(t *testing.T) {
|
|||
|
||||
sp, err = s.Space.Get(ctx, spaceID)
|
||||
if err != nil || sp.Name != "test update" {
|
||||
t.Error("failed to update space")
|
||||
t.Error("failed to get the space after update")
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("Get All", func(t *testing.T) {
|
||||
ctx.Transaction, err = rt.Db.Beginx()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
sp2.UserID = ctx.UserID
|
||||
sp2.RefID = spaceID2
|
||||
sp2.OrgID = ctx.OrgID
|
||||
sp2.Type = space.ScopePrivate
|
||||
sp2.Name = "PrivateTestSpace"
|
||||
|
||||
err = s.Space.Add(ctx, sp2)
|
||||
if err != nil {
|
||||
ctx.Transaction.Rollback()
|
||||
t.Error("failed to add sp2")
|
||||
}
|
||||
|
||||
r2.RefID = uniqueid.Generate()
|
||||
r2.LabelID = spaceID2
|
||||
r2.OrgID = ctx.OrgID
|
||||
r2.UserID = ctx.UserID
|
||||
r2.CanView = true
|
||||
r2.CanEdit = true
|
||||
|
||||
err = s.Space.AddRole(ctx, r2)
|
||||
if err != nil {
|
||||
ctx.Transaction.Rollback()
|
||||
t.Error("failed to add role")
|
||||
}
|
||||
|
||||
ctx.Transaction.Commit()
|
||||
|
||||
spSlice, err := s.Space.GetAll(ctx)
|
||||
if err != nil || spSlice == nil {
|
||||
t.Error("failed to get all spaces")
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("PublicSpaces", func(t *testing.T) {
|
||||
ctx.Transaction, err = rt.Db.Beginx()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
spSlice, err := s.Space.PublicSpaces(ctx, sp.OrgID)
|
||||
if err != nil || spSlice == nil {
|
||||
t.Error("failed to get public spaces")
|
||||
}
|
||||
|
||||
ctx.Transaction.Commit()
|
||||
})
|
||||
|
||||
t.Run("Change Owner", func(t *testing.T) {
|
||||
ctx.Transaction, err = rt.Db.Beginx()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
newUserID := "Updated Owner"
|
||||
|
||||
err := s.Space.ChangeOwner(ctx, sp.UserID, newUserID)
|
||||
if err != nil {
|
||||
ctx.Transaction.Rollback()
|
||||
t.Error("failed to change Owner")
|
||||
return
|
||||
}
|
||||
ctx.Transaction.Commit()
|
||||
|
||||
sp, err = s.Space.Get(ctx, spaceID)
|
||||
if err != nil || sp.UserID != newUserID {
|
||||
t.Error("failed to get space w/ new owner")
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("Viewers", func(t *testing.T) {
|
||||
viewers, err := s.Space.Viewers(ctx)
|
||||
if err != nil || viewers == nil {
|
||||
t.Error("failed to get viewers")
|
||||
return
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("Add Role", func(t *testing.T) {
|
||||
ctx.Transaction, err = rt.Db.Beginx()
|
||||
|
||||
r3.CanView = true
|
||||
r3.CanEdit = true
|
||||
r3.RefID = uniqueid.Generate()
|
||||
r3.LabelID = spaceID
|
||||
r3.OrgID = ctx.OrgID
|
||||
r3.UserID = "testAddRole"
|
||||
|
||||
err = s.Space.AddRole(ctx, r3)
|
||||
if err != nil {
|
||||
ctx.Transaction.Rollback()
|
||||
t.Error("failed to add role")
|
||||
return
|
||||
}
|
||||
ctx.Transaction.Commit()
|
||||
|
||||
roles, err := s.Space.GetRoles(ctx, spaceID)
|
||||
if err != nil || roles == nil {
|
||||
t.Error("Could not get any roles")
|
||||
return
|
||||
}
|
||||
// TODO: could we Verify the role was added with the if r3.UserID == Returned.UserID?
|
||||
})
|
||||
|
||||
t.Run("Get User Roles", func(t *testing.T) {
|
||||
userRoles, err := s.Space.GetUserRoles(ctx)
|
||||
if err != nil || userRoles == nil {
|
||||
t.Error("failed to get user roles")
|
||||
return
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("Move space Roles", func(t *testing.T) {
|
||||
ctx.Transaction, err = rt.Db.Beginx()
|
||||
err := s.Space.MoveSpaceRoles(ctx, spaceID, spaceID2)
|
||||
if err != nil {
|
||||
ctx.Transaction.Rollback()
|
||||
t.Error("failed to move space roles")
|
||||
return
|
||||
}
|
||||
ctx.Transaction.Commit()
|
||||
})
|
||||
|
||||
t.Run("Delete Role", func(t *testing.T) {
|
||||
ctx.Transaction, err = rt.Db.Beginx()
|
||||
rowsDeleted, err := s.Space.DeleteRole(ctx, r3.RefID)
|
||||
if err != nil || rowsDeleted == 0 {
|
||||
ctx.Transaction.Rollback()
|
||||
t.Error("failed to delete roles")
|
||||
return
|
||||
}
|
||||
ctx.Transaction.Commit()
|
||||
})
|
||||
|
||||
t.Run("Delete space Roles", func(t *testing.T) {
|
||||
ctx.Transaction, err = rt.Db.Beginx()
|
||||
_, err := s.Space.DeleteSpaceRoles(ctx, spaceID)
|
||||
if err != nil && err != sql.ErrNoRows {
|
||||
ctx.Transaction.Rollback()
|
||||
t.Error("failed to delete space roles")
|
||||
return
|
||||
}
|
||||
ctx.Transaction.Commit()
|
||||
})
|
||||
|
||||
t.Run("Delete user space Roles", func(t *testing.T) {
|
||||
ctx.Transaction, err = rt.Db.Beginx()
|
||||
_, err := s.Space.DeleteUserSpaceRoles(ctx, spaceID2, ctx.UserID)
|
||||
if err != nil && err != sql.ErrNoRows {
|
||||
ctx.Transaction.Rollback()
|
||||
t.Error("failed to delete user space roles")
|
||||
return
|
||||
}
|
||||
ctx.Transaction.Commit()
|
||||
})
|
||||
|
||||
//Delete spaces last, otherwise tests may fail
|
||||
|
||||
t.Run("Delete Space", func(t *testing.T) {
|
||||
ctx.Transaction, err = rt.Db.Beginx()
|
||||
|
||||
|
@ -78,5 +261,31 @@ func TestSpace(t *testing.T) {
|
|||
ctx.Transaction.Commit()
|
||||
})
|
||||
|
||||
//
|
||||
// teardown code goes here
|
||||
//
|
||||
|
||||
t.Run("Delete sp2 Space", func(t *testing.T) {
|
||||
ctx.Transaction, err = rt.Db.Beginx()
|
||||
|
||||
_, err = s.Space.Delete(ctx, spaceID2)
|
||||
if err != nil {
|
||||
ctx.Transaction.Rollback()
|
||||
t.Error("failed to delete space in teardown")
|
||||
return
|
||||
}
|
||||
|
||||
ctx.Transaction.Commit()
|
||||
})
|
||||
|
||||
t.Run("Delete r Role", func(t *testing.T) {
|
||||
ctx.Transaction, err = rt.Db.Beginx()
|
||||
rowsDeleted, err := s.Space.DeleteRole(ctx, r.RefID)
|
||||
if err != nil || rowsDeleted == 0 {
|
||||
ctx.Transaction.Rollback()
|
||||
t.Error("failed to delete role r in teardown")
|
||||
return
|
||||
}
|
||||
ctx.Transaction.Commit()
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue