Ctrl K
ComunidadGuías…

coderd/coderdtest/coderdtest_test.go

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
package coderdtest_test

import (
	"strings"
	"testing"
	"unicode"

	"github.com/stretchr/testify/require"
	"go.uber.org/goleak"

	"github.com/coder/coder/v2/coderd/coderdtest"
	"github.com/coder/coder/v2/testutil"
)

func TestMain(m *testing.M) {
	goleak.VerifyTestMain(m, testutil.GoleakOptions...)
}

func TestNew(t *testing.T) {
	t.Parallel()
	client := coderdtest.New(t, &coderdtest.Options{
		IncludeProvisionerDaemon: true,
	})
	user := coderdtest.CreateFirstUser(t, client)
	version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil)
	_ = coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
	template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
	workspace := coderdtest.CreateWorkspace(t, client, template.ID)
	coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
	coderdtest.AwaitWorkspaceAgents(t, client, workspace.ID)
	_, _ = coderdtest.NewGoogleInstanceIdentity(t, "example", false, "coder")
	_, _ = coderdtest.NewAWSInstanceIdentity(t, "an-instance")
}

func TestRandomName(t *testing.T) {
	t.Parallel()

	for range 10 {
		name := coderdtest.RandomName(t)

		require.NotEmpty(t, name, "name should not be empty")
		require.NotContains(t, name, "_", "name should not contain underscores")

		// Should be title cased (e.g., "Happy Einstein").
		words := strings.Split(name, " ")
		require.Len(t, words, 2, "name should have exactly two words")
		for _, word := range words {
			firstRune := []rune(word)[0]
			require.True(t, unicode.IsUpper(firstRune), "word %q should start with uppercase letter", word)
		}
	}
}