chore(deps): update golangci-lint rules
This commit is contained in:
@ -23,6 +23,7 @@ import (
|
||||
"code.vikunja.io/api/pkg/user"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestAPIToken_ReadAll(t *testing.T) {
|
||||
@ -35,11 +36,11 @@ func TestAPIToken_ReadAll(t *testing.T) {
|
||||
// Checking if the user only sees their own tokens
|
||||
|
||||
result, count, total, err := token.ReadAll(s, u, "", 1, 50)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
tokens, is := result.([]*APIToken)
|
||||
assert.Truef(t, is, "tokens are not of type []*APIToken")
|
||||
assert.Len(t, tokens, 2)
|
||||
assert.Equal(t, count, len(tokens))
|
||||
assert.Len(t, tokens, count)
|
||||
assert.Equal(t, int64(2), total)
|
||||
assert.Equal(t, int64(1), tokens[0].ID)
|
||||
assert.Equal(t, int64(2), tokens[1].ID)
|
||||
@ -54,7 +55,7 @@ func TestAPIToken_CanDelete(t *testing.T) {
|
||||
db.LoadAndAssertFixtures(t)
|
||||
|
||||
can, err := token.CanDelete(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.True(t, can)
|
||||
})
|
||||
t.Run("noneixsting token", func(t *testing.T) {
|
||||
@ -65,7 +66,7 @@ func TestAPIToken_CanDelete(t *testing.T) {
|
||||
db.LoadAndAssertFixtures(t)
|
||||
|
||||
can, err := token.CanDelete(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, can)
|
||||
})
|
||||
t.Run("token of another user", func(t *testing.T) {
|
||||
@ -76,7 +77,7 @@ func TestAPIToken_CanDelete(t *testing.T) {
|
||||
db.LoadAndAssertFixtures(t)
|
||||
|
||||
can, err := token.CanDelete(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, can)
|
||||
})
|
||||
}
|
||||
@ -90,7 +91,7 @@ func TestAPIToken_Create(t *testing.T) {
|
||||
db.LoadAndAssertFixtures(t)
|
||||
|
||||
err := token.Create(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
})
|
||||
}
|
||||
|
||||
@ -102,7 +103,7 @@ func TestAPIToken_GetTokenFromTokenString(t *testing.T) {
|
||||
|
||||
token, err := GetTokenFromTokenString(s, "tk_2eef46f40ebab3304919ab2e7e39993f75f29d2e") // Token 1
|
||||
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, int64(1), token.ID)
|
||||
})
|
||||
t.Run("invalid token", func(t *testing.T) {
|
||||
@ -112,7 +113,7 @@ func TestAPIToken_GetTokenFromTokenString(t *testing.T) {
|
||||
|
||||
_, err := GetTokenFromTokenString(s, "tk_loremipsum")
|
||||
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrAPITokenInvalid(err))
|
||||
})
|
||||
}
|
||||
|
@ -23,7 +23,9 @@ import (
|
||||
|
||||
"code.vikunja.io/api/pkg/db"
|
||||
"code.vikunja.io/api/pkg/user"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestBucket_ReadAll(t *testing.T) {
|
||||
@ -35,7 +37,7 @@ func TestBucket_ReadAll(t *testing.T) {
|
||||
testuser := &user.User{ID: 1}
|
||||
b := &Bucket{ProjectID: 1}
|
||||
bucketsInterface, _, _, err := b.ReadAll(s, testuser, "", 0, 0)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
buckets, is := bucketsInterface.([]*Bucket)
|
||||
assert.True(t, is)
|
||||
@ -85,7 +87,7 @@ func TestBucket_ReadAll(t *testing.T) {
|
||||
},
|
||||
}
|
||||
bucketsInterface, _, _, err := b.ReadAll(s, testuser, "", -1, 0)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
buckets := bucketsInterface.([]*Bucket)
|
||||
assert.Len(t, buckets, 3)
|
||||
@ -104,7 +106,7 @@ func TestBucket_ReadAll(t *testing.T) {
|
||||
}
|
||||
b := &Bucket{ProjectID: 1}
|
||||
result, _, _, err := b.ReadAll(s, linkShare, "", 0, 0)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
buckets, _ := result.([]*Bucket)
|
||||
assert.Len(t, buckets, 3)
|
||||
assert.NotNil(t, buckets[0].CreatedBy)
|
||||
@ -118,7 +120,7 @@ func TestBucket_ReadAll(t *testing.T) {
|
||||
testuser := &user.User{ID: 12}
|
||||
b := &Bucket{ProjectID: 23}
|
||||
result, _, _, err := b.ReadAll(s, testuser, "", 0, 0)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
buckets, _ := result.([]*Bucket)
|
||||
assert.Len(t, buckets, 1)
|
||||
assert.NotNil(t, buckets[0].CreatedBy)
|
||||
@ -139,14 +141,14 @@ func TestBucket_Delete(t *testing.T) {
|
||||
ProjectID: 1,
|
||||
}
|
||||
err := b.Delete(s, user)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Assert all tasks have been moved to bucket 1 as that one is the first
|
||||
tasks := []*Task{}
|
||||
err = s.Where("bucket_id = ?", 1).Find(&tasks)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Len(t, tasks, 15)
|
||||
db.AssertMissing(t, "buckets", map[string]interface{}{
|
||||
"id": 2,
|
||||
@ -163,10 +165,10 @@ func TestBucket_Delete(t *testing.T) {
|
||||
ProjectID: 18,
|
||||
}
|
||||
err := b.Delete(s, user)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrCannotRemoveLastBucket(err))
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
db.AssertExists(t, "buckets", map[string]interface{}{
|
||||
"id": 34,
|
||||
@ -179,10 +181,10 @@ func TestBucket_Update(t *testing.T) {
|
||||
|
||||
testAndAssertBucketUpdate := func(t *testing.T, b *Bucket, s *xorm.Session) {
|
||||
err := b.Update(s, &user.User{ID: 1})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
db.AssertExists(t, "buckets", map[string]interface{}{
|
||||
"id": 1,
|
||||
|
@ -21,7 +21,9 @@ import (
|
||||
|
||||
"code.vikunja.io/api/pkg/db"
|
||||
"code.vikunja.io/api/pkg/user"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestLinkSharing_Create(t *testing.T) {
|
||||
@ -38,7 +40,7 @@ func TestLinkSharing_Create(t *testing.T) {
|
||||
}
|
||||
err := share.Create(s, doer)
|
||||
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.NotEmpty(t, share.Hash)
|
||||
assert.NotEmpty(t, share.ID)
|
||||
assert.Equal(t, SharingTypeWithoutPassword, share.SharingType)
|
||||
@ -57,7 +59,7 @@ func TestLinkSharing_Create(t *testing.T) {
|
||||
}
|
||||
err := share.Create(s, doer)
|
||||
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrInvalidRight(err))
|
||||
})
|
||||
t.Run("password should be hashed", func(t *testing.T) {
|
||||
@ -72,7 +74,7 @@ func TestLinkSharing_Create(t *testing.T) {
|
||||
}
|
||||
err := share.Create(s, doer)
|
||||
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.NotEmpty(t, share.Hash)
|
||||
assert.NotEmpty(t, share.ID)
|
||||
assert.Empty(t, share.Password)
|
||||
@ -97,7 +99,7 @@ func TestLinkSharing_ReadAll(t *testing.T) {
|
||||
all, _, _, err := share.ReadAll(s, doer, "", 1, -1)
|
||||
shares := all.([]*LinkSharing)
|
||||
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Len(t, shares, 2)
|
||||
for _, sharing := range shares {
|
||||
assert.Empty(t, sharing.Password)
|
||||
@ -114,7 +116,7 @@ func TestLinkSharing_ReadAll(t *testing.T) {
|
||||
all, _, _, err := share.ReadAll(s, doer, "wITHPASS", 1, -1)
|
||||
shares := all.([]*LinkSharing)
|
||||
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Len(t, shares, 1)
|
||||
assert.Equal(t, int64(4), shares[0].ID)
|
||||
})
|
||||
@ -133,7 +135,7 @@ func TestLinkSharing_ReadOne(t *testing.T) {
|
||||
}
|
||||
err := share.ReadOne(s, doer)
|
||||
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.NotEmpty(t, share.Hash)
|
||||
assert.Equal(t, SharingTypeWithoutPassword, share.SharingType)
|
||||
})
|
||||
@ -147,7 +149,7 @@ func TestLinkSharing_ReadOne(t *testing.T) {
|
||||
}
|
||||
err := share.ReadOne(s, doer)
|
||||
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.NotEmpty(t, share.Hash)
|
||||
assert.Equal(t, SharingTypeWithPassword, share.SharingType)
|
||||
assert.Empty(t, share.Password)
|
||||
|
@ -19,11 +19,12 @@ package models
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
|
||||
"code.vikunja.io/api/pkg/db"
|
||||
"code.vikunja.io/api/pkg/notifications"
|
||||
"code.vikunja.io/api/pkg/user"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestFindMentionedUsersInText(t *testing.T) {
|
||||
@ -100,13 +101,13 @@ func TestSendingMentionNotification(t *testing.T) {
|
||||
defer s.Close()
|
||||
|
||||
task, err := GetTaskByIDSimple(s, 32)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
tc := &TaskComment{
|
||||
Comment: "Lorem Ipsum @user1 @user2 @user3 @user4 @user5 @user6",
|
||||
TaskID: 32, // user2 has access to the project that task belongs to
|
||||
}
|
||||
err = tc.Create(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
n := &TaskCommentNotification{
|
||||
Doer: u,
|
||||
Task: &task,
|
||||
@ -114,7 +115,7 @@ func TestSendingMentionNotification(t *testing.T) {
|
||||
}
|
||||
|
||||
_, err = notifyMentionedUsers(s, &task, tc.Comment, n)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
db.AssertExists(t, "notifications", map[string]interface{}{
|
||||
"subject_id": tc.ID,
|
||||
@ -153,13 +154,13 @@ func TestSendingMentionNotification(t *testing.T) {
|
||||
defer s.Close()
|
||||
|
||||
task, err := GetTaskByIDSimple(s, 32)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
tc := &TaskComment{
|
||||
Comment: "Lorem Ipsum @user2",
|
||||
TaskID: 32, // user2 has access to the project that task belongs to
|
||||
}
|
||||
err = tc.Create(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
n := &TaskCommentNotification{
|
||||
Doer: u,
|
||||
Task: &task,
|
||||
@ -167,14 +168,14 @@ func TestSendingMentionNotification(t *testing.T) {
|
||||
}
|
||||
|
||||
_, err = notifyMentionedUsers(s, &task, tc.Comment, n)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
_, err = notifyMentionedUsers(s, &task, "Lorem Ipsum @user2 @user3", n)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// The second time mentioning the user in the same task should not create another notification
|
||||
dbNotifications, err := notifications.GetNotificationsForNameAndUser(s, 2, n.Name(), tc.ID)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Len(t, dbNotifications, 1)
|
||||
})
|
||||
}
|
||||
|
@ -22,7 +22,9 @@ import (
|
||||
"code.vikunja.io/api/pkg/db"
|
||||
"code.vikunja.io/api/pkg/files"
|
||||
"code.vikunja.io/api/pkg/user"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestProjectDuplicate(t *testing.T) {
|
||||
@ -40,16 +42,16 @@ func TestProjectDuplicate(t *testing.T) {
|
||||
ProjectID: 1,
|
||||
}
|
||||
can, err := l.CanCreate(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.True(t, can)
|
||||
err = l.Create(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// assert the new project has the same number of buckets as the old one
|
||||
numberOfOriginalBuckets, err := s.Where("project_id = ?", l.ProjectID).Count(&Bucket{})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
numberOfDuplicatedBuckets, err := s.Where("project_id = ?", l.Project.ID).Count(&Bucket{})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, numberOfOriginalBuckets, numberOfDuplicatedBuckets, "duplicated project does not have the same amount of buckets as the original one")
|
||||
|
||||
// To make this test 100% useful, it would need to assert a lot more stuff, but it is good enough for now.
|
||||
|
@ -25,7 +25,9 @@ import (
|
||||
"code.vikunja.io/api/pkg/db"
|
||||
"code.vikunja.io/api/pkg/user"
|
||||
"code.vikunja.io/web"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestTeamProject_ReadAll(t *testing.T) {
|
||||
@ -39,10 +41,10 @@ func TestTeamProject_ReadAll(t *testing.T) {
|
||||
db.LoadAndAssertFixtures(t)
|
||||
s := db.NewSession()
|
||||
teams, _, _, err := tl.ReadAll(s, u, "", 1, 50)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, reflect.TypeOf(teams).Kind(), reflect.Slice)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, reflect.Slice, reflect.TypeOf(teams).Kind())
|
||||
ts := reflect.ValueOf(teams)
|
||||
assert.Equal(t, ts.Len(), 1)
|
||||
assert.Equal(t, 1, ts.Len())
|
||||
_ = s.Close()
|
||||
})
|
||||
t.Run("nonexistant project", func(t *testing.T) {
|
||||
@ -52,7 +54,7 @@ func TestTeamProject_ReadAll(t *testing.T) {
|
||||
db.LoadAndAssertFixtures(t)
|
||||
s := db.NewSession()
|
||||
_, _, _, err := tl.ReadAll(s, u, "", 1, 50)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrProjectDoesNotExist(err))
|
||||
_ = s.Close()
|
||||
})
|
||||
@ -65,7 +67,7 @@ func TestTeamProject_ReadAll(t *testing.T) {
|
||||
db.LoadAndAssertFixtures(t)
|
||||
s := db.NewSession()
|
||||
_, _, _, err := tl.ReadAll(s, u, "", 1, 50)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrNeedToHaveProjectReadAccess(err))
|
||||
_ = s.Close()
|
||||
})
|
||||
@ -76,8 +78,8 @@ func TestTeamProject_ReadAll(t *testing.T) {
|
||||
db.LoadAndAssertFixtures(t)
|
||||
s := db.NewSession()
|
||||
teams, _, _, err := tl.ReadAll(s, u, "TEAM9", 1, 50)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, reflect.TypeOf(teams).Kind(), reflect.Slice)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, reflect.Slice, reflect.TypeOf(teams).Kind())
|
||||
ts := teams.([]*TeamWithRight)
|
||||
assert.Len(t, ts, 1)
|
||||
assert.Equal(t, int64(9), ts[0].ID)
|
||||
@ -98,9 +100,9 @@ func TestTeamProject_Create(t *testing.T) {
|
||||
allowed, _ := tl.CanCreate(s, u)
|
||||
assert.True(t, allowed)
|
||||
err := tl.Create(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
db.AssertExists(t, "team_projects", map[string]interface{}{
|
||||
"team_id": 1,
|
||||
"project_id": 1,
|
||||
@ -116,7 +118,7 @@ func TestTeamProject_Create(t *testing.T) {
|
||||
Right: RightAdmin,
|
||||
}
|
||||
err := tl.Create(s, u)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrTeamAlreadyHasAccess(err))
|
||||
_ = s.Close()
|
||||
})
|
||||
@ -129,7 +131,7 @@ func TestTeamProject_Create(t *testing.T) {
|
||||
Right: RightUnknown,
|
||||
}
|
||||
err := tl.Create(s, u)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrInvalidRight(err))
|
||||
_ = s.Close()
|
||||
})
|
||||
@ -141,7 +143,7 @@ func TestTeamProject_Create(t *testing.T) {
|
||||
ProjectID: 1,
|
||||
}
|
||||
err := tl.Create(s, u)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrTeamDoesNotExist(err))
|
||||
_ = s.Close()
|
||||
})
|
||||
@ -153,7 +155,7 @@ func TestTeamProject_Create(t *testing.T) {
|
||||
ProjectID: 9999,
|
||||
}
|
||||
err := tl.Create(s, u)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrProjectDoesNotExist(err))
|
||||
_ = s.Close()
|
||||
})
|
||||
@ -170,9 +172,9 @@ func TestTeamProject_Delete(t *testing.T) {
|
||||
ProjectID: 3,
|
||||
}
|
||||
err := tl.Delete(s, user)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
db.AssertMissing(t, "team_projects", map[string]interface{}{
|
||||
"team_id": 1,
|
||||
"project_id": 3,
|
||||
@ -186,7 +188,7 @@ func TestTeamProject_Delete(t *testing.T) {
|
||||
ProjectID: 1,
|
||||
}
|
||||
err := tl.Delete(s, user)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrTeamDoesNotExist(err))
|
||||
_ = s.Close()
|
||||
})
|
||||
@ -198,7 +200,7 @@ func TestTeamProject_Delete(t *testing.T) {
|
||||
ProjectID: 9999,
|
||||
}
|
||||
err := tl.Delete(s, user)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrTeamDoesNotHaveAccessToProject(err))
|
||||
_ = s.Close()
|
||||
})
|
||||
@ -279,7 +281,7 @@ func TestTeamProject_Update(t *testing.T) {
|
||||
t.Errorf("TeamProject.Update() Wrong error type! Error = %v, want = %v", err, runtime.FuncForPC(reflect.ValueOf(tt.errType).Pointer()).Name())
|
||||
}
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
if !tt.wantErr {
|
||||
db.AssertExists(t, "team_projects", map[string]interface{}{
|
||||
"project_id": tt.fields.ProjectID,
|
||||
|
@ -23,7 +23,9 @@ import (
|
||||
"code.vikunja.io/api/pkg/db"
|
||||
"code.vikunja.io/api/pkg/files"
|
||||
"code.vikunja.io/api/pkg/user"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestProject_CreateOrUpdate(t *testing.T) {
|
||||
@ -42,9 +44,9 @@ func TestProject_CreateOrUpdate(t *testing.T) {
|
||||
Description: "Lorem Ipsum",
|
||||
}
|
||||
err := project.Create(s, usr)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
db.AssertExists(t, "projects", map[string]interface{}{
|
||||
"id": project.ID,
|
||||
"title": project.Title,
|
||||
@ -64,7 +66,7 @@ func TestProject_CreateOrUpdate(t *testing.T) {
|
||||
ParentProjectID: 999999,
|
||||
}
|
||||
err := project.Create(s, usr)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrProjectDoesNotExist(err))
|
||||
_ = s.Close()
|
||||
})
|
||||
@ -77,7 +79,7 @@ func TestProject_CreateOrUpdate(t *testing.T) {
|
||||
Description: "Lorem Ipsum",
|
||||
}
|
||||
err := project.Create(s, usr)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, user.IsErrUserDoesNotExist(err))
|
||||
_ = s.Close()
|
||||
})
|
||||
@ -90,7 +92,7 @@ func TestProject_CreateOrUpdate(t *testing.T) {
|
||||
Identifier: "test1",
|
||||
}
|
||||
err := project.Create(s, usr)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrProjectIdentifierIsNotUnique(err))
|
||||
_ = s.Close()
|
||||
})
|
||||
@ -102,9 +104,9 @@ func TestProject_CreateOrUpdate(t *testing.T) {
|
||||
Description: "Lorem Ipsum",
|
||||
}
|
||||
err := project.Create(s, usr)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
db.AssertExists(t, "projects", map[string]interface{}{
|
||||
"id": project.ID,
|
||||
"title": project.Title,
|
||||
@ -124,9 +126,9 @@ func TestProject_CreateOrUpdate(t *testing.T) {
|
||||
}
|
||||
project.Description = "Lorem Ipsum dolor sit amet."
|
||||
err := project.Update(s, usr)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
db.AssertExists(t, "projects", map[string]interface{}{
|
||||
"id": project.ID,
|
||||
"title": project.Title,
|
||||
@ -141,7 +143,7 @@ func TestProject_CreateOrUpdate(t *testing.T) {
|
||||
Title: "test",
|
||||
}
|
||||
err := project.Update(s, usr)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrProjectDoesNotExist(err))
|
||||
_ = s.Close()
|
||||
|
||||
@ -155,7 +157,7 @@ func TestProject_CreateOrUpdate(t *testing.T) {
|
||||
Identifier: "test1",
|
||||
}
|
||||
err := project.Create(s, usr)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrProjectIdentifierIsNotUnique(err))
|
||||
_ = s.Close()
|
||||
})
|
||||
@ -176,12 +178,12 @@ func TestProject_CreateOrUpdate(t *testing.T) {
|
||||
ParentProjectID: 7, // from 6
|
||||
}
|
||||
can, err := project.CanUpdate(s, usr)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.True(t, can)
|
||||
err = project.Update(s, usr)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
db.AssertExists(t, "projects", map[string]interface{}{
|
||||
"id": project.ID,
|
||||
"title": project.Title,
|
||||
@ -218,7 +220,7 @@ func TestProject_CreateOrUpdate(t *testing.T) {
|
||||
ParentProjectID: -1,
|
||||
}
|
||||
err := project.Update(s, usr)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrProjectCannotBelongToAPseudoParentProject(err))
|
||||
})
|
||||
})
|
||||
@ -230,7 +232,7 @@ func TestProject_CreateOrUpdate(t *testing.T) {
|
||||
IsArchived: true,
|
||||
}
|
||||
err := project.Update(s, &user.User{ID: 3})
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrCannotArchiveDefaultProject(err))
|
||||
})
|
||||
t.Run("archive default project of another user", func(t *testing.T) {
|
||||
@ -241,7 +243,7 @@ func TestProject_CreateOrUpdate(t *testing.T) {
|
||||
IsArchived: true,
|
||||
}
|
||||
err := project.Update(s, &user.User{ID: 2})
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrCannotArchiveDefaultProject(err))
|
||||
})
|
||||
})
|
||||
@ -255,9 +257,9 @@ func TestProject_Delete(t *testing.T) {
|
||||
ID: 1,
|
||||
}
|
||||
err := project.Delete(s, &user.User{ID: 1})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
db.AssertMissing(t, "projects", map[string]interface{}{
|
||||
"id": 1,
|
||||
})
|
||||
@ -273,9 +275,9 @@ func TestProject_Delete(t *testing.T) {
|
||||
ID: 35,
|
||||
}
|
||||
err := project.Delete(s, &user.User{ID: 6})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
db.AssertMissing(t, "projects", map[string]interface{}{
|
||||
"id": 35,
|
||||
})
|
||||
@ -290,7 +292,7 @@ func TestProject_Delete(t *testing.T) {
|
||||
ID: 4,
|
||||
}
|
||||
err := project.Delete(s, &user.User{ID: 3})
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrCannotDeleteDefaultProject(err))
|
||||
})
|
||||
t.Run("default project of a different user", func(t *testing.T) {
|
||||
@ -300,7 +302,7 @@ func TestProject_Delete(t *testing.T) {
|
||||
ID: 4,
|
||||
}
|
||||
err := project.Delete(s, &user.User{ID: 2})
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrCannotDeleteDefaultProject(err))
|
||||
})
|
||||
}
|
||||
@ -316,9 +318,9 @@ func TestProject_DeleteBackgroundFileIfExists(t *testing.T) {
|
||||
BackgroundFileID: file.ID,
|
||||
}
|
||||
err := SetProjectBackground(s, project.ID, file, "")
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = project.DeleteBackgroundFileIfExists()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
})
|
||||
t.Run("project with invalid background", func(t *testing.T) {
|
||||
db.LoadAndAssertFixtures(t)
|
||||
@ -330,16 +332,16 @@ func TestProject_DeleteBackgroundFileIfExists(t *testing.T) {
|
||||
BackgroundFileID: file.ID,
|
||||
}
|
||||
err := SetProjectBackground(s, project.ID, file, "")
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = project.DeleteBackgroundFileIfExists()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
})
|
||||
t.Run("project without background", func(t *testing.T) {
|
||||
db.LoadAndAssertFixtures(t)
|
||||
files.InitTestFileFixtures(t)
|
||||
project := Project{ID: 1}
|
||||
err := project.DeleteBackgroundFileIfExists()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
})
|
||||
}
|
||||
|
||||
@ -350,8 +352,8 @@ func TestProject_ReadAll(t *testing.T) {
|
||||
projects := []*Project{}
|
||||
archivedProjects := make(map[int64]bool)
|
||||
_, _, err := getAllProjectsForUser(s, 1, nil, &projectOptions{}, &projects, 0, archivedProjects)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, 24, len(projects))
|
||||
require.NoError(t, err)
|
||||
assert.Len(t, projects, 24)
|
||||
_ = s.Close()
|
||||
})
|
||||
t.Run("only child projects for one project", func(t *testing.T) {
|
||||
@ -364,10 +366,10 @@ func TestProject_ReadAll(t *testing.T) {
|
||||
project := Project{}
|
||||
projects3, _, _, err := project.ReadAll(s, u, "", 1, 50)
|
||||
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, reflect.TypeOf(projects3).Kind(), reflect.Slice)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, reflect.Slice, reflect.TypeOf(projects3).Kind())
|
||||
ls := projects3.([]*Project)
|
||||
assert.Equal(t, 26, len(ls))
|
||||
assert.Len(t, ls, 26)
|
||||
assert.Equal(t, int64(3), ls[0].ID) // Project 3 has a position of 1 and should be sorted first
|
||||
assert.Equal(t, int64(1), ls[1].ID)
|
||||
assert.Equal(t, int64(6), ls[2].ID)
|
||||
@ -381,7 +383,7 @@ func TestProject_ReadAll(t *testing.T) {
|
||||
usr := &user.User{ID: 999999}
|
||||
project := Project{}
|
||||
_, _, _, err := project.ReadAll(s, usr, "", 1, 50)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, user.IsErrUserDoesNotExist(err))
|
||||
_ = s.Close()
|
||||
})
|
||||
@ -392,9 +394,9 @@ func TestProject_ReadAll(t *testing.T) {
|
||||
project := Project{}
|
||||
projects3, _, _, err := project.ReadAll(s, u, "TEST10", 1, 50)
|
||||
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
ls := projects3.([]*Project)
|
||||
assert.Equal(t, 3, len(ls))
|
||||
assert.Len(t, ls, 3)
|
||||
assert.Equal(t, int64(10), ls[0].ID)
|
||||
assert.Equal(t, int64(-1), ls[1].ID)
|
||||
assert.Equal(t, int64(-2), ls[2].ID)
|
||||
@ -411,10 +413,10 @@ func TestProject_ReadOne(t *testing.T) {
|
||||
u := &user.User{ID: 1}
|
||||
l := &Project{ID: 1}
|
||||
can, _, err := l.CanRead(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.True(t, can)
|
||||
err = l.ReadOne(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "Test1", l.Title)
|
||||
})
|
||||
t.Run("with subscription", func(t *testing.T) {
|
||||
@ -425,10 +427,10 @@ func TestProject_ReadOne(t *testing.T) {
|
||||
u := &user.User{ID: 6}
|
||||
l := &Project{ID: 12}
|
||||
can, _, err := l.CanRead(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.True(t, can)
|
||||
err = l.ReadOne(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.NotNil(t, l.Subscription)
|
||||
})
|
||||
}
|
||||
|
@ -25,7 +25,8 @@ import (
|
||||
"code.vikunja.io/api/pkg/db"
|
||||
"code.vikunja.io/api/pkg/user"
|
||||
"code.vikunja.io/web"
|
||||
"github.com/stretchr/testify/assert"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
"gopkg.in/d4l3k/messagediff.v1"
|
||||
)
|
||||
|
||||
@ -130,7 +131,7 @@ func TestProjectUser_Create(t *testing.T) {
|
||||
}
|
||||
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
if !tt.wantErr {
|
||||
db.AssertExists(t, "users_projects", map[string]interface{}{
|
||||
@ -340,7 +341,7 @@ func TestProjectUser_Update(t *testing.T) {
|
||||
}
|
||||
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
if !tt.wantErr {
|
||||
db.AssertExists(t, "users_projects", map[string]interface{}{
|
||||
@ -422,7 +423,7 @@ func TestProjectUser_Delete(t *testing.T) {
|
||||
}
|
||||
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
if !tt.wantErr {
|
||||
db.AssertMissing(t, "users_projects", map[string]interface{}{
|
||||
|
@ -21,7 +21,9 @@ import (
|
||||
|
||||
"code.vikunja.io/api/pkg/db"
|
||||
"code.vikunja.io/api/pkg/user"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
"xorm.io/xorm/schemas"
|
||||
)
|
||||
|
||||
@ -56,10 +58,10 @@ func TestSavedFilter_Create(t *testing.T) {
|
||||
|
||||
u := &user.User{ID: 1}
|
||||
err := sf.Create(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, u.ID, sf.OwnerID)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
vals := map[string]interface{}{
|
||||
"title": "'test'",
|
||||
"description": "'Lorem Ipsum dolor sit amet'",
|
||||
@ -85,9 +87,9 @@ func TestSavedFilter_ReadOne(t *testing.T) {
|
||||
}
|
||||
// canRead pre-populates the struct
|
||||
_, _, err := sf.CanRead(s, user1)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = sf.ReadOne(s, user1)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.NotNil(t, sf.Owner)
|
||||
}
|
||||
|
||||
@ -104,9 +106,9 @@ func TestSavedFilter_Update(t *testing.T) {
|
||||
Filters: &TaskCollection{},
|
||||
}
|
||||
err := sf.Update(s, &user.User{ID: 1})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
db.AssertExists(t, "saved_filters", map[string]interface{}{
|
||||
"id": 1,
|
||||
"title": "NewTitle",
|
||||
@ -124,9 +126,9 @@ func TestSavedFilter_Update(t *testing.T) {
|
||||
Filters: &TaskCollection{},
|
||||
}
|
||||
err := sf.Update(s, &user.User{ID: 1})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
db.AssertExists(t, "saved_filters", map[string]interface{}{
|
||||
"id": 1,
|
||||
"is_favorite": true,
|
||||
@ -143,9 +145,9 @@ func TestSavedFilter_Delete(t *testing.T) {
|
||||
ID: 1,
|
||||
}
|
||||
err := sf.Delete(s, &user.User{ID: 1})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
db.AssertMissing(t, "saved_filters", map[string]interface{}{
|
||||
"id": 1,
|
||||
})
|
||||
@ -163,7 +165,7 @@ func TestSavedFilter_Rights(t *testing.T) {
|
||||
defer s.Close()
|
||||
|
||||
can, err := (&SavedFilter{}).CanCreate(s, user1)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.True(t, can)
|
||||
})
|
||||
t.Run("read", func(t *testing.T) {
|
||||
@ -177,7 +179,7 @@ func TestSavedFilter_Rights(t *testing.T) {
|
||||
Title: "Lorem",
|
||||
}
|
||||
can, max, err := sf.CanRead(s, user1)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, int(RightAdmin), max)
|
||||
assert.True(t, can)
|
||||
})
|
||||
@ -191,7 +193,7 @@ func TestSavedFilter_Rights(t *testing.T) {
|
||||
Title: "Lorem",
|
||||
}
|
||||
can, _, err := sf.CanRead(s, user2)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, can)
|
||||
})
|
||||
t.Run("nonexisting", func(t *testing.T) {
|
||||
@ -204,7 +206,7 @@ func TestSavedFilter_Rights(t *testing.T) {
|
||||
Title: "Lorem",
|
||||
}
|
||||
can, _, err := sf.CanRead(s, user1)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrSavedFilterDoesNotExist(err))
|
||||
assert.False(t, can)
|
||||
})
|
||||
@ -218,7 +220,7 @@ func TestSavedFilter_Rights(t *testing.T) {
|
||||
Title: "Lorem",
|
||||
}
|
||||
can, _, err := sf.CanRead(s, ls)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrSavedFilterNotAvailableForLinkShare(err))
|
||||
assert.False(t, can)
|
||||
})
|
||||
@ -234,7 +236,7 @@ func TestSavedFilter_Rights(t *testing.T) {
|
||||
Title: "Lorem",
|
||||
}
|
||||
can, err := sf.CanUpdate(s, user1)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.True(t, can)
|
||||
})
|
||||
t.Run("not owner", func(t *testing.T) {
|
||||
@ -247,7 +249,7 @@ func TestSavedFilter_Rights(t *testing.T) {
|
||||
Title: "Lorem",
|
||||
}
|
||||
can, err := sf.CanUpdate(s, user2)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, can)
|
||||
})
|
||||
t.Run("nonexisting", func(t *testing.T) {
|
||||
@ -260,7 +262,7 @@ func TestSavedFilter_Rights(t *testing.T) {
|
||||
Title: "Lorem",
|
||||
}
|
||||
can, err := sf.CanUpdate(s, user1)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrSavedFilterDoesNotExist(err))
|
||||
assert.False(t, can)
|
||||
})
|
||||
@ -274,7 +276,7 @@ func TestSavedFilter_Rights(t *testing.T) {
|
||||
Title: "Lorem",
|
||||
}
|
||||
can, err := sf.CanUpdate(s, ls)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrSavedFilterNotAvailableForLinkShare(err))
|
||||
assert.False(t, can)
|
||||
})
|
||||
@ -289,7 +291,7 @@ func TestSavedFilter_Rights(t *testing.T) {
|
||||
ID: 1,
|
||||
}
|
||||
can, err := sf.CanDelete(s, user1)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.True(t, can)
|
||||
})
|
||||
t.Run("not owner", func(t *testing.T) {
|
||||
@ -301,7 +303,7 @@ func TestSavedFilter_Rights(t *testing.T) {
|
||||
ID: 1,
|
||||
}
|
||||
can, err := sf.CanDelete(s, user2)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, can)
|
||||
})
|
||||
t.Run("nonexisting", func(t *testing.T) {
|
||||
@ -314,7 +316,7 @@ func TestSavedFilter_Rights(t *testing.T) {
|
||||
Title: "Lorem",
|
||||
}
|
||||
can, err := sf.CanDelete(s, user1)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrSavedFilterDoesNotExist(err))
|
||||
assert.False(t, can)
|
||||
})
|
||||
@ -328,7 +330,7 @@ func TestSavedFilter_Rights(t *testing.T) {
|
||||
Title: "Lorem",
|
||||
}
|
||||
can, err := sf.CanDelete(s, ls)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrSavedFilterNotAvailableForLinkShare(err))
|
||||
assert.False(t, can)
|
||||
})
|
||||
|
@ -21,7 +21,9 @@ import (
|
||||
|
||||
"code.vikunja.io/api/pkg/db"
|
||||
"code.vikunja.io/api/pkg/user"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestSubscriptionGetTypeFromString(t *testing.T) {
|
||||
@ -54,11 +56,11 @@ func TestSubscription_Create(t *testing.T) {
|
||||
}
|
||||
|
||||
can, err := sb.CanCreate(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.True(t, can)
|
||||
|
||||
err = sb.Create(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.NotNil(t, sb.User)
|
||||
|
||||
db.AssertExists(t, "subscriptions", map[string]interface{}{
|
||||
@ -81,7 +83,7 @@ func TestSubscription_Create(t *testing.T) {
|
||||
}
|
||||
|
||||
can, err := sb.CanCreate(s, linkShare)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.False(t, can)
|
||||
})
|
||||
t.Run("noneixsting project", func(t *testing.T) {
|
||||
@ -96,7 +98,7 @@ func TestSubscription_Create(t *testing.T) {
|
||||
}
|
||||
|
||||
can, err := sb.CanCreate(s, u)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrProjectDoesNotExist(err))
|
||||
assert.False(t, can)
|
||||
})
|
||||
@ -112,7 +114,7 @@ func TestSubscription_Create(t *testing.T) {
|
||||
}
|
||||
|
||||
can, err := sb.CanCreate(s, u)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrTaskDoesNotExist(err))
|
||||
assert.False(t, can)
|
||||
})
|
||||
@ -128,7 +130,7 @@ func TestSubscription_Create(t *testing.T) {
|
||||
}
|
||||
|
||||
can, err := sb.CanCreate(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, can)
|
||||
})
|
||||
t.Run("no rights to see task", func(t *testing.T) {
|
||||
@ -143,7 +145,7 @@ func TestSubscription_Create(t *testing.T) {
|
||||
}
|
||||
|
||||
can, err := sb.CanCreate(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, can)
|
||||
})
|
||||
t.Run("existing subscription for (entity_id, entity_type, user_id) ", func(t *testing.T) {
|
||||
@ -158,11 +160,11 @@ func TestSubscription_Create(t *testing.T) {
|
||||
}
|
||||
|
||||
can, err := sb.CanCreate(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.True(t, can)
|
||||
|
||||
err = sb.Create(s, u)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrSubscriptionAlreadyExists(err))
|
||||
})
|
||||
|
||||
@ -183,11 +185,11 @@ func TestSubscription_Delete(t *testing.T) {
|
||||
}
|
||||
|
||||
can, err := sb.CanDelete(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.True(t, can)
|
||||
|
||||
err = sb.Delete(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
db.AssertMissing(t, "subscriptions", map[string]interface{}{
|
||||
"entity_type": 3,
|
||||
"entity_id": 2,
|
||||
@ -208,7 +210,7 @@ func TestSubscription_Delete(t *testing.T) {
|
||||
}
|
||||
|
||||
can, err := sb.CanDelete(s, linkShare)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.False(t, can)
|
||||
})
|
||||
t.Run("not owner of the subscription", func(t *testing.T) {
|
||||
@ -224,7 +226,7 @@ func TestSubscription_Delete(t *testing.T) {
|
||||
}
|
||||
|
||||
can, err := sb.CanDelete(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, can)
|
||||
})
|
||||
}
|
||||
@ -239,7 +241,7 @@ func TestSubscriptionGet(t *testing.T) {
|
||||
defer s.Close()
|
||||
|
||||
sub, err := GetSubscription(s, SubscriptionEntityProject, 12, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.NotNil(t, sub)
|
||||
assert.Equal(t, int64(3), sub.ID)
|
||||
})
|
||||
@ -249,7 +251,7 @@ func TestSubscriptionGet(t *testing.T) {
|
||||
defer s.Close()
|
||||
|
||||
sub, err := GetSubscription(s, SubscriptionEntityTask, 22, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.NotNil(t, sub)
|
||||
assert.Equal(t, int64(4), sub.ID)
|
||||
})
|
||||
@ -262,7 +264,7 @@ func TestSubscriptionGet(t *testing.T) {
|
||||
|
||||
// Project 25 belongs to project 12 where user 6 has subscribed to
|
||||
sub, err := GetSubscription(s, SubscriptionEntityProject, 25, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.NotNil(t, sub)
|
||||
assert.Equal(t, int64(12), sub.EntityID)
|
||||
assert.Equal(t, int64(3), sub.ID)
|
||||
@ -274,7 +276,7 @@ func TestSubscriptionGet(t *testing.T) {
|
||||
|
||||
// Project 26 belongs to project 25 which belongs to project 12 where user 6 has subscribed to
|
||||
sub, err := GetSubscription(s, SubscriptionEntityProject, 26, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.NotNil(t, sub)
|
||||
assert.Equal(t, int64(12), sub.EntityID)
|
||||
assert.Equal(t, int64(3), sub.ID)
|
||||
@ -286,7 +288,7 @@ func TestSubscriptionGet(t *testing.T) {
|
||||
|
||||
// Task 39 belongs to project 25 which belongs to project 12 where the user has subscribed
|
||||
sub, err := GetSubscription(s, SubscriptionEntityTask, 39, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.NotNil(t, sub)
|
||||
// assert.Equal(t, int64(2), sub.ID) TODO
|
||||
})
|
||||
@ -297,7 +299,7 @@ func TestSubscriptionGet(t *testing.T) {
|
||||
|
||||
// Task 21 belongs to project 32 which the user has subscribed to
|
||||
sub, err := GetSubscription(s, SubscriptionEntityTask, 21, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.NotNil(t, sub)
|
||||
assert.Equal(t, int64(8), sub.ID)
|
||||
})
|
||||
@ -308,7 +310,7 @@ func TestSubscriptionGet(t *testing.T) {
|
||||
defer s.Close()
|
||||
|
||||
_, err := GetSubscription(s, 2342, 21, u)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrUnknownSubscriptionEntityType(err))
|
||||
})
|
||||
}
|
||||
|
@ -26,7 +26,9 @@ import (
|
||||
"code.vikunja.io/api/pkg/db"
|
||||
"code.vikunja.io/api/pkg/files"
|
||||
"code.vikunja.io/api/pkg/user"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestTaskAttachment_ReadOne(t *testing.T) {
|
||||
@ -42,17 +44,17 @@ func TestTaskAttachment_ReadOne(t *testing.T) {
|
||||
ID: 1,
|
||||
}
|
||||
err := ta.ReadOne(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.NotNil(t, ta.File)
|
||||
assert.True(t, ta.File.ID == ta.FileID && ta.FileID != 0)
|
||||
|
||||
// Load the actual attachment file and check its content
|
||||
err = ta.File.LoadFileByID()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, config.FilesBasePath.GetString()+"/1", ta.File.File.Name())
|
||||
content := make([]byte, 9)
|
||||
read, err := ta.File.File.Read(content)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, 9, read)
|
||||
assert.Equal(t, []byte("testfile1"), content)
|
||||
})
|
||||
@ -66,7 +68,7 @@ func TestTaskAttachment_ReadOne(t *testing.T) {
|
||||
ID: 9999,
|
||||
}
|
||||
err := ta.ReadOne(s, u)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrTaskAttachmentDoesNotExist(err))
|
||||
})
|
||||
t.Run("Existing Attachment, Nonexisting File", func(t *testing.T) {
|
||||
@ -79,8 +81,8 @@ func TestTaskAttachment_ReadOne(t *testing.T) {
|
||||
ID: 2,
|
||||
}
|
||||
err := ta.ReadOne(s, u)
|
||||
assert.Error(t, err)
|
||||
assert.EqualError(t, err, "file 9999 does not exist")
|
||||
require.Error(t, err)
|
||||
require.EqualError(t, err, "file 9999 does not exist")
|
||||
})
|
||||
}
|
||||
|
||||
@ -118,17 +120,17 @@ func TestTaskAttachment_NewAttachment(t *testing.T) {
|
||||
testuser := &user.User{ID: 1}
|
||||
|
||||
err := ta.NewAttachment(s, tf, "testfile", 100, testuser)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.NotEqual(t, 0, ta.FileID)
|
||||
_, err = files.FileStat("files/" + strconv.FormatInt(ta.FileID, 10))
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, os.IsNotExist(err))
|
||||
assert.Equal(t, testuser.ID, ta.CreatedByID)
|
||||
|
||||
// Check the file was inserted correctly
|
||||
ta.File = &files.File{ID: ta.FileID}
|
||||
err = ta.File.LoadFileMetaByID()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, testuser.ID, ta.File.CreatedByID)
|
||||
assert.Equal(t, "testfile", ta.File.Name)
|
||||
assert.Equal(t, uint64(100), ta.File.Size)
|
||||
@ -145,7 +147,7 @@ func TestTaskAttachment_ReadAll(t *testing.T) {
|
||||
ta := &TaskAttachment{TaskID: 1}
|
||||
as, _, _, err := ta.ReadAll(s, &user.User{ID: 1}, "", 0, 50)
|
||||
attachments, _ := as.([]*TaskAttachment)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Len(t, attachments, 3)
|
||||
assert.Equal(t, "test", attachments[0].File.Name)
|
||||
for _, a := range attachments {
|
||||
@ -166,7 +168,7 @@ func TestTaskAttachment_Delete(t *testing.T) {
|
||||
t.Run("Normal", func(t *testing.T) {
|
||||
ta := &TaskAttachment{ID: 1}
|
||||
err := ta.Delete(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
// Check if the file itself was deleted
|
||||
_, err = files.FileStat("/1") // The new file has the id 2 since it's the second attachment
|
||||
assert.True(t, os.IsNotExist(err))
|
||||
@ -175,14 +177,14 @@ func TestTaskAttachment_Delete(t *testing.T) {
|
||||
files.InitTestFileFixtures(t)
|
||||
ta := &TaskAttachment{ID: 9999}
|
||||
err := ta.Delete(s, u)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrTaskAttachmentDoesNotExist(err))
|
||||
})
|
||||
t.Run("Existing attachment, nonexisting file", func(t *testing.T) {
|
||||
files.InitTestFileFixtures(t)
|
||||
ta := &TaskAttachment{ID: 2}
|
||||
err := ta.Delete(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
})
|
||||
}
|
||||
|
||||
@ -196,7 +198,7 @@ func TestTaskAttachment_Rights(t *testing.T) {
|
||||
|
||||
ta := &TaskAttachment{TaskID: 1}
|
||||
can, _, err := ta.CanRead(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.True(t, can)
|
||||
})
|
||||
t.Run("Forbidden", func(t *testing.T) {
|
||||
@ -206,7 +208,7 @@ func TestTaskAttachment_Rights(t *testing.T) {
|
||||
|
||||
ta := &TaskAttachment{TaskID: 14}
|
||||
can, _, err := ta.CanRead(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, can)
|
||||
})
|
||||
})
|
||||
@ -218,7 +220,7 @@ func TestTaskAttachment_Rights(t *testing.T) {
|
||||
|
||||
ta := &TaskAttachment{TaskID: 1}
|
||||
can, err := ta.CanDelete(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.True(t, can)
|
||||
})
|
||||
t.Run("Forbidden, no access", func(t *testing.T) {
|
||||
@ -228,7 +230,7 @@ func TestTaskAttachment_Rights(t *testing.T) {
|
||||
|
||||
ta := &TaskAttachment{TaskID: 14}
|
||||
can, err := ta.CanDelete(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, can)
|
||||
})
|
||||
t.Run("Forbidden, shared read only", func(t *testing.T) {
|
||||
@ -238,7 +240,7 @@ func TestTaskAttachment_Rights(t *testing.T) {
|
||||
|
||||
ta := &TaskAttachment{TaskID: 15}
|
||||
can, err := ta.CanDelete(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, can)
|
||||
})
|
||||
})
|
||||
@ -250,7 +252,7 @@ func TestTaskAttachment_Rights(t *testing.T) {
|
||||
|
||||
ta := &TaskAttachment{TaskID: 1}
|
||||
can, err := ta.CanCreate(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.True(t, can)
|
||||
})
|
||||
t.Run("Forbidden, no access", func(t *testing.T) {
|
||||
@ -260,7 +262,7 @@ func TestTaskAttachment_Rights(t *testing.T) {
|
||||
|
||||
ta := &TaskAttachment{TaskID: 14}
|
||||
can, err := ta.CanCreate(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, can)
|
||||
})
|
||||
t.Run("Forbidden, shared read only", func(t *testing.T) {
|
||||
@ -270,7 +272,7 @@ func TestTaskAttachment_Rights(t *testing.T) {
|
||||
|
||||
ta := &TaskAttachment{TaskID: 15}
|
||||
can, err := ta.CanCreate(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, can)
|
||||
})
|
||||
})
|
||||
|
@ -20,6 +20,7 @@ import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestSortParamValidation(t *testing.T) {
|
||||
@ -30,7 +31,7 @@ func TestSortParamValidation(t *testing.T) {
|
||||
sortBy: "id",
|
||||
}
|
||||
err := s.validate()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
})
|
||||
t.Run(orderDescending.String(), func(t *testing.T) {
|
||||
s := &sortParam{
|
||||
@ -38,7 +39,7 @@ func TestSortParamValidation(t *testing.T) {
|
||||
sortBy: "id",
|
||||
}
|
||||
err := s.validate()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
})
|
||||
})
|
||||
t.Run("Test valid sort by", func(t *testing.T) {
|
||||
@ -68,7 +69,7 @@ func TestSortParamValidation(t *testing.T) {
|
||||
sortBy: test,
|
||||
}
|
||||
err := s.validate()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
})
|
||||
}
|
||||
})
|
||||
@ -78,7 +79,7 @@ func TestSortParamValidation(t *testing.T) {
|
||||
sortBy: "id",
|
||||
}
|
||||
err := s.validate()
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrInvalidSortOrder(err))
|
||||
})
|
||||
t.Run("Test invalid sort by", func(t *testing.T) {
|
||||
@ -87,7 +88,7 @@ func TestSortParamValidation(t *testing.T) {
|
||||
sortBy: "somethingInvalid",
|
||||
}
|
||||
err := s.validate()
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrInvalidTaskField(err))
|
||||
})
|
||||
}
|
||||
|
@ -19,11 +19,12 @@ package models
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"code.vikunja.io/api/pkg/events"
|
||||
|
||||
"code.vikunja.io/api/pkg/db"
|
||||
"code.vikunja.io/api/pkg/events"
|
||||
"code.vikunja.io/api/pkg/user"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestTaskComment_Create(t *testing.T) {
|
||||
@ -38,11 +39,11 @@ func TestTaskComment_Create(t *testing.T) {
|
||||
TaskID: 1,
|
||||
}
|
||||
err := tc.Create(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "test", tc.Comment)
|
||||
assert.Equal(t, int64(1), tc.Author.ID)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
events.AssertDispatched(t, &TaskCommentCreatedEvent{})
|
||||
|
||||
db.AssertExists(t, "task_comments", map[string]interface{}{
|
||||
@ -62,7 +63,7 @@ func TestTaskComment_Create(t *testing.T) {
|
||||
TaskID: 99999,
|
||||
}
|
||||
err := tc.Create(s, u)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrTaskDoesNotExist(err))
|
||||
})
|
||||
t.Run("should send notifications for comment mentions", func(t *testing.T) {
|
||||
@ -71,13 +72,13 @@ func TestTaskComment_Create(t *testing.T) {
|
||||
defer s.Close()
|
||||
|
||||
task, err := GetTaskByIDSimple(s, 32)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
tc := &TaskComment{
|
||||
Comment: "Lorem Ipsum @user2",
|
||||
TaskID: 32, // user2 has access to the project that task belongs to
|
||||
}
|
||||
err = tc.Create(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
ev := &TaskCommentCreatedEvent{
|
||||
Task: &task,
|
||||
Doer: u,
|
||||
@ -103,9 +104,9 @@ func TestTaskComment_Delete(t *testing.T) {
|
||||
|
||||
tc := &TaskComment{ID: 1}
|
||||
err := tc.Delete(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
db.AssertMissing(t, "task_comments", map[string]interface{}{
|
||||
"id": 1,
|
||||
@ -118,7 +119,7 @@ func TestTaskComment_Delete(t *testing.T) {
|
||||
|
||||
tc := &TaskComment{ID: 9999}
|
||||
err := tc.Delete(s, u)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrTaskCommentDoesNotExist(err))
|
||||
})
|
||||
t.Run("not the own comment", func(t *testing.T) {
|
||||
@ -128,7 +129,7 @@ func TestTaskComment_Delete(t *testing.T) {
|
||||
|
||||
tc := &TaskComment{ID: 1, TaskID: 1}
|
||||
can, err := tc.CanDelete(s, &user.User{ID: 2})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, can)
|
||||
})
|
||||
}
|
||||
@ -146,9 +147,9 @@ func TestTaskComment_Update(t *testing.T) {
|
||||
Comment: "testing",
|
||||
}
|
||||
err := tc.Update(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
db.AssertExists(t, "task_comments", map[string]interface{}{
|
||||
"id": 1,
|
||||
@ -164,7 +165,7 @@ func TestTaskComment_Update(t *testing.T) {
|
||||
ID: 9999,
|
||||
}
|
||||
err := tc.Update(s, u)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrTaskCommentDoesNotExist(err))
|
||||
})
|
||||
t.Run("not the own comment", func(t *testing.T) {
|
||||
@ -174,7 +175,7 @@ func TestTaskComment_Update(t *testing.T) {
|
||||
|
||||
tc := &TaskComment{ID: 1, TaskID: 1}
|
||||
can, err := tc.CanUpdate(s, &user.User{ID: 2})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, can)
|
||||
})
|
||||
}
|
||||
@ -189,7 +190,7 @@ func TestTaskComment_ReadOne(t *testing.T) {
|
||||
|
||||
tc := &TaskComment{ID: 1, TaskID: 1}
|
||||
err := tc.ReadOne(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "Lorem Ipsum Dolor Sit Amet", tc.Comment)
|
||||
assert.NotEmpty(t, tc.Author.ID)
|
||||
})
|
||||
@ -200,7 +201,7 @@ func TestTaskComment_ReadOne(t *testing.T) {
|
||||
|
||||
tc := &TaskComment{ID: 9999}
|
||||
err := tc.ReadOne(s, u)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrTaskCommentDoesNotExist(err))
|
||||
})
|
||||
}
|
||||
@ -214,7 +215,7 @@ func TestTaskComment_ReadAll(t *testing.T) {
|
||||
tc := &TaskComment{TaskID: 1}
|
||||
u := &user.User{ID: 1}
|
||||
result, resultCount, total, err := tc.ReadAll(s, u, "", 0, -1)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
resultComment := result.([]*TaskComment)
|
||||
assert.Equal(t, 1, resultCount)
|
||||
assert.Equal(t, int64(1), total)
|
||||
@ -230,7 +231,7 @@ func TestTaskComment_ReadAll(t *testing.T) {
|
||||
tc := &TaskComment{TaskID: 14}
|
||||
u := &user.User{ID: 1}
|
||||
_, _, _, err := tc.ReadAll(s, u, "", 0, -1)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrGenericForbidden(err))
|
||||
})
|
||||
t.Run("comment from link share", func(t *testing.T) {
|
||||
@ -241,7 +242,7 @@ func TestTaskComment_ReadAll(t *testing.T) {
|
||||
tc := &TaskComment{TaskID: 35}
|
||||
u := &user.User{ID: 1}
|
||||
result, _, _, err := tc.ReadAll(s, u, "", 0, -1)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
comments := result.([]*TaskComment)
|
||||
assert.Len(t, comments, 2)
|
||||
var foundComment bool
|
||||
@ -261,7 +262,7 @@ func TestTaskComment_ReadAll(t *testing.T) {
|
||||
tc := &TaskComment{TaskID: 35}
|
||||
u := &user.User{ID: 1}
|
||||
result, _, _, err := tc.ReadAll(s, u, "COMMENT 15", 0, -1)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
resultComment := result.([]*TaskComment)
|
||||
assert.Equal(t, int64(15), resultComment[0].ID)
|
||||
})
|
||||
|
@ -22,6 +22,7 @@ import (
|
||||
|
||||
"code.vikunja.io/api/pkg/db"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestGetUndoneOverDueTasks(t *testing.T) {
|
||||
@ -31,10 +32,10 @@ func TestGetUndoneOverDueTasks(t *testing.T) {
|
||||
defer s.Close()
|
||||
|
||||
now, err := time.Parse(time.RFC3339Nano, "2018-01-01T01:13:00Z")
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
tasks, err := getUndoneOverdueTasks(s, now)
|
||||
assert.NoError(t, err)
|
||||
assert.Len(t, tasks, 0)
|
||||
require.NoError(t, err)
|
||||
assert.Empty(t, tasks)
|
||||
})
|
||||
t.Run("undone overdue", func(t *testing.T) {
|
||||
db.LoadAndAssertFixtures(t)
|
||||
@ -42,9 +43,9 @@ func TestGetUndoneOverDueTasks(t *testing.T) {
|
||||
defer s.Close()
|
||||
|
||||
now, err := time.Parse(time.RFC3339Nano, "2018-12-01T09:00:00Z")
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
uts, err := getUndoneOverdueTasks(s, now)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Len(t, uts, 1)
|
||||
assert.Len(t, uts[1].tasks, 2)
|
||||
// The tasks don't always have the same order, so we only check their presence, not their position.
|
||||
@ -67,9 +68,9 @@ func TestGetUndoneOverDueTasks(t *testing.T) {
|
||||
defer s.Close()
|
||||
|
||||
now, err := time.Parse(time.RFC3339Nano, "2018-11-01T01:13:00Z")
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
tasks, err := getUndoneOverdueTasks(s, now)
|
||||
assert.NoError(t, err)
|
||||
assert.Len(t, tasks, 0)
|
||||
require.NoError(t, err)
|
||||
assert.Empty(t, tasks)
|
||||
})
|
||||
}
|
||||
|
@ -21,7 +21,9 @@ import (
|
||||
|
||||
"code.vikunja.io/api/pkg/db"
|
||||
"code.vikunja.io/api/pkg/user"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestTaskRelation_Create(t *testing.T) {
|
||||
@ -36,9 +38,9 @@ func TestTaskRelation_Create(t *testing.T) {
|
||||
RelationKind: RelationKindSubtask,
|
||||
}
|
||||
err := rel.Create(s, &user.User{ID: 1})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
db.AssertExists(t, "task_relations", map[string]interface{}{
|
||||
"task_id": 1,
|
||||
"other_task_id": 2,
|
||||
@ -57,9 +59,9 @@ func TestTaskRelation_Create(t *testing.T) {
|
||||
RelationKind: RelationKindSubtask,
|
||||
}
|
||||
err := rel.Create(s, &user.User{ID: 1})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
db.AssertExists(t, "task_relations", map[string]interface{}{
|
||||
"task_id": 1,
|
||||
"other_task_id": 13,
|
||||
@ -78,7 +80,7 @@ func TestTaskRelation_Create(t *testing.T) {
|
||||
RelationKind: RelationKindSubtask,
|
||||
}
|
||||
err := rel.Create(s, &user.User{ID: 1})
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrRelationAlreadyExists(err))
|
||||
})
|
||||
t.Run("Same Task", func(t *testing.T) {
|
||||
@ -91,7 +93,7 @@ func TestTaskRelation_Create(t *testing.T) {
|
||||
OtherTaskID: 1,
|
||||
}
|
||||
err := rel.Create(s, &user.User{ID: 1})
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrRelationTasksCannotBeTheSame(err))
|
||||
})
|
||||
}
|
||||
@ -110,9 +112,9 @@ func TestTaskRelation_Delete(t *testing.T) {
|
||||
RelationKind: RelationKindSubtask,
|
||||
}
|
||||
err := rel.Delete(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
db.AssertMissing(t, "task_relations", map[string]interface{}{
|
||||
"task_id": 1,
|
||||
"other_task_id": 29,
|
||||
@ -135,7 +137,7 @@ func TestTaskRelation_Delete(t *testing.T) {
|
||||
RelationKind: RelationKindSubtask,
|
||||
}
|
||||
err := rel.Delete(s, u)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrRelationDoesNotExist(err))
|
||||
})
|
||||
}
|
||||
@ -152,7 +154,7 @@ func TestTaskRelation_CanCreate(t *testing.T) {
|
||||
RelationKind: RelationKindSubtask,
|
||||
}
|
||||
can, err := rel.CanCreate(s, &user.User{ID: 1})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.True(t, can)
|
||||
})
|
||||
t.Run("Two tasks on different projects", func(t *testing.T) {
|
||||
@ -166,7 +168,7 @@ func TestTaskRelation_CanCreate(t *testing.T) {
|
||||
RelationKind: RelationKindSubtask,
|
||||
}
|
||||
can, err := rel.CanCreate(s, &user.User{ID: 1})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.True(t, can)
|
||||
})
|
||||
t.Run("No update rights on base task", func(t *testing.T) {
|
||||
@ -180,7 +182,7 @@ func TestTaskRelation_CanCreate(t *testing.T) {
|
||||
RelationKind: RelationKindSubtask,
|
||||
}
|
||||
can, err := rel.CanCreate(s, &user.User{ID: 1})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, can)
|
||||
})
|
||||
t.Run("No update rights on base task, but read rights", func(t *testing.T) {
|
||||
@ -194,7 +196,7 @@ func TestTaskRelation_CanCreate(t *testing.T) {
|
||||
RelationKind: RelationKindSubtask,
|
||||
}
|
||||
can, err := rel.CanCreate(s, &user.User{ID: 1})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, can)
|
||||
})
|
||||
t.Run("No read rights on other task", func(t *testing.T) {
|
||||
@ -208,7 +210,7 @@ func TestTaskRelation_CanCreate(t *testing.T) {
|
||||
RelationKind: RelationKindSubtask,
|
||||
}
|
||||
can, err := rel.CanCreate(s, &user.User{ID: 1})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, can)
|
||||
})
|
||||
t.Run("Nonexisting base task", func(t *testing.T) {
|
||||
@ -222,7 +224,7 @@ func TestTaskRelation_CanCreate(t *testing.T) {
|
||||
RelationKind: RelationKindSubtask,
|
||||
}
|
||||
can, err := rel.CanCreate(s, &user.User{ID: 1})
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrTaskDoesNotExist(err))
|
||||
assert.False(t, can)
|
||||
})
|
||||
@ -237,7 +239,7 @@ func TestTaskRelation_CanCreate(t *testing.T) {
|
||||
RelationKind: RelationKindSubtask,
|
||||
}
|
||||
can, err := rel.CanCreate(s, &user.User{ID: 1})
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrTaskDoesNotExist(err))
|
||||
assert.False(t, can)
|
||||
})
|
||||
|
@ -21,7 +21,9 @@ import (
|
||||
"time"
|
||||
|
||||
"code.vikunja.io/api/pkg/db"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestReminderGetTasksInTheNextMinute(t *testing.T) {
|
||||
@ -31,9 +33,9 @@ func TestReminderGetTasksInTheNextMinute(t *testing.T) {
|
||||
defer s.Close()
|
||||
|
||||
now, err := time.Parse(time.RFC3339Nano, "2018-12-01T01:12:00Z")
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
notifications, err := getTasksWithRemindersDueAndTheirUsers(s, now)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Len(t, notifications, 1)
|
||||
assert.Equal(t, int64(27), notifications[0].Task.ID)
|
||||
})
|
||||
@ -43,9 +45,9 @@ func TestReminderGetTasksInTheNextMinute(t *testing.T) {
|
||||
defer s.Close()
|
||||
|
||||
now, err := time.Parse(time.RFC3339Nano, "2018-12-02T01:13:00Z")
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
taskIDs, err := getTasksWithRemindersDueAndTheirUsers(s, now)
|
||||
assert.NoError(t, err)
|
||||
assert.Len(t, taskIDs, 0)
|
||||
require.NoError(t, err)
|
||||
assert.Empty(t, taskIDs)
|
||||
})
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ import (
|
||||
"code.vikunja.io/api/pkg/user"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
"xorm.io/builder"
|
||||
)
|
||||
|
||||
@ -48,7 +49,7 @@ func TestTask_Create(t *testing.T) {
|
||||
ProjectID: 1,
|
||||
}
|
||||
err := task.Create(s, usr)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
// Assert getting a uid
|
||||
assert.NotEmpty(t, task.UID)
|
||||
// Assert getting a new index
|
||||
@ -57,7 +58,7 @@ func TestTask_Create(t *testing.T) {
|
||||
// Assert moving it into the default bucket
|
||||
assert.Equal(t, int64(1), task.BucketID)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
db.AssertExists(t, "tasks", map[string]interface{}{
|
||||
"id": task.ID,
|
||||
@ -100,7 +101,7 @@ func TestTask_Create(t *testing.T) {
|
||||
},
|
||||
}}
|
||||
err := task.Create(s, usr)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, time.Date(2023, time.March, 7, 22, 5, 1, 0, time.Local), task.Reminders[0].Reminder)
|
||||
assert.Equal(t, int64(1), task.Reminders[0].RelativePeriod)
|
||||
assert.Equal(t, ReminderRelationDueDate, task.Reminders[0].RelativeTo)
|
||||
@ -110,7 +111,7 @@ func TestTask_Create(t *testing.T) {
|
||||
assert.Equal(t, ReminderRelationEndDate, task.Reminders[2].RelativeTo)
|
||||
assert.Equal(t, time.Date(2023, time.March, 7, 23, 0, 0, 0, time.Local), task.Reminders[3].Reminder)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
})
|
||||
t.Run("empty title", func(t *testing.T) {
|
||||
db.LoadAndAssertFixtures(t)
|
||||
@ -123,7 +124,7 @@ func TestTask_Create(t *testing.T) {
|
||||
ProjectID: 1,
|
||||
}
|
||||
err := task.Create(s, usr)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrTaskCannotBeEmpty(err))
|
||||
})
|
||||
t.Run("nonexistant project", func(t *testing.T) {
|
||||
@ -137,7 +138,7 @@ func TestTask_Create(t *testing.T) {
|
||||
ProjectID: 9999999,
|
||||
}
|
||||
err := task.Create(s, usr)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrProjectDoesNotExist(err))
|
||||
})
|
||||
t.Run("nonexistant user", func(t *testing.T) {
|
||||
@ -152,7 +153,7 @@ func TestTask_Create(t *testing.T) {
|
||||
ProjectID: 1,
|
||||
}
|
||||
err := task.Create(s, nUser)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, user.IsErrUserDoesNotExist(err))
|
||||
})
|
||||
t.Run("full bucket", func(t *testing.T) {
|
||||
@ -167,7 +168,7 @@ func TestTask_Create(t *testing.T) {
|
||||
BucketID: 2, // Bucket 2 already has 3 tasks and a limit of 3
|
||||
}
|
||||
err := task.Create(s, usr)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrBucketLimitExceeded(err))
|
||||
})
|
||||
t.Run("default bucket different", func(t *testing.T) {
|
||||
@ -181,7 +182,7 @@ func TestTask_Create(t *testing.T) {
|
||||
ProjectID: 6,
|
||||
}
|
||||
err := task.Create(s, usr)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
db.AssertExists(t, "tasks", map[string]interface{}{
|
||||
"id": task.ID,
|
||||
"bucket_id": 22, // default bucket of project 6 but with a position of 2
|
||||
@ -204,9 +205,9 @@ func TestTask_Update(t *testing.T) {
|
||||
ProjectID: 1,
|
||||
}
|
||||
err := task.Update(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
db.AssertExists(t, "tasks", map[string]interface{}{
|
||||
"id": 1,
|
||||
@ -227,7 +228,7 @@ func TestTask_Update(t *testing.T) {
|
||||
ProjectID: 1,
|
||||
}
|
||||
err := task.Update(s, u)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrTaskDoesNotExist(err))
|
||||
})
|
||||
t.Run("full bucket", func(t *testing.T) {
|
||||
@ -243,7 +244,7 @@ func TestTask_Update(t *testing.T) {
|
||||
BucketID: 2, // Bucket 2 already has 3 tasks and a limit of 3
|
||||
}
|
||||
err := task.Update(s, u)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrBucketLimitExceeded(err))
|
||||
})
|
||||
t.Run("full bucket but not changing the bucket", func(t *testing.T) {
|
||||
@ -260,7 +261,7 @@ func TestTask_Update(t *testing.T) {
|
||||
BucketID: 2, // Bucket 2 already has 3 tasks and a limit of 3
|
||||
}
|
||||
err := task.Update(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
})
|
||||
t.Run("bucket on other project", func(t *testing.T) {
|
||||
db.LoadAndAssertFixtures(t)
|
||||
@ -275,7 +276,7 @@ func TestTask_Update(t *testing.T) {
|
||||
BucketID: 4, // Bucket 4 belongs to project 2
|
||||
}
|
||||
err := task.Update(s, u)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrBucketDoesNotBelongToProject(err))
|
||||
})
|
||||
t.Run("moving a task to the done bucket", func(t *testing.T) {
|
||||
@ -290,9 +291,9 @@ func TestTask_Update(t *testing.T) {
|
||||
BucketID: 3, // Bucket 3 is the done bucket
|
||||
}
|
||||
err := task.Update(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.True(t, task.Done)
|
||||
|
||||
db.AssertExists(t, "tasks", map[string]interface{}{
|
||||
@ -316,9 +317,9 @@ func TestTask_Update(t *testing.T) {
|
||||
RepeatAfter: 3600,
|
||||
}
|
||||
err := task.Update(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, task.Done)
|
||||
assert.Equal(t, int64(1), task.BucketID) // Bucket should not be updated
|
||||
|
||||
@ -340,9 +341,9 @@ func TestTask_Update(t *testing.T) {
|
||||
ProjectID: 2,
|
||||
}
|
||||
err := task.Update(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, int64(4), task.BucketID) // bucket 4 is the default bucket on project 2
|
||||
assert.True(t, task.Done) // bucket 4 is the done bucket, so the task should be marked as done as well
|
||||
@ -357,9 +358,9 @@ func TestTask_Update(t *testing.T) {
|
||||
Done: true,
|
||||
}
|
||||
err := task.Update(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.True(t, task.Done)
|
||||
assert.Equal(t, int64(3), task.BucketID)
|
||||
|
||||
@ -379,9 +380,9 @@ func TestTask_Update(t *testing.T) {
|
||||
ProjectID: 2,
|
||||
}
|
||||
err := task.Update(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
db.AssertExists(t, "tasks", map[string]interface{}{
|
||||
"id": 1,
|
||||
@ -400,9 +401,9 @@ func TestTask_Update(t *testing.T) {
|
||||
RepeatAfter: 3600,
|
||||
}
|
||||
err := task.Update(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, task.Done)
|
||||
assert.Equal(t, int64(1), task.BucketID)
|
||||
|
||||
@ -422,9 +423,9 @@ func TestTask_Update(t *testing.T) {
|
||||
ProjectID: 2, // From project 1
|
||||
}
|
||||
err := task.Update(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, int64(3), task.Index)
|
||||
})
|
||||
|
||||
@ -458,7 +459,7 @@ func TestTask_Update(t *testing.T) {
|
||||
},
|
||||
}}
|
||||
err := task.Update(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, time.Date(2023, time.March, 7, 22, 5, 1, 0, time.Local), task.Reminders[0].Reminder)
|
||||
assert.Equal(t, int64(1), task.Reminders[0].RelativePeriod)
|
||||
assert.Equal(t, ReminderRelationDueDate, task.Reminders[0].RelativeTo)
|
||||
@ -468,7 +469,7 @@ func TestTask_Update(t *testing.T) {
|
||||
assert.Equal(t, ReminderRelationEndDate, task.Reminders[2].RelativeTo)
|
||||
assert.Equal(t, time.Date(2023, time.March, 7, 23, 0, 0, 0, time.Local), task.Reminders[3].Reminder)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
db.AssertCount(t, "task_reminders", builder.Eq{"task_id": 1}, 4)
|
||||
})
|
||||
t.Run("the same reminder multiple times should be saved once", func(t *testing.T) {
|
||||
@ -490,9 +491,9 @@ func TestTask_Update(t *testing.T) {
|
||||
ProjectID: 1,
|
||||
}
|
||||
err := task.Update(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
db.AssertCount(t, "task_reminders", builder.Eq{"task_id": 1}, 1)
|
||||
})
|
||||
t.Run("update relative reminder when start_date changes", func(t *testing.T) {
|
||||
@ -512,21 +513,21 @@ func TestTask_Update(t *testing.T) {
|
||||
},
|
||||
}}
|
||||
err := taskBefore.Create(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, time.Date(2022, time.March, 8, 8, 4, 20, 0, time.Local), taskBefore.Reminders[0].Reminder)
|
||||
|
||||
// when start_date is modified
|
||||
task := taskBefore
|
||||
task.StartDate = time.Date(2023, time.March, 8, 8, 5, 0, 0, time.Local)
|
||||
err = task.Update(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// then reminder time is updated
|
||||
assert.Equal(t, time.Date(2023, time.March, 8, 8, 4, 0, 0, time.Local), task.Reminders[0].Reminder)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
})
|
||||
}
|
||||
|
||||
@ -540,9 +541,9 @@ func TestTask_Delete(t *testing.T) {
|
||||
ID: 1,
|
||||
}
|
||||
err := task.Delete(s, &user.User{ID: 1})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
db.AssertMissing(t, "tasks", map[string]interface{}{
|
||||
"id": 1,
|
||||
@ -920,7 +921,7 @@ func TestTask_ReadOne(t *testing.T) {
|
||||
|
||||
task := &Task{ID: 1}
|
||||
err := task.ReadOne(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "task #1", task.Title)
|
||||
})
|
||||
t.Run("nonexisting", func(t *testing.T) {
|
||||
@ -930,7 +931,7 @@ func TestTask_ReadOne(t *testing.T) {
|
||||
|
||||
task := &Task{ID: 99999}
|
||||
err := task.ReadOne(s, u)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrTaskDoesNotExist(err))
|
||||
})
|
||||
t.Run("with subscription", func(t *testing.T) {
|
||||
@ -940,7 +941,7 @@ func TestTask_ReadOne(t *testing.T) {
|
||||
|
||||
task := &Task{ID: 22}
|
||||
err := task.ReadOne(s, &user.User{ID: 6})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.NotNil(t, task.Subscription)
|
||||
})
|
||||
t.Run("created by link share", func(t *testing.T) {
|
||||
@ -950,7 +951,7 @@ func TestTask_ReadOne(t *testing.T) {
|
||||
|
||||
task := &Task{ID: 37}
|
||||
err := task.ReadOne(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "task #37", task.Title)
|
||||
assert.Equal(t, int64(-2), task.CreatedByID)
|
||||
assert.NotNil(t, task.CreatedBy)
|
||||
@ -963,7 +964,7 @@ func TestTask_ReadOne(t *testing.T) {
|
||||
|
||||
task := &Task{ID: 1}
|
||||
err := task.ReadOne(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.True(t, task.IsFavorite)
|
||||
})
|
||||
t.Run("favorite for a different user", func(t *testing.T) {
|
||||
@ -973,7 +974,7 @@ func TestTask_ReadOne(t *testing.T) {
|
||||
|
||||
task := &Task{ID: 1}
|
||||
err := task.ReadOne(s, &user.User{ID: 2})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, task.IsFavorite)
|
||||
})
|
||||
}
|
||||
|
@ -21,7 +21,9 @@ import (
|
||||
|
||||
"code.vikunja.io/api/pkg/db"
|
||||
"code.vikunja.io/api/pkg/user"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestTeamMember_Create(t *testing.T) {
|
||||
@ -40,9 +42,9 @@ func TestTeamMember_Create(t *testing.T) {
|
||||
Username: "user3",
|
||||
}
|
||||
err := tm.Create(s, doer)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
db.AssertExists(t, "team_members", map[string]interface{}{
|
||||
"id": tm.ID,
|
||||
@ -60,7 +62,7 @@ func TestTeamMember_Create(t *testing.T) {
|
||||
Username: "user1",
|
||||
}
|
||||
err := tm.Create(s, doer)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrUserIsMemberOfTeam(err))
|
||||
})
|
||||
t.Run("nonexisting user", func(t *testing.T) {
|
||||
@ -73,7 +75,7 @@ func TestTeamMember_Create(t *testing.T) {
|
||||
Username: "nonexistinguser",
|
||||
}
|
||||
err := tm.Create(s, doer)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, user.IsErrUserDoesNotExist(err))
|
||||
})
|
||||
t.Run("nonexisting team", func(t *testing.T) {
|
||||
@ -86,7 +88,7 @@ func TestTeamMember_Create(t *testing.T) {
|
||||
Username: "user1",
|
||||
}
|
||||
err := tm.Create(s, doer)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrTeamDoesNotExist(err))
|
||||
})
|
||||
}
|
||||
@ -102,9 +104,9 @@ func TestTeamMember_Delete(t *testing.T) {
|
||||
Username: "user1",
|
||||
}
|
||||
err := tm.Delete(s, &user.User{ID: 1})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
db.AssertMissing(t, "team_members", map[string]interface{}{
|
||||
"team_id": 1,
|
||||
@ -127,10 +129,10 @@ func TestTeamMember_Update(t *testing.T) {
|
||||
Admin: true,
|
||||
}
|
||||
err := tm.Update(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, tm.Admin) // Since this endpoint toggles the right, we should get a false for admin back.
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
db.AssertExists(t, "team_members", map[string]interface{}{
|
||||
"team_id": 1,
|
||||
@ -151,10 +153,10 @@ func TestTeamMember_Update(t *testing.T) {
|
||||
Admin: true,
|
||||
}
|
||||
err := tm.Update(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, tm.Admin)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
db.AssertExists(t, "team_members", map[string]interface{}{
|
||||
"team_id": 1,
|
||||
|
@ -22,7 +22,9 @@ import (
|
||||
|
||||
"code.vikunja.io/api/pkg/db"
|
||||
"code.vikunja.io/api/pkg/user"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestTeam_Create(t *testing.T) {
|
||||
@ -40,9 +42,9 @@ func TestTeam_Create(t *testing.T) {
|
||||
Description: "Lorem Ispum",
|
||||
}
|
||||
err := team.Create(s, doer)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
db.AssertExists(t, "teams", map[string]interface{}{
|
||||
"id": team.ID,
|
||||
"name": "Testteam293",
|
||||
@ -56,7 +58,7 @@ func TestTeam_Create(t *testing.T) {
|
||||
|
||||
team := &Team{}
|
||||
err := team.Create(s, doer)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrTeamNameCannotBeEmpty(err))
|
||||
})
|
||||
}
|
||||
@ -71,7 +73,7 @@ func TestTeam_ReadOne(t *testing.T) {
|
||||
|
||||
team := &Team{ID: 1}
|
||||
err := team.ReadOne(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "testteam1", team.Name)
|
||||
assert.Equal(t, "Lorem Ipsum", team.Description)
|
||||
assert.Equal(t, int64(1), team.CreatedBy.ID)
|
||||
@ -84,7 +86,7 @@ func TestTeam_ReadOne(t *testing.T) {
|
||||
|
||||
team := &Team{ID: -1}
|
||||
err := team.ReadOne(s, u)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrTeamDoesNotExist(err))
|
||||
})
|
||||
t.Run("nonexisting", func(t *testing.T) {
|
||||
@ -94,7 +96,7 @@ func TestTeam_ReadOne(t *testing.T) {
|
||||
|
||||
team := &Team{ID: 99999}
|
||||
err := team.ReadOne(s, u)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrTeamDoesNotExist(err))
|
||||
})
|
||||
}
|
||||
@ -107,8 +109,8 @@ func TestTeam_ReadAll(t *testing.T) {
|
||||
|
||||
team := &Team{}
|
||||
teams, _, _, err := team.ReadAll(s, doer, "", 1, 50)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, reflect.TypeOf(teams).Kind(), reflect.Slice)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, reflect.Slice, reflect.TypeOf(teams).Kind())
|
||||
ts := reflect.ValueOf(teams)
|
||||
assert.Equal(t, 5, ts.Len())
|
||||
})
|
||||
@ -118,8 +120,8 @@ func TestTeam_ReadAll(t *testing.T) {
|
||||
|
||||
team := &Team{}
|
||||
teams, _, _, err := team.ReadAll(s, doer, "READ_only_on_project6", 1, 50)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, reflect.TypeOf(teams).Kind(), reflect.Slice)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, reflect.Slice, reflect.TypeOf(teams).Kind())
|
||||
ts := teams.([]*Team)
|
||||
assert.Len(t, ts, 1)
|
||||
assert.Equal(t, int64(2), ts[0].ID)
|
||||
@ -139,9 +141,9 @@ func TestTeam_Update(t *testing.T) {
|
||||
Name: "SomethingNew",
|
||||
}
|
||||
err := team.Update(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
db.AssertExists(t, "teams", map[string]interface{}{
|
||||
"id": team.ID,
|
||||
"name": "SomethingNew",
|
||||
@ -157,7 +159,7 @@ func TestTeam_Update(t *testing.T) {
|
||||
Name: "",
|
||||
}
|
||||
err := team.Update(s, u)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrTeamNameCannotBeEmpty(err))
|
||||
})
|
||||
t.Run("nonexisting", func(t *testing.T) {
|
||||
@ -170,7 +172,7 @@ func TestTeam_Update(t *testing.T) {
|
||||
Name: "SomethingNew",
|
||||
}
|
||||
err := team.Update(s, u)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrTeamDoesNotExist(err))
|
||||
})
|
||||
}
|
||||
@ -187,9 +189,9 @@ func TestTeam_Delete(t *testing.T) {
|
||||
ID: 1,
|
||||
}
|
||||
err := team.Delete(s, u)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
db.AssertMissing(t, "teams", map[string]interface{}{
|
||||
"id": 1,
|
||||
})
|
||||
@ -197,13 +199,13 @@ func TestTeam_Delete(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestIsErrInvalidRight(t *testing.T) {
|
||||
assert.NoError(t, RightAdmin.isValid())
|
||||
assert.NoError(t, RightRead.isValid())
|
||||
assert.NoError(t, RightWrite.isValid())
|
||||
require.NoError(t, RightAdmin.isValid())
|
||||
require.NoError(t, RightRead.isValid())
|
||||
require.NoError(t, RightWrite.isValid())
|
||||
|
||||
// Check invalid
|
||||
var tr Right = 938
|
||||
err := tr.isValid()
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.True(t, IsErrInvalidRight(err))
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ import (
|
||||
"code.vikunja.io/api/pkg/notifications"
|
||||
"code.vikunja.io/api/pkg/user"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestDeleteUser(t *testing.T) {
|
||||
@ -36,7 +36,7 @@ func TestDeleteUser(t *testing.T) {
|
||||
u := &user.User{ID: 6}
|
||||
err := DeleteUser(s, u)
|
||||
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
db.AssertMissing(t, "users", map[string]interface{}{"id": u.ID})
|
||||
db.AssertMissing(t, "projects", map[string]interface{}{"id": 24}) // only user6 had access to this project
|
||||
db.AssertExists(t, "projects", map[string]interface{}{"id": 6}, false)
|
||||
@ -55,7 +55,7 @@ func TestDeleteUser(t *testing.T) {
|
||||
u := &user.User{ID: 4}
|
||||
err := DeleteUser(s, u)
|
||||
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
// No assertions for deleted projects since that user doesn't have any
|
||||
})
|
||||
t.Run("user with a default project", func(t *testing.T) {
|
||||
@ -67,7 +67,7 @@ func TestDeleteUser(t *testing.T) {
|
||||
u := &user.User{ID: 16}
|
||||
err := DeleteUser(s, u)
|
||||
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
db.AssertMissing(t, "users", map[string]interface{}{"id": u.ID})
|
||||
db.AssertMissing(t, "projects", map[string]interface{}{"id": 37}) // only user16 had access to this project, and it was their default
|
||||
})
|
||||
|
Reference in New Issue
Block a user