From d69c7991979e1d0fa4c690ac6faf3b146113ff03 Mon Sep 17 00:00:00 2001 From: kolaente Date: Sun, 31 Jan 2021 12:40:02 +0100 Subject: [PATCH] Fix resetting the bucket limit --- pkg/models/kanban.go | 5 ++++- pkg/models/kanban_test.go | 45 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 1 deletion(-) diff --git a/pkg/models/kanban.go b/pkg/models/kanban.go index 433764cb562..1424086c9d4 100644 --- a/pkg/models/kanban.go +++ b/pkg/models/kanban.go @@ -191,7 +191,10 @@ func (b *Bucket) Create(s *xorm.Session, a web.Auth) (err error) { // @Failure 500 {object} models.Message "Internal error" // @Router /lists/{listID}/buckets/{bucketID} [post] func (b *Bucket) Update(s *xorm.Session) (err error) { - _, err = s.Where("id = ?", b.ID).Update(b) + _, err = s. + Where("id = ?", b.ID). + Cols("title", "limit"). + Update(b) return } diff --git a/pkg/models/kanban_test.go b/pkg/models/kanban_test.go index 87a53b81563..802dbb00530 100644 --- a/pkg/models/kanban_test.go +++ b/pkg/models/kanban_test.go @@ -18,6 +18,7 @@ package models import ( "testing" + "xorm.io/xorm" "code.vikunja.io/api/pkg/db" "code.vikunja.io/api/pkg/user" @@ -135,3 +136,47 @@ func TestBucket_Delete(t *testing.T) { }, false) }) } + +func TestBucket_Update(t *testing.T) { + + testAndAssertBucketUpdate := func(t *testing.T, b *Bucket, s *xorm.Session) { + err := b.Update(s) + assert.NoError(t, err) + + err = s.Commit() + assert.NoError(t, err) + + db.AssertExists(t, "buckets", map[string]interface{}{ + "id": 1, + "title": b.Title, + "limit": b.Limit, + }, false) + } + + t.Run("normal", func(t *testing.T) { + db.LoadAndAssertFixtures(t) + s := db.NewSession() + defer s.Close() + + b := &Bucket{ + ID: 1, + Title: "New Name", + Limit: 2, + } + + testAndAssertBucketUpdate(t, b, s) + }) + t.Run("reset limit", func(t *testing.T) { + db.LoadAndAssertFixtures(t) + s := db.NewSession() + defer s.Close() + + b := &Bucket{ + ID: 1, + Title: "testbucket1", + Limit: 0, + } + + testAndAssertBucketUpdate(t, b, s) + }) +}