Files
threshold/api/scopes/project_test.go
T

49 lines
1.5 KiB
Go
Raw Normal View History

2020-05-15 10:19:55 -04:00
package scopes
import (
"testing"
"github.com/hashicorp/watchtower/api"
"github.com/hashicorp/watchtower/internal/servers/controller"
"github.com/stretchr/testify/assert"
)
func TestProjects_Crud(t *testing.T) {
tc := controller.NewTestController(t, nil)
defer tc.Shutdown()
client := tc.Client()
org := &Organization{
Client: client,
}
2020-05-19 12:10:39 -07:00
checkProject := func(step string, p *Project, apiErr *api.Error, err error, wantedName string) {
2020-05-15 10:19:55 -04:00
assert := assert.New(t)
assert.NoError(err, step)
assert.Nil(apiErr, step)
assert.NotNil(p, "returned project", step)
2020-05-19 12:10:39 -07:00
assert.Equal(wantedName, *p.Name, step)
2020-05-15 10:19:55 -04:00
}
2020-05-19 12:10:39 -07:00
p, apiErr, err := org.CreateProject(tc.Context(), &Project{Name: api.String("foo")})
checkProject("create", p, apiErr, err, "foo")
2020-05-15 10:19:55 -04:00
p, apiErr, err = org.ReadProject(tc.Context(), &Project{Id: p.Id})
2020-05-19 12:10:39 -07:00
checkProject("read", p, apiErr, err, "foo")
p = &Project{Id: p.Id}
p.Name = api.String("bar")
p, apiErr, err = org.UpdateProject(tc.Context(), p)
checkProject("update", p, apiErr, err, "bar")
2020-05-15 10:19:55 -04:00
2020-05-20 08:04:23 -07:00
existed, apiErr, err := org.DeleteProject(tc.Context(), p)
assert.NoError(t, err)
assert.True(t, existed, "Expected existing project when deleted, but it wasn't.")
existed, apiErr, err = org.DeleteProject(tc.Context(), p)
assert.NoError(t, err)
assert.False(t, existed, "Expected project to not exist when deleted, but it did.")
2020-05-15 10:19:55 -04:00
// TODO: Error conditions once the proper errors are being returned.
// Probably as parallel subtests against the same DB.
}