Ctrl K
ComunidadGuías…

agent/connector_config_test.go

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

Archivo original ↗Preguntar a KiBot
package main

import (
	"maps"
	"testing"

	"github.com/shellhub-io/shellhub/pkg/envs"
	"github.com/stretchr/testify/assert"
	"github.com/stretchr/testify/require"
)

func TestLoadConfigConnectorFromEnvCredential(t *testing.T) {
	base := map[string]string{
		"SHELLHUB_SERVER_ADDRESS": "http://localhost",
		"SHELLHUB_PRIVATE_KEYS":   "/tmp/keys",
	}

	withVars := func(extra map[string]string) envs.Backend {
		values := make(map[string]string, len(base)+len(extra))
		maps.Copy(values, base)
		maps.Copy(values, extra)

		return envs.Map(values)
	}

	t.Run("a tenant alone is a namespace credential", func(t *testing.T) {
		cfg, _, err := LoadConfigConnectorFromEnv(withVars(map[string]string{"SHELLHUB_TENANT_ID": "00000000-0000-4000-0000-000000000000"}))
		require.NoError(t, err)
		assert.Equal(t, "00000000-0000-4000-0000-000000000000", cfg.TenantID)
		assert.Empty(t, cfg.ProvisioningKey)
	})

	t.Run("a provisioning key alone is a namespace credential", func(t *testing.T) {
		cfg, _, err := LoadConfigConnectorFromEnv(withVars(map[string]string{"SHELLHUB_PROVISIONING_KEY": "key-1"}))
		require.NoError(t, err)
		assert.Equal(t, "key-1", cfg.ProvisioningKey)
		assert.Empty(t, cfg.TenantID)
	})

	t.Run("neither is refused", func(t *testing.T) {
		_, fields, err := LoadConfigConnectorFromEnv(withVars(nil))
		require.Error(t, err)
		assert.Contains(t, fields, "TenantID")
		assert.Contains(t, fields, "ProvisioningKey")
	})
}