mirror of
https://github.com/coder/coder.git
synced 2025-07-06 15:41:45 +00:00
* Add templates
* Move API structs to codersdk
* Back to green tests!
* It all works, but now with tea! 🧋
* It works!
* Add cancellation to provisionerd
* Tests pass!
* Add deletion of workspaces and projects
* Fix agent lock
* Add clog
* Fix linting errors
* Remove unused CLI tests
* Rename daemon to start
* Fix leaking command
* Fix promptui test
* Update agent connection frequency
* Skip login tests on Windows
* Increase tunnel connect timeout
* Fix templater
* Lower test requirements
* Fix embed
* Disable promptui tests for Windows
* Fix write newline
* Fix PTY write newline
* Fix CloseReader
* Fix compilation on Windows
* Fix linting error
* Remove bubbletea
* Cleanup readwriter
* Use embedded templates instead of serving over API
* Move templates to examples
* Improve workspace create flow
* Fix Windows build
* Fix tests
* Fix linting errors
* Fix untar with extracting max size
* Fix newline char
121 lines
4.4 KiB
Go
121 lines
4.4 KiB
Go
package coderd_test
|
|
|
|
import (
|
|
"context"
|
|
"net/http"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/coder/coder/coderd/coderdtest"
|
|
"github.com/coder/coder/codersdk"
|
|
"github.com/coder/coder/database"
|
|
)
|
|
|
|
func TestPostParameter(t *testing.T) {
|
|
t.Parallel()
|
|
t.Run("BadScope", func(t *testing.T) {
|
|
t.Parallel()
|
|
client := coderdtest.New(t, nil)
|
|
user := coderdtest.CreateFirstUser(t, client)
|
|
_, err := client.CreateParameter(context.Background(), codersdk.ParameterScope("something"), user.OrganizationID, codersdk.CreateParameterRequest{
|
|
Name: "example",
|
|
SourceValue: "tomato",
|
|
SourceScheme: database.ParameterSourceSchemeData,
|
|
DestinationScheme: database.ParameterDestinationSchemeProvisionerVariable,
|
|
})
|
|
var apiErr *codersdk.Error
|
|
require.ErrorAs(t, err, &apiErr)
|
|
require.Equal(t, http.StatusBadRequest, apiErr.StatusCode())
|
|
})
|
|
|
|
t.Run("Create", func(t *testing.T) {
|
|
t.Parallel()
|
|
client := coderdtest.New(t, nil)
|
|
user := coderdtest.CreateFirstUser(t, client)
|
|
_, err := client.CreateParameter(context.Background(), codersdk.ParameterOrganization, user.OrganizationID, codersdk.CreateParameterRequest{
|
|
Name: "example",
|
|
SourceValue: "tomato",
|
|
SourceScheme: database.ParameterSourceSchemeData,
|
|
DestinationScheme: database.ParameterDestinationSchemeProvisionerVariable,
|
|
})
|
|
require.NoError(t, err)
|
|
})
|
|
|
|
t.Run("AlreadyExists", func(t *testing.T) {
|
|
t.Parallel()
|
|
client := coderdtest.New(t, nil)
|
|
user := coderdtest.CreateFirstUser(t, client)
|
|
_, err := client.CreateParameter(context.Background(), codersdk.ParameterOrganization, user.OrganizationID, codersdk.CreateParameterRequest{
|
|
Name: "example",
|
|
SourceValue: "tomato",
|
|
SourceScheme: database.ParameterSourceSchemeData,
|
|
DestinationScheme: database.ParameterDestinationSchemeProvisionerVariable,
|
|
})
|
|
require.NoError(t, err)
|
|
|
|
_, err = client.CreateParameter(context.Background(), codersdk.ParameterOrganization, user.OrganizationID, codersdk.CreateParameterRequest{
|
|
Name: "example",
|
|
SourceValue: "tomato",
|
|
SourceScheme: database.ParameterSourceSchemeData,
|
|
DestinationScheme: database.ParameterDestinationSchemeProvisionerVariable,
|
|
})
|
|
var apiErr *codersdk.Error
|
|
require.ErrorAs(t, err, &apiErr)
|
|
require.Equal(t, http.StatusConflict, apiErr.StatusCode())
|
|
})
|
|
}
|
|
|
|
func TestParameters(t *testing.T) {
|
|
t.Parallel()
|
|
t.Run("ListEmpty", func(t *testing.T) {
|
|
t.Parallel()
|
|
client := coderdtest.New(t, nil)
|
|
user := coderdtest.CreateFirstUser(t, client)
|
|
_, err := client.Parameters(context.Background(), codersdk.ParameterOrganization, user.OrganizationID)
|
|
require.NoError(t, err)
|
|
})
|
|
t.Run("List", func(t *testing.T) {
|
|
t.Parallel()
|
|
client := coderdtest.New(t, nil)
|
|
user := coderdtest.CreateFirstUser(t, client)
|
|
_, err := client.CreateParameter(context.Background(), codersdk.ParameterOrganization, user.OrganizationID, codersdk.CreateParameterRequest{
|
|
Name: "example",
|
|
SourceValue: "tomato",
|
|
SourceScheme: database.ParameterSourceSchemeData,
|
|
DestinationScheme: database.ParameterDestinationSchemeProvisionerVariable,
|
|
})
|
|
require.NoError(t, err)
|
|
params, err := client.Parameters(context.Background(), codersdk.ParameterOrganization, user.OrganizationID)
|
|
require.NoError(t, err)
|
|
require.Len(t, params, 1)
|
|
})
|
|
}
|
|
|
|
func TestDeleteParameter(t *testing.T) {
|
|
t.Parallel()
|
|
t.Run("NotExist", func(t *testing.T) {
|
|
t.Parallel()
|
|
client := coderdtest.New(t, nil)
|
|
user := coderdtest.CreateFirstUser(t, client)
|
|
err := client.DeleteParameter(context.Background(), codersdk.ParameterOrganization, user.OrganizationID, "something")
|
|
var apiErr *codersdk.Error
|
|
require.ErrorAs(t, err, &apiErr)
|
|
require.Equal(t, http.StatusNotFound, apiErr.StatusCode())
|
|
})
|
|
t.Run("Delete", func(t *testing.T) {
|
|
t.Parallel()
|
|
client := coderdtest.New(t, nil)
|
|
user := coderdtest.CreateFirstUser(t, client)
|
|
param, err := client.CreateParameter(context.Background(), codersdk.ParameterOrganization, user.OrganizationID, codersdk.CreateParameterRequest{
|
|
Name: "example",
|
|
SourceValue: "tomato",
|
|
SourceScheme: database.ParameterSourceSchemeData,
|
|
DestinationScheme: database.ParameterDestinationSchemeProvisionerVariable,
|
|
})
|
|
require.NoError(t, err)
|
|
err = client.DeleteParameter(context.Background(), codersdk.ParameterOrganization, user.OrganizationID, param.Name)
|
|
require.NoError(t, err)
|
|
})
|
|
}
|