mirror of
https://github.com/coder/coder.git
synced 2025-07-08 11:39:50 +00:00
60 lines
1.9 KiB
Go
60 lines
1.9 KiB
Go
package coderd_test
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/google/uuid"
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/coder/coder/v2/coderd/coderdtest"
|
|
"github.com/coder/coder/v2/coderd/database"
|
|
"github.com/coder/coder/v2/coderd/database/dbauthz"
|
|
"github.com/coder/coder/v2/coderd/httpmw"
|
|
"github.com/coder/coder/v2/coderd/rbac"
|
|
)
|
|
|
|
func TestTemplateVersionPresets(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
ctx := context.Background()
|
|
|
|
client, db := coderdtest.NewWithDatabase(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
|
|
user := coderdtest.CreateFirstUser(t, client)
|
|
version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil)
|
|
|
|
// nolint:gocritic // This is a test
|
|
provisionerCtx := dbauthz.AsProvisionerd(ctx)
|
|
|
|
preset, err := db.InsertPreset(provisionerCtx, database.InsertPresetParams{
|
|
ID: uuid.New(),
|
|
Name: "My Preset",
|
|
TemplateVersionID: version.ID,
|
|
})
|
|
require.NoError(t, err)
|
|
_, err = db.InsertPresetParameters(provisionerCtx, database.InsertPresetParametersParams{
|
|
ID: uuid.New(),
|
|
TemplateVersionPresetID: preset.ID,
|
|
Names: []string{"preset_param1", "preset_param2"},
|
|
Values: []string{"A1B2C3", "D4E5F6"},
|
|
})
|
|
require.NoError(t, err)
|
|
|
|
userSubject, _, err := httpmw.UserRBACSubject(ctx, db, user.UserID, rbac.ScopeAll)
|
|
require.NoError(t, err)
|
|
userCtx := dbauthz.As(ctx, userSubject)
|
|
|
|
presets, err := client.TemplateVersionPresets(userCtx, version.ID)
|
|
require.NoError(t, err)
|
|
require.Equal(t, 1, len(presets))
|
|
require.Equal(t, "My Preset", presets[0].Name)
|
|
|
|
presetParams, err := client.TemplateVersionPresetParameters(userCtx, version.ID)
|
|
require.NoError(t, err)
|
|
require.Equal(t, 2, len(presetParams))
|
|
require.Equal(t, "preset_param1", presetParams[0].Name)
|
|
require.Equal(t, "A1B2C3", presetParams[0].Value)
|
|
require.Equal(t, "preset_param2", presetParams[1].Name)
|
|
require.Equal(t, "D4E5F6", presetParams[1].Value)
|
|
}
|