...
1 package list
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 TestActivationCodeList(t *testing.T) {
44 testConfig.BannerContexts[testCurrrentBanner].Endpoint = edgeAPIMockURL
45 cmd := NewCmd(&testConfig)
46
47 require.Error(t, cmd.Command().Exec(context.Background(), []string{}), "Flag 'store' is required")
48 require.NoError(t, flagutil.SetFlag(cmd.Rags, flagutil.StoreFlag, "test-cluster-0"))
49 require.NoError(t, flagutil.SetFlag(cmd.Rags, flagutil.BannerFlag, "test-banner-0"))
50 require.NoError(t, cmd.Command().Exec(context.Background(), []string{}))
51 }
52
53 func TestActivationCodeListNoStore(t *testing.T) {
54 testConfig.BannerContexts[testCurrrentBanner].Endpoint = edgeAPIMockURL
55 cmd := NewCmd(&testConfig)
56
57 require.Error(t, cmd.Command().Exec(context.Background(), []string{}), "Flag 'store' is required")
58 require.NoError(t, flagutil.SetFlag(cmd.Rags, flagutil.StoreFlag, "cluster-not-exist"))
59 require.NoError(t, flagutil.SetFlag(cmd.Rags, flagutil.BannerFlag, "test-banner-0"))
60 require.ErrorContains(t, cmd.Command().Exec(context.Background(), []string{}), "cluster does not exist: cluster-not-exist")
61 }
62
63 func TestActivationCodeListNoBanner(t *testing.T) {
64 testConfig.BannerContexts[testCurrrentBanner].Endpoint = edgeAPIMockURL
65 cmd := NewCmd(&testConfig)
66
67 require.Error(t, cmd.Command().Exec(context.Background(), []string{}), "Flag 'store' is required")
68 require.NoError(t, flagutil.SetFlag(cmd.Rags, flagutil.StoreFlag, "test-cluster-0"))
69 require.NoError(t, flagutil.SetFlag(cmd.Rags, flagutil.BannerFlag, "banner-not-exist"))
70 require.ErrorContains(t, cmd.Command().Exec(context.Background(), []string{}), "could not find banner: banner-not-exist")
71 }
72
View as plain text