1 package versions
2
3 import (
4 "context"
5 "net/http/httptest"
6 "os"
7 "testing"
8
9 "github.com/stretchr/testify/require"
10
11 "edge-infra.dev/pkg/edge/api/fake"
12 "edge-infra.dev/pkg/edge/edgecli"
13 "edge-infra.dev/pkg/edge/edgecli/flagutil"
14 )
15
16 var (
17 testBanner = edgecli.BannerContext{
18 BannerEdgeID: "test-banner-edge-id-0",
19 BannerName: "test-banner-0",
20 TenantOrg: "test-org-0",
21 Username: "test-user-0",
22 Token: "test-token-0",
23 }
24 testCurrrentBanner = "test-current-banner"
25 testConfig = edgecli.Config{
26 CurrentBannerContext: testCurrrentBanner,
27 BannerContexts: map[string]*edgecli.BannerContext{
28 testCurrrentBanner: &testBanner,
29 },
30 }
31 edgeAPIMockSvr *httptest.Server
32 edgeAPIMockURL string
33 )
34
35 func TestMain(m *testing.M) {
36 edgeAPIMockSvr = fake.GetMockAPIServer()
37 edgeAPIMockURL = edgeAPIMockSvr.URL + "/api/v2"
38 run := m.Run()
39 edgeAPIMockSvr.Close()
40 os.Exit(run)
41 }
42
43 func TestViewClusterSecretVersions(t *testing.T) {
44 testConfig.BannerContexts[testCurrrentBanner].Endpoint = edgeAPIMockURL
45 ctx := context.Background()
46 cmd := NewCmd(&testConfig)
47
48 require.Error(t, cmd.Command().Exec(ctx, []string{}), "Flag 'store' is required")
49 require.NoError(t, flagutil.SetFlag(cmd.Rags, flagutil.StoreFlag, "test-cluster-0"))
50 require.NoError(t, flagutil.SetFlag(cmd.Rags, flagutil.BannerFlag, "banner-not-exist"))
51 require.NoError(t, flagutil.SetFlag(cmd.Rags, flagutil.SecretTypeFlag, "grub"))
52 require.ErrorContains(t, cmd.Command().Exec(ctx, []string{}), "could not find banner: banner-not-exist")
53
54 require.NoError(t, flagutil.SetFlag(cmd.Rags, flagutil.StoreFlag, "cluster-not-exist"))
55 require.NoError(t, flagutil.SetFlag(cmd.Rags, flagutil.BannerFlag, "test-banner-0"))
56 require.NoError(t, flagutil.SetFlag(cmd.Rags, flagutil.SecretTypeFlag, "grub"))
57 require.ErrorContains(t, cmd.Command().Exec(ctx, []string{}), "cluster does not exist: cluster-not-exist")
58
59 require.NoError(t, flagutil.SetFlag(cmd.Rags, flagutil.StoreFlag, "test-cluster-0"))
60 require.NoError(t, flagutil.SetFlag(cmd.Rags, flagutil.BannerFlag, "test-banner-0"))
61 require.NoError(t, flagutil.SetFlag(cmd.Rags, flagutil.SecretTypeFlag, "invalid-type"))
62 require.Error(t, cmd.Command().Exec(ctx, []string{}), "invalid secret type invalid-type")
63 }
64
View as plain text