Ctrl K
ComunidadGuías…

coderd/initscript_test.go

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

Archivo original ↗Preguntar a KiBot
package coderd_test

import (
	"context"
	"net/http"
	"testing"

	"github.com/stretchr/testify/require"

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

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

	// Single instance shared across all sub-tests. All operations
	// are read-only (fetching init scripts) so parallel execution
	// is safe.
	client := coderdtest.New(t, nil)

	t.Run("OK Windows amd64", func(t *testing.T) {
		t.Parallel()
		script, err := client.InitScript(context.Background(), "windows", "amd64")
		require.NoError(t, err)
		require.NotEmpty(t, script)
		require.Contains(t, script, "$env:CODER_AGENT_AUTH = \"token\"")
		require.Contains(t, script, "/bin/coder-windows-amd64.exe")
	})

	t.Run("OK Windows arm64", func(t *testing.T) {
		t.Parallel()
		script, err := client.InitScript(context.Background(), "windows", "arm64")
		require.NoError(t, err)
		require.NotEmpty(t, script)
		require.Contains(t, script, "$env:CODER_AGENT_AUTH = \"token\"")
		require.Contains(t, script, "/bin/coder-windows-arm64.exe")
	})

	t.Run("OK Linux amd64", func(t *testing.T) {
		t.Parallel()
		script, err := client.InitScript(context.Background(), "linux", "amd64")
		require.NoError(t, err)
		require.NotEmpty(t, script)
		require.Contains(t, script, "export CODER_AGENT_AUTH=\"token\"")
		require.Contains(t, script, "/bin/coder-linux-amd64")
	})

	t.Run("OK Linux arm64", func(t *testing.T) {
		t.Parallel()
		script, err := client.InitScript(context.Background(), "linux", "arm64")
		require.NoError(t, err)
		require.NotEmpty(t, script)
		require.Contains(t, script, "export CODER_AGENT_AUTH=\"token\"")
		require.Contains(t, script, "/bin/coder-linux-arm64")
	})

	t.Run("BadRequest", func(t *testing.T) {
		t.Parallel()
		_, err := client.InitScript(context.Background(), "darwin", "armv7")
		require.Error(t, err)
		var apiErr *codersdk.Error
		require.ErrorAs(t, err, &apiErr)
		require.Equal(t, http.StatusBadRequest, apiErr.StatusCode())
		require.Equal(t, "Unknown os/arch: darwin/armv7", apiErr.Message)
	})
}