1
0

chore(deps): update golangci-lint rules

This commit is contained in:
kolaente
2023-12-19 13:34:31 +01:00
parent 48a173a563
commit c05f51b923
60 changed files with 999 additions and 921 deletions

View File

@ -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))
})
}

View File

@ -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,

View File

@ -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)

View File

@ -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)
})
}

View File

@ -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.

View File

@ -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,

View File

@ -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)
})
}

View File

@ -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{}{

View File

@ -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)
})

View File

@ -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))
})
}

View File

@ -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)
})
})

View File

@ -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))
})
}

View File

@ -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)
})

View File

@ -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)
})
}

View File

@ -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)
})

View File

@ -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)
})
}

View File

@ -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)
})
}

View File

@ -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,

View File

@ -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))
}

View File

@ -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
})