test(templates): add web tests for template filtering and save-as-template
This commit is contained in:
parent
d7f196be75
commit
692a6d623d
|
|
@ -94,6 +94,20 @@ func TestProject(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
t.Run("Templates excluded by default", func(t *testing.T) {
|
||||||
|
rec, err := testHandler.testReadAllWithUser(nil, nil)
|
||||||
|
require.NoError(t, err)
|
||||||
|
assert.NotContains(t, rec.Body.String(), `"is_template":true`)
|
||||||
|
assert.NotContains(t, rec.Body.String(), `Template Project`)
|
||||||
|
assert.NotContains(t, rec.Body.String(), `Shared Template`)
|
||||||
|
})
|
||||||
|
t.Run("Templates only", func(t *testing.T) {
|
||||||
|
rec, err := testHandler.testReadAllWithUser(url.Values{"is_template": []string{"true"}}, nil)
|
||||||
|
require.NoError(t, err)
|
||||||
|
assert.Contains(t, rec.Body.String(), `Template Project`)
|
||||||
|
assert.Contains(t, rec.Body.String(), `Shared Template`)
|
||||||
|
assert.NotContains(t, rec.Body.String(), `"title":"Test1"`)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
t.Run("ReadOne", func(t *testing.T) {
|
t.Run("ReadOne", func(t *testing.T) {
|
||||||
t.Run("Normal", func(t *testing.T) {
|
t.Run("Normal", func(t *testing.T) {
|
||||||
|
|
@ -465,5 +479,45 @@ func TestProject(t *testing.T) {
|
||||||
assert.NotContains(t, rec.Body.String(), `"tasks":`)
|
assert.NotContains(t, rec.Body.String(), `"tasks":`)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
t.Run("Template cannot have parent project", func(t *testing.T) {
|
||||||
|
_, err := testHandler.testCreateWithUser(nil, nil, `{"title":"Test Template","is_template":true,"parent_project_id":1}`)
|
||||||
|
require.Error(t, err)
|
||||||
|
assertHandlerErrorCode(t, err, models.ErrCodeTemplateCannotHaveParentProject)
|
||||||
|
})
|
||||||
|
t.Run("Template as top-level project", func(t *testing.T) {
|
||||||
|
rec, err := testHandler.testCreateWithUser(nil, nil, `{"title":"Test Template","is_template":true}`)
|
||||||
|
require.NoError(t, err)
|
||||||
|
assert.Contains(t, rec.Body.String(), `"title":"Test Template"`)
|
||||||
|
assert.Contains(t, rec.Body.String(), `"is_template":true`)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestProjectTemplate(t *testing.T) {
|
||||||
|
testHandler := webHandlerTest{
|
||||||
|
user: &testuser1,
|
||||||
|
strFunc: func() handler.CObject {
|
||||||
|
return &models.ProjectTemplate{}
|
||||||
|
},
|
||||||
|
t: t,
|
||||||
|
}
|
||||||
|
|
||||||
|
t.Run("Save as template", func(t *testing.T) {
|
||||||
|
rec, err := testHandler.testCreateWithUser(nil, map[string]string{"projectid": "3"}, `{}`)
|
||||||
|
require.NoError(t, err)
|
||||||
|
assert.Contains(t, rec.Body.String(), `"is_template":true`)
|
||||||
|
})
|
||||||
|
|
||||||
|
t.Run("No access to source project", func(t *testing.T) {
|
||||||
|
noAccessHandler := webHandlerTest{
|
||||||
|
user: &testuser15,
|
||||||
|
strFunc: func() handler.CObject {
|
||||||
|
return &models.ProjectTemplate{}
|
||||||
|
},
|
||||||
|
t: t,
|
||||||
|
}
|
||||||
|
_, err := noAccessHandler.testCreateWithUser(nil, map[string]string{"projectid": "1"}, `{}`)
|
||||||
|
require.Error(t, err)
|
||||||
|
assert.Contains(t, getHTTPErrorMessage(err), `Forbidden`)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue