test: add web integration tests for task duplication

This commit is contained in:
kolaente 2026-03-04 16:03:02 +01:00
parent 77fdf1b84b
commit 4d494ba442
1 changed files with 36 additions and 0 deletions

View File

@ -483,3 +483,39 @@ func TestTask(t *testing.T) {
})
})
}
func TestTaskDuplicate(t *testing.T) {
testHandler := webHandlerTest{
user: &testuser1,
strFunc: func() handler.CObject {
return &models.TaskDuplicate{}
},
t: t,
}
t.Run("duplicate task", func(t *testing.T) {
rec, err := testHandler.testCreateWithUser(nil, map[string]string{"projecttask": "2"}, `{}`)
require.NoError(t, err)
assert.Contains(t, rec.Body.String(), `"title":"task #2 done"`)
assert.Contains(t, rec.Body.String(), `"duplicated_task"`)
})
t.Run("nonexistent task", func(t *testing.T) {
_, err := testHandler.testCreateWithUser(nil, map[string]string{"projecttask": "99999"}, `{}`)
require.Error(t, err)
assertHandlerErrorCode(t, err, models.ErrCodeTaskDoesNotExist)
})
t.Run("no permission", func(t *testing.T) {
noAccessHandler := webHandlerTest{
user: &testuser15,
strFunc: func() handler.CObject {
return &models.TaskDuplicate{}
},
t: t,
}
_, err := noAccessHandler.testCreateWithUser(nil, map[string]string{"projecttask": "1"}, `{}`)
require.Error(t, err)
assert.Contains(t, getHTTPErrorMessage(err), "Forbidden")
})
}