1
0

Kanban bucket limits (#652)

Fix integration tests

Generate swagger docs

Add test for moving a task between buckets

Add check for bucket limit when updating a task

Add fixture to ensure a bucket with a high limit will never exceed the limit

Refactor bucket limit check into seperate function

Add test for creating and fix

Fix unexported field

Add error in case a task was added to a bucket which has its limit already exceeded

Add migration to add new task field

Add limit field to buckets

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/652
This commit is contained in:
konrad
2020-09-04 14:37:56 +00:00
parent 5317a89623
commit 14d706c91e
11 changed files with 166 additions and 10 deletions

View File

@ -85,6 +85,18 @@ func TestTask_Create(t *testing.T) {
assert.Error(t, err)
assert.True(t, user.IsErrUserDoesNotExist(err))
})
t.Run("full bucket", func(t *testing.T) {
db.LoadAndAssertFixtures(t)
task := &Task{
Title: "Lorem",
Description: "Lorem Ipsum Dolor",
ListID: 1,
BucketID: 2, // Bucket 2 already has 3 tasks and a limit of 3
}
err := task.Create(usr)
assert.Error(t, err)
assert.True(t, IsErrBucketLimitExceeded(err))
})
}
func TestTask_Update(t *testing.T) {
@ -111,6 +123,19 @@ func TestTask_Update(t *testing.T) {
assert.Error(t, err)
assert.True(t, IsErrTaskDoesNotExist(err))
})
t.Run("full bucket", func(t *testing.T) {
db.LoadAndAssertFixtures(t)
task := &Task{
ID: 1,
Title: "test10000",
Description: "Lorem Ipsum Dolor",
ListID: 1,
BucketID: 2, // Bucket 2 already has 3 tasks and a limit of 3
}
err := task.Update()
assert.Error(t, err)
assert.True(t, IsErrBucketLimitExceeded(err))
})
}
func TestTask_Delete(t *testing.T) {