-
Notifications
You must be signed in to change notification settings - Fork 59
Expand file tree
/
Copy pathbudget_update_test.go
More file actions
75 lines (64 loc) · 1.9 KB
/
budget_update_test.go
File metadata and controls
75 lines (64 loc) · 1.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package trafficcontrol
import (
"bytes"
"context"
"testing"
"time"
qt "github.com/frankban/quicktest"
"github.com/planetscale/cli/internal/cmdutil"
"github.com/planetscale/cli/internal/config"
"github.com/planetscale/cli/internal/mock"
"github.com/planetscale/cli/internal/printer"
ps "github.com/planetscale/planetscale-go/planetscale"
)
func TestBudgetUpdateCmd(t *testing.T) {
c := qt.New(t)
var buf bytes.Buffer
format := printer.JSON
p := printer.NewPrinter(&format)
p.SetResourceOutput(&buf)
cap := 90
updated := &ps.TrafficBudget{
ID: budgetID,
Name: "Renamed Budget",
Mode: "warn",
Capacity: &cap,
CreatedAt: time.Date(2025, 6, 15, 10, 0, 0, 0, time.UTC),
UpdatedAt: time.Date(2025, 6, 16, 12, 0, 0, 0, time.UTC),
}
svc := &mock.TrafficBudgetsService{
UpdateFn: func(ctx context.Context, req *ps.UpdateTrafficBudgetRequest) (*ps.TrafficBudget, error) {
c.Assert(req.Organization, qt.Equals, org)
c.Assert(req.Database, qt.Equals, db)
c.Assert(req.Branch, qt.Equals, branch)
c.Assert(req.BudgetID, qt.Equals, budgetID)
c.Assert(*req.Name, qt.Equals, "Renamed Budget")
c.Assert(*req.Mode, qt.Equals, "warn")
c.Assert(*req.Capacity, qt.Equals, 90)
c.Assert(req.Rate, qt.IsNil)
c.Assert(req.Burst, qt.IsNil)
c.Assert(req.Concurrency, qt.IsNil)
c.Assert(req.WarningThreshold, qt.IsNil)
c.Assert(req.Rules, qt.IsNil)
return updated, nil
},
}
ch := &cmdutil.Helper{
Printer: p,
Config: &config.Config{Organization: org},
Client: func() (*ps.Client, error) {
return &ps.Client{TrafficBudgets: svc}, nil
},
}
cmd := BudgetUpdateCmd(ch)
cmd.SetArgs([]string{db, branch, budgetID,
"--name", "Renamed Budget",
"--mode", "warn",
"--capacity", "90",
})
err := cmd.Execute()
c.Assert(err, qt.IsNil)
c.Assert(svc.UpdateFnInvoked, qt.IsTrue)
res := &TrafficBudget{orig: updated}
c.Assert(buf.String(), qt.JSONEquals, res)
}