Add rights tests
continuous-integration/drone/pr Build was killed
Details
continuous-integration/drone/pr Build was killed
Details
This commit is contained in:
parent
8a3a6ae044
commit
4af80613d0
|
@ -62,9 +62,6 @@ func TestSavedFilter_Create(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSavedFilter_ReadOne(t *testing.T) {
|
func TestSavedFilter_ReadOne(t *testing.T) {
|
||||||
// Also test when getting a list which is actually a saved filter it returns the saved filter
|
|
||||||
// Also test getting tasks from a saved filter through the task collection as part of a normal task
|
|
||||||
// Also test rights (maybe not here)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSavedFilter_Update(t *testing.T) {
|
func TestSavedFilter_Update(t *testing.T) {
|
||||||
|
@ -95,3 +92,148 @@ func TestSavedFilter_Delete(t *testing.T) {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSavedFilter_Rights(t *testing.T) {
|
||||||
|
user1 := &user.User{ID: 1}
|
||||||
|
user2 := &user.User{ID: 2}
|
||||||
|
ls := &LinkSharing{ID: 1}
|
||||||
|
|
||||||
|
t.Run("create", func(t *testing.T) {
|
||||||
|
// Should always be true
|
||||||
|
db.LoadAndAssertFixtures(t)
|
||||||
|
can, err := (&SavedFilter{}).CanCreate(user1)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.True(t, can)
|
||||||
|
})
|
||||||
|
t.Run("read", func(t *testing.T) {
|
||||||
|
t.Run("owner", func(t *testing.T) {
|
||||||
|
db.LoadAndAssertFixtures(t)
|
||||||
|
sf := &SavedFilter{
|
||||||
|
ID: 1,
|
||||||
|
Title: "Lorem",
|
||||||
|
}
|
||||||
|
can, max, err := sf.CanRead(user1)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.Equal(t, int(RightAdmin), max)
|
||||||
|
assert.True(t, can)
|
||||||
|
})
|
||||||
|
t.Run("not owner", func(t *testing.T) {
|
||||||
|
db.LoadAndAssertFixtures(t)
|
||||||
|
sf := &SavedFilter{
|
||||||
|
ID: 1,
|
||||||
|
Title: "Lorem",
|
||||||
|
}
|
||||||
|
can, _, err := sf.CanRead(user2)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.False(t, can)
|
||||||
|
})
|
||||||
|
t.Run("nonexisting", func(t *testing.T) {
|
||||||
|
db.LoadAndAssertFixtures(t)
|
||||||
|
sf := &SavedFilter{
|
||||||
|
ID: 9999,
|
||||||
|
Title: "Lorem",
|
||||||
|
}
|
||||||
|
can, _, err := sf.CanRead(user1)
|
||||||
|
assert.Error(t, err)
|
||||||
|
assert.True(t, IsErrSavedFilterDoesNotExist(err))
|
||||||
|
assert.False(t, can)
|
||||||
|
})
|
||||||
|
t.Run("link share", func(t *testing.T) {
|
||||||
|
db.LoadAndAssertFixtures(t)
|
||||||
|
sf := &SavedFilter{
|
||||||
|
ID: 1,
|
||||||
|
Title: "Lorem",
|
||||||
|
}
|
||||||
|
can, _, err := sf.CanRead(ls)
|
||||||
|
assert.Error(t, err)
|
||||||
|
assert.True(t, IsErrSavedFilterNotAvailableForLinkShare(err))
|
||||||
|
assert.False(t, can)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
t.Run("update", func(t *testing.T) {
|
||||||
|
t.Run("owner", func(t *testing.T) {
|
||||||
|
db.LoadAndAssertFixtures(t)
|
||||||
|
sf := &SavedFilter{
|
||||||
|
ID: 1,
|
||||||
|
Title: "Lorem",
|
||||||
|
}
|
||||||
|
can, err := sf.CanUpdate(user1)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.True(t, can)
|
||||||
|
})
|
||||||
|
t.Run("not owner", func(t *testing.T) {
|
||||||
|
db.LoadAndAssertFixtures(t)
|
||||||
|
sf := &SavedFilter{
|
||||||
|
ID: 1,
|
||||||
|
Title: "Lorem",
|
||||||
|
}
|
||||||
|
can, err := sf.CanUpdate(user2)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.False(t, can)
|
||||||
|
})
|
||||||
|
t.Run("nonexisting", func(t *testing.T) {
|
||||||
|
db.LoadAndAssertFixtures(t)
|
||||||
|
sf := &SavedFilter{
|
||||||
|
ID: 9999,
|
||||||
|
Title: "Lorem",
|
||||||
|
}
|
||||||
|
can, err := sf.CanUpdate(user1)
|
||||||
|
assert.Error(t, err)
|
||||||
|
assert.True(t, IsErrSavedFilterDoesNotExist(err))
|
||||||
|
assert.False(t, can)
|
||||||
|
})
|
||||||
|
t.Run("link share", func(t *testing.T) {
|
||||||
|
db.LoadAndAssertFixtures(t)
|
||||||
|
sf := &SavedFilter{
|
||||||
|
ID: 1,
|
||||||
|
Title: "Lorem",
|
||||||
|
}
|
||||||
|
can, err := sf.CanUpdate(ls)
|
||||||
|
assert.Error(t, err)
|
||||||
|
assert.True(t, IsErrSavedFilterNotAvailableForLinkShare(err))
|
||||||
|
assert.False(t, can)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
t.Run("delete", func(t *testing.T) {
|
||||||
|
t.Run("owner", func(t *testing.T) {
|
||||||
|
db.LoadAndAssertFixtures(t)
|
||||||
|
sf := &SavedFilter{
|
||||||
|
ID: 1,
|
||||||
|
}
|
||||||
|
can, err := sf.CanDelete(user1)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.True(t, can)
|
||||||
|
})
|
||||||
|
t.Run("not owner", func(t *testing.T) {
|
||||||
|
db.LoadAndAssertFixtures(t)
|
||||||
|
sf := &SavedFilter{
|
||||||
|
ID: 1,
|
||||||
|
}
|
||||||
|
can, err := sf.CanDelete(user2)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.False(t, can)
|
||||||
|
})
|
||||||
|
t.Run("nonexisting", func(t *testing.T) {
|
||||||
|
db.LoadAndAssertFixtures(t)
|
||||||
|
sf := &SavedFilter{
|
||||||
|
ID: 9999,
|
||||||
|
Title: "Lorem",
|
||||||
|
}
|
||||||
|
can, err := sf.CanDelete(user1)
|
||||||
|
assert.Error(t, err)
|
||||||
|
assert.True(t, IsErrSavedFilterDoesNotExist(err))
|
||||||
|
assert.False(t, can)
|
||||||
|
})
|
||||||
|
t.Run("link share", func(t *testing.T) {
|
||||||
|
db.LoadAndAssertFixtures(t)
|
||||||
|
sf := &SavedFilter{
|
||||||
|
ID: 1,
|
||||||
|
Title: "Lorem",
|
||||||
|
}
|
||||||
|
can, err := sf.CanDelete(ls)
|
||||||
|
assert.Error(t, err)
|
||||||
|
assert.True(t, IsErrSavedFilterNotAvailableForLinkShare(err))
|
||||||
|
assert.False(t, can)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue