Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 20 additions & 22 deletions internal/cmd/dns/record-set/create/create_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@ import (
"github.com/stackitcloud/stackit-sdk-go/services/dns"
)

var projectIdFlag = globalflags.ProjectIdFlag

type testCtxKey struct{}

var testCtx = context.WithValue(context.Background(), testCtxKey{}, "foo")
Expand All @@ -34,13 +32,13 @@ var recordTxtOver255Char = []string{

func fixtureFlagValues(mods ...func(flagValues map[string]string)) map[string]string {
flagValues := map[string]string{
projectIdFlag: testProjectId,
zoneIdFlag: testZoneId,
commentFlag: "comment",
nameFlag: "example.com",
recordFlag: "1.1.1.1",
ttlFlag: "3600",
typeFlag: "SOA", // Non-default value
globalflags.ProjectIdFlag: testProjectId,
zoneIdFlag: testZoneId,
commentFlag: "comment",
nameFlag: "example.com",
recordFlag: "1.1.1.1",
ttlFlag: "3600",
typeFlag: "SOA", // Non-default value
}
for _, mod := range mods {
mod(flagValues)
Expand Down Expand Up @@ -107,10 +105,10 @@ func TestParseInput(t *testing.T) {
{
description: "required fields only",
flagValues: map[string]string{
projectIdFlag: testProjectId,
zoneIdFlag: testZoneId,
nameFlag: "example.com",
recordFlag: "1.1.1.1",
globalflags.ProjectIdFlag: testProjectId,
zoneIdFlag: testZoneId,
nameFlag: "example.com",
recordFlag: "1.1.1.1",
},
isValid: true,
expectedModel: &inputModel{
Expand All @@ -127,12 +125,12 @@ func TestParseInput(t *testing.T) {
{
description: "zero values",
flagValues: map[string]string{
projectIdFlag: testProjectId,
zoneIdFlag: testZoneId,
commentFlag: "",
nameFlag: "",
recordFlag: "1.1.1.1",
ttlFlag: "0",
globalflags.ProjectIdFlag: testProjectId,
zoneIdFlag: testZoneId,
commentFlag: "",
nameFlag: "",
recordFlag: "1.1.1.1",
ttlFlag: "0",
},
isValid: true,
expectedModel: &inputModel{
Expand All @@ -151,21 +149,21 @@ func TestParseInput(t *testing.T) {
{
description: "project id missing",
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
delete(flagValues, projectIdFlag)
delete(flagValues, globalflags.ProjectIdFlag)
}),
isValid: false,
},
{
description: "project id invalid 1",
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
flagValues[projectIdFlag] = ""
flagValues[globalflags.ProjectIdFlag] = ""
}),
isValid: false,
},
{
description: "project id invalid 2",
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
flagValues[projectIdFlag] = "invalid-uuid"
flagValues[globalflags.ProjectIdFlag] = "invalid-uuid"
}),
isValid: false,
},
Expand Down
12 changes: 5 additions & 7 deletions internal/cmd/dns/record-set/delete/delete_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@ import (
"github.com/stackitcloud/stackit-sdk-go/services/dns"
)

var projectIdFlag = globalflags.ProjectIdFlag

type testCtxKey struct{}

var testCtx = context.WithValue(context.Background(), testCtxKey{}, "foo")
Expand All @@ -35,8 +33,8 @@ func fixtureArgValues(mods ...func(argValues []string)) []string {

func fixtureFlagValues(mods ...func(flagValues map[string]string)) map[string]string {
flagValues := map[string]string{
projectIdFlag: testProjectId,
zoneIdFlag: testZoneId,
globalflags.ProjectIdFlag: testProjectId,
zoneIdFlag: testZoneId,
}
for _, mod := range mods {
mod(flagValues)
Expand Down Expand Up @@ -104,23 +102,23 @@ func TestParseInput(t *testing.T) {
description: "project id missing",
argValues: fixtureArgValues(),
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
delete(flagValues, projectIdFlag)
delete(flagValues, globalflags.ProjectIdFlag)
}),
isValid: false,
},
{
description: "project id invalid 1",
argValues: fixtureArgValues(),
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
flagValues[projectIdFlag] = ""
flagValues[globalflags.ProjectIdFlag] = ""
}),
isValid: false,
},
{
description: "project id invalid 2",
argValues: fixtureArgValues(),
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
flagValues[projectIdFlag] = "invalid-uuid"
flagValues[globalflags.ProjectIdFlag] = "invalid-uuid"
}),
isValid: false,
},
Expand Down
12 changes: 5 additions & 7 deletions internal/cmd/dns/record-set/describe/describe_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@ import (
"github.com/stackitcloud/stackit-sdk-go/services/dns"
)

var projectIdFlag = globalflags.ProjectIdFlag

type testCtxKey struct{}

var testCtx = context.WithValue(context.Background(), testCtxKey{}, "foo")
Expand All @@ -36,8 +34,8 @@ func fixtureArgValues(mods ...func(argValues []string)) []string {

func fixtureFlagValues(mods ...func(flagValues map[string]string)) map[string]string {
flagValues := map[string]string{
projectIdFlag: testProjectId,
zoneIdFlag: testZoneId,
globalflags.ProjectIdFlag: testProjectId,
zoneIdFlag: testZoneId,
}
for _, mod := range mods {
mod(flagValues)
Expand Down Expand Up @@ -105,23 +103,23 @@ func TestParseInput(t *testing.T) {
description: "project id missing",
argValues: fixtureArgValues(),
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
delete(flagValues, projectIdFlag)
delete(flagValues, globalflags.ProjectIdFlag)
}),
isValid: false,
},
{
description: "project id invalid 1",
argValues: fixtureArgValues(),
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
flagValues[projectIdFlag] = ""
flagValues[globalflags.ProjectIdFlag] = ""
}),
isValid: false,
},
{
description: "project id invalid 2",
argValues: fixtureArgValues(),
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
flagValues[projectIdFlag] = "invalid-uuid"
flagValues[globalflags.ProjectIdFlag] = "invalid-uuid"
}),
isValid: false,
},
Expand Down
23 changes: 13 additions & 10 deletions internal/cmd/dns/record-set/list/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -90,16 +90,14 @@ func NewCmd(params *params.CmdParams) *cobra.Command {
if err != nil {
return err
}
if len(recordSets) == 0 {
zoneLabel, err := dnsUtils.GetZoneName(ctx, apiClient, model.ProjectId, model.ZoneId)
if err != nil {
params.Printer.Debug(print.ErrorLevel, "get zone name: %v", err)
zoneLabel = model.ZoneId
}
params.Printer.Info("No record sets found for zone %s matching the criteria\n", zoneLabel)
return nil

zoneLabel, err := dnsUtils.GetZoneName(ctx, apiClient, model.ProjectId, model.ZoneId)
if err != nil {
params.Printer.Debug(print.ErrorLevel, "get zone name: %v", err)
zoneLabel = model.ZoneId
}
return outputResult(params.Printer, model.OutputFormat, recordSets)

return outputResult(params.Printer, model.OutputFormat, zoneLabel, recordSets)
},
}

Expand Down Expand Up @@ -239,8 +237,13 @@ func fetchRecordSets(ctx context.Context, model *inputModel, apiClient dnsClient
return recordSets, nil
}

func outputResult(p *print.Printer, outputFormat string, recordSets []dns.RecordSet) error {
func outputResult(p *print.Printer, outputFormat, zoneLabel string, recordSets []dns.RecordSet) error {
return p.OutputResult(outputFormat, recordSets, func() error {
if len(recordSets) == 0 {
p.Outputf("No record sets found for zone %s matching the criteria\n", zoneLabel)
return nil
}

table := tables.NewTable()
table.SetHeader("ID", "NAME", "STATUS", "TTL", "TYPE", "RECORD DATA")
for i := range recordSets {
Expand Down
23 changes: 11 additions & 12 deletions internal/cmd/dns/record-set/list/list_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,6 @@ import (
"github.com/stackitcloud/stackit-sdk-go/services/dns"
)

var projectIdFlag = globalflags.ProjectIdFlag

type testCtxKey struct{}

var testCtx = context.WithValue(context.Background(), testCtxKey{}, "foo")
Expand All @@ -31,10 +29,10 @@ var testZoneId = uuid.NewString()

func fixtureFlagValues(mods ...func(flagValues map[string]string)) map[string]string {
flagValues := map[string]string{
projectIdFlag: testProjectId,
zoneIdFlag: testZoneId,
nameLikeFlag: "some-pattern",
orderByNameFlag: "asc",
globalflags.ProjectIdFlag: testProjectId,
zoneIdFlag: testZoneId,
nameLikeFlag: "some-pattern",
orderByNameFlag: "asc",
}
for _, mod := range mods {
mod(flagValues)
Expand Down Expand Up @@ -130,8 +128,8 @@ func TestParseInput(t *testing.T) {
{
description: "required fields only",
flagValues: map[string]string{
projectIdFlag: testProjectId,
zoneIdFlag: testZoneId,
globalflags.ProjectIdFlag: testProjectId,
zoneIdFlag: testZoneId,
},
isValid: true,
expectedModel: &inputModel{
Expand All @@ -146,21 +144,21 @@ func TestParseInput(t *testing.T) {
{
description: "project id missing",
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
delete(flagValues, projectIdFlag)
delete(flagValues, globalflags.ProjectIdFlag)
}),
isValid: false,
},
{
description: "project id invalid 1",
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
flagValues[projectIdFlag] = ""
flagValues[globalflags.ProjectIdFlag] = ""
}),
isValid: false,
},
{
description: "project id invalid 2",
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
flagValues[projectIdFlag] = "invalid-uuid"
flagValues[globalflags.ProjectIdFlag] = "invalid-uuid"
}),
isValid: false,
},
Expand Down Expand Up @@ -468,6 +466,7 @@ func TestFetchRecordSets(t *testing.T) {
func TestOutputResult(t *testing.T) {
type args struct {
outputFormat string
zoneLabel string
recordSets []dns.RecordSet
}
tests := []struct {
Expand All @@ -485,7 +484,7 @@ func TestOutputResult(t *testing.T) {
p.Cmd = NewCmd(&params.CmdParams{Printer: p})
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if err := outputResult(p, tt.args.outputFormat, tt.args.recordSets); (err != nil) != tt.wantErr {
if err := outputResult(p, tt.args.outputFormat, tt.args.zoneLabel, tt.args.recordSets); (err != nil) != tt.wantErr {
t.Errorf("outputResult() error = %v, wantErr %v", err, tt.wantErr)
}
})
Expand Down
36 changes: 17 additions & 19 deletions internal/cmd/dns/record-set/update/update_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@ import (
"github.com/stackitcloud/stackit-sdk-go/services/dns"
)

var projectIdFlag = globalflags.ProjectIdFlag

type testCtxKey struct{}

var testCtx = context.WithValue(context.Background(), testCtxKey{}, "foo")
Expand Down Expand Up @@ -45,12 +43,12 @@ func fixtureArgValues(mods ...func(argValues []string)) []string {

func fixtureFlagValues(mods ...func(flagValues map[string]string)) map[string]string {
flagValues := map[string]string{
projectIdFlag: testProjectId,
zoneIdFlag: testZoneId,
commentFlag: "comment",
nameFlag: "example.com",
recordFlag: "1.1.1.1",
ttlFlag: "3600",
globalflags.ProjectIdFlag: testProjectId,
zoneIdFlag: testZoneId,
commentFlag: "comment",
nameFlag: "example.com",
recordFlag: "1.1.1.1",
ttlFlag: "3600",
}
for _, mod := range mods {
mod(flagValues)
Expand Down Expand Up @@ -132,8 +130,8 @@ func TestParseInput(t *testing.T) {
description: "required flags only (no values to update)",
argValues: fixtureArgValues(),
flagValues: map[string]string{
projectIdFlag: testProjectId,
zoneIdFlag: testZoneId,
globalflags.ProjectIdFlag: testProjectId,
zoneIdFlag: testZoneId,
},
isValid: false,
expectedModel: &inputModel{
Expand All @@ -149,12 +147,12 @@ func TestParseInput(t *testing.T) {
description: "zero values",
argValues: fixtureArgValues(),
flagValues: map[string]string{
projectIdFlag: testProjectId,
zoneIdFlag: testZoneId,
commentFlag: "",
nameFlag: "",
recordFlag: "1.1.1.1",
ttlFlag: "0",
globalflags.ProjectIdFlag: testProjectId,
zoneIdFlag: testZoneId,
commentFlag: "",
nameFlag: "",
recordFlag: "1.1.1.1",
ttlFlag: "0",
},
isValid: true,
expectedModel: &inputModel{
Expand All @@ -174,23 +172,23 @@ func TestParseInput(t *testing.T) {
description: "project id missing",
argValues: fixtureArgValues(),
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
delete(flagValues, projectIdFlag)
delete(flagValues, globalflags.ProjectIdFlag)
}),
isValid: false,
},
{
description: "project id invalid 1",
argValues: fixtureArgValues(),
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
flagValues[projectIdFlag] = ""
flagValues[globalflags.ProjectIdFlag] = ""
}),
isValid: false,
},
{
description: "project id invalid 2",
argValues: fixtureArgValues(),
flagValues: fixtureFlagValues(func(flagValues map[string]string) {
flagValues[projectIdFlag] = "invalid-uuid"
flagValues[globalflags.ProjectIdFlag] = "invalid-uuid"
}),
isValid: false,
},
Expand Down
Loading
Loading