| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- package project_test
- import (
- "testing"
- "github.com/porter-dev/porter/api/server/handlers/project"
- "github.com/porter-dev/porter/api/server/shared"
- "github.com/porter-dev/porter/api/server/shared/apitest"
- "github.com/porter-dev/porter/api/types"
- "github.com/porter-dev/porter/internal/repository/test"
- )
- func TestCreateProjectSuccessful(t *testing.T) {
- req, rr := apitest.GetRequestAndRecorder(
- t,
- string(types.HTTPVerbPost),
- "/api/projects",
- &types.CreateProjectRequest{
- Name: "test-project",
- },
- )
- config := apitest.LoadConfig(t)
- user := apitest.CreateTestUser(t, config, true)
- req = apitest.WithAuthenticatedUser(t, req, user)
- handler := project.NewProjectCreateHandler(
- config,
- shared.NewDefaultRequestDecoderValidator(config.Logger, config.Alerter),
- shared.NewDefaultResultWriter(config.Logger, config.Alerter),
- )
- handler.ServeHTTP(rr, req)
- expProject := &types.CreateProjectResponse{
- ID: 1,
- Name: "test-project",
- Roles: []*types.Role{
- {
- Kind: types.RoleAdmin,
- UserID: user.ID,
- ProjectID: 1,
- },
- },
- }
- gotProject := &types.CreateProjectResponse{}
- apitest.AssertResponseExpected(t, rr, expProject, gotProject)
- }
- func TestFailingDecoderValidator(t *testing.T) {
- req, rr := apitest.GetRequestAndRecorder(
- t,
- string(types.HTTPVerbPost),
- "/api/projects",
- &types.CreateProjectRequest{
- Name: "test-project",
- },
- )
- config := apitest.LoadConfig(t)
- user := apitest.CreateTestUser(t, config, true)
- req = apitest.WithAuthenticatedUser(t, req, user)
- handler := project.NewProjectCreateHandler(
- config,
- apitest.NewFailingDecoderValidator(config),
- shared.NewDefaultResultWriter(config.Logger, config.Alerter),
- )
- handler.ServeHTTP(rr, req)
- apitest.AssertResponseInternalServerError(t, rr)
- }
- func TestFailingCreateMethod(t *testing.T) {
- req, rr := apitest.GetRequestAndRecorder(
- t,
- string(types.HTTPVerbPost),
- "/api/projects",
- &types.CreateProjectRequest{
- Name: "test-project",
- },
- )
- config := apitest.LoadConfig(t, test.CreateProjectMethod)
- user := apitest.CreateTestUser(t, config, true)
- req = apitest.WithAuthenticatedUser(t, req, user)
- handler := project.NewProjectCreateHandler(
- config,
- shared.NewDefaultRequestDecoderValidator(config.Logger, config.Alerter),
- shared.NewDefaultResultWriter(config.Logger, config.Alerter),
- )
- handler.ServeHTTP(rr, req)
- apitest.AssertResponseInternalServerError(t, rr)
- }
- func TestFailingCreateRoleMethod(t *testing.T) {
- req, rr := apitest.GetRequestAndRecorder(
- t,
- string(types.HTTPVerbPost),
- "/api/projects",
- &types.CreateProjectRequest{
- Name: "test-project",
- },
- )
- config := apitest.LoadConfig(t, test.CreateProjectRoleMethod)
- user := apitest.CreateTestUser(t, config, true)
- req = apitest.WithAuthenticatedUser(t, req, user)
- handler := project.NewProjectCreateHandler(
- config,
- shared.NewDefaultRequestDecoderValidator(config.Logger, config.Alerter),
- shared.NewDefaultResultWriter(config.Logger, config.Alerter),
- )
- handler.ServeHTTP(rr, req)
- apitest.AssertResponseInternalServerError(t, rr)
- }
- func TestFailingReadMethod(t *testing.T) {
- req, rr := apitest.GetRequestAndRecorder(
- t,
- string(types.HTTPVerbPost),
- "/api/projects",
- &types.CreateProjectRequest{
- Name: "test-project",
- },
- )
- config := apitest.LoadConfig(t, test.ReadProjectMethod)
- user := apitest.CreateTestUser(t, config, true)
- req = apitest.WithAuthenticatedUser(t, req, user)
- handler := project.NewProjectCreateHandler(
- config,
- shared.NewDefaultRequestDecoderValidator(config.Logger, config.Alerter),
- shared.NewDefaultResultWriter(config.Logger, config.Alerter),
- )
- handler.ServeHTTP(rr, req)
- apitest.AssertResponseInternalServerError(t, rr)
- }
|