1
0

feat(projects): don't allow deleting or archiving the default project

This commit is contained in:
kolaente
2023-06-07 21:29:46 +02:00
parent ad0690369f
commit ef94e0cf86
10 changed files with 143 additions and 11 deletions

View File

@ -219,6 +219,28 @@ func TestProject_CreateOrUpdate(t *testing.T) {
assert.True(t, IsErrProjectCannotBelongToAPseudoParentProject(err))
})
})
t.Run("archive default project of the same user", func(t *testing.T) {
db.LoadAndAssertFixtures(t)
s := db.NewSession()
project := Project{
ID: 4,
IsArchived: true,
}
err := project.Update(s, &user.User{ID: 3})
assert.Error(t, err)
assert.True(t, IsErrCannotArchiveDefaultProject(err))
})
t.Run("archive default project of another user", func(t *testing.T) {
db.LoadAndAssertFixtures(t)
s := db.NewSession()
project := Project{
ID: 4,
IsArchived: true,
}
err := project.Update(s, &user.User{ID: 2})
assert.Error(t, err)
assert.True(t, IsErrCannotArchiveDefaultProject(err))
})
})
}
@ -255,6 +277,26 @@ func TestProject_Delete(t *testing.T) {
"id": 1,
})
})
t.Run("default project of the same user", func(t *testing.T) {
db.LoadAndAssertFixtures(t)
s := db.NewSession()
project := Project{
ID: 4,
}
err := project.Delete(s, &user.User{ID: 3})
assert.Error(t, err)
assert.True(t, IsErrCannotDeleteDefaultProject(err))
})
t.Run("default project of a different user", func(t *testing.T) {
db.LoadAndAssertFixtures(t)
s := db.NewSession()
project := Project{
ID: 4,
}
err := project.Delete(s, &user.User{ID: 2})
assert.Error(t, err)
assert.True(t, IsErrCannotDeleteDefaultProject(err))
})
}
func TestProject_DeleteBackgroundFileIfExists(t *testing.T) {