package versions import ( "context" "net/http/httptest" "os" "testing" "github.com/stretchr/testify/require" "edge-infra.dev/pkg/edge/api/fake" "edge-infra.dev/pkg/edge/edgecli" "edge-infra.dev/pkg/edge/edgecli/flagutil" ) var ( testBanner = edgecli.BannerContext{ BannerEdgeID: "test-banner-edge-id-0", BannerName: "test-banner-0", TenantOrg: "test-org-0", Username: "test-user-0", Token: "test-token-0", } testCurrrentBanner = "test-current-banner" testConfig = edgecli.Config{ CurrentBannerContext: testCurrrentBanner, BannerContexts: map[string]*edgecli.BannerContext{ testCurrrentBanner: &testBanner, }, } edgeAPIMockSvr *httptest.Server edgeAPIMockURL string ) func TestMain(m *testing.M) { edgeAPIMockSvr = fake.GetMockAPIServer() edgeAPIMockURL = edgeAPIMockSvr.URL + "/api/v2" run := m.Run() edgeAPIMockSvr.Close() os.Exit(run) } func TestViewClusterSecretVersions(t *testing.T) { testConfig.BannerContexts[testCurrrentBanner].Endpoint = edgeAPIMockURL ctx := context.Background() cmd := NewCmd(&testConfig) require.Error(t, cmd.Command().Exec(ctx, []string{}), "Flag 'store' is required") require.NoError(t, flagutil.SetFlag(cmd.Rags, flagutil.StoreFlag, "test-cluster-0")) require.NoError(t, flagutil.SetFlag(cmd.Rags, flagutil.BannerFlag, "banner-not-exist")) require.NoError(t, flagutil.SetFlag(cmd.Rags, flagutil.SecretTypeFlag, "grub")) require.ErrorContains(t, cmd.Command().Exec(ctx, []string{}), "could not find banner: banner-not-exist") require.NoError(t, flagutil.SetFlag(cmd.Rags, flagutil.StoreFlag, "cluster-not-exist")) require.NoError(t, flagutil.SetFlag(cmd.Rags, flagutil.BannerFlag, "test-banner-0")) require.NoError(t, flagutil.SetFlag(cmd.Rags, flagutil.SecretTypeFlag, "grub")) require.ErrorContains(t, cmd.Command().Exec(ctx, []string{}), "cluster does not exist: cluster-not-exist") require.NoError(t, flagutil.SetFlag(cmd.Rags, flagutil.StoreFlag, "test-cluster-0")) require.NoError(t, flagutil.SetFlag(cmd.Rags, flagutil.BannerFlag, "test-banner-0")) require.NoError(t, flagutil.SetFlag(cmd.Rags, flagutil.SecretTypeFlag, "invalid-type")) require.Error(t, cmd.Command().Exec(ctx, []string{}), "invalid secret type invalid-type") }