From 1bcebf8b51f78b5447d78a361cabebe86e6cae11 Mon Sep 17 00:00:00 2001 From: Martin Polden Date: Tue, 19 Apr 2022 11:29:27 +0200 Subject: Allow reading API key from default path when Auth0 is not configured --- client/go/cmd/config_test.go | 39 +++++++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 12 deletions(-) (limited to 'client/go/cmd/config_test.go') diff --git a/client/go/cmd/config_test.go b/client/go/cmd/config_test.go index f89e752f82d..9f41ef46914 100644 --- a/client/go/cmd/config_test.go +++ b/client/go/cmd/config_test.go @@ -145,17 +145,33 @@ func assertConfigCommandErr(t *testing.T, configHome, expected string, args ...s assert.NotNil(t, assertConfigCommandStdErr(t, configHome, expected, args...)) } -func TestUseAPIKey(t *testing.T) { +func TestReadAPIKey(t *testing.T) { cli, _, _ := newTestCLI(t) - assert.False(t, cli.config.useAPIKey(cli, vespa.PublicSystem, "t1")) + key, err := cli.config.readAPIKey(cli, vespa.PublicSystem, "t1") + assert.Nil(t, key) + require.NotNil(t, err) - cli, _, _ = newTestCLI(t, "VESPA_CLI_API_KEY_FILE=/tmp/foo") - assert.True(t, cli.config.useAPIKey(cli, vespa.PublicSystem, "t1")) + // From default path when it exists + require.Nil(t, os.WriteFile(filepath.Join(cli.config.homeDir, "t1.api-key.pem"), []byte("foo"), 0600)) + key, err = cli.config.readAPIKey(cli, vespa.PublicSystem, "t1") + require.Nil(t, err) + assert.Equal(t, []byte("foo"), key) + + // From file specified in environment + keyFile := filepath.Join(t.TempDir(), "key") + require.Nil(t, os.WriteFile(keyFile, []byte("bar"), 0600)) + cli, _, _ = newTestCLI(t, "VESPA_CLI_API_KEY_FILE="+keyFile) + key, err = cli.config.readAPIKey(cli, vespa.PublicSystem, "t1") + require.Nil(t, err) + assert.Equal(t, []byte("bar"), key) - cli, _, _ = newTestCLI(t, "VESPA_CLI_API_KEY=foo") - assert.True(t, cli.config.useAPIKey(cli, vespa.PublicSystem, "t1")) + // From key specified in environment + cli, _, _ = newTestCLI(t, "VESPA_CLI_API_KEY=baz") + key, err = cli.config.readAPIKey(cli, vespa.PublicSystem, "t1") + require.Nil(t, err) + assert.Equal(t, []byte("baz"), key) - // Prefer Auth0, if configured + // Auth0 is preferred when configured authContent := ` { "version": 1, @@ -172,10 +188,9 @@ func TestUseAPIKey(t *testing.T) { } } }` - cli, _, _ = newTestCLI(t, "VESPA_CLI_CLOUD_SYSTEM=public") - _, err := os.Create(filepath.Join(cli.config.homeDir, "t2.api-key.pem")) - require.Nil(t, err) - assert.True(t, cli.config.useAPIKey(cli, vespa.PublicSystem, "t2")) + cli, _, _ = newTestCLI(t) require.Nil(t, os.WriteFile(filepath.Join(cli.config.homeDir, "auth.json"), []byte(authContent), 0600)) - assert.False(t, cli.config.useAPIKey(cli, vespa.PublicSystem, "t2")) + key, err = cli.config.readAPIKey(cli, vespa.PublicSystem, "t1") + require.Nil(t, err) + assert.Equal(t, []byte(nil), key) } -- cgit v1.2.3