From fe6e1e12b11db4c1e538bbc3f7b90aa7e35381fa Mon Sep 17 00:00:00 2001 From: Siyuan Miao Date: Wed, 3 Jun 2026 10:59:11 +0200 Subject: [PATCH] feat: allow to specify name when creating backup --- internal/cmd/backup/create.go | 2 ++ internal/cmd/backup/create_test.go | 48 ++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/internal/cmd/backup/create.go b/internal/cmd/backup/create.go index 0e2dd8b6..19d610f0 100644 --- a/internal/cmd/backup/create.go +++ b/internal/cmd/backup/create.go @@ -56,5 +56,7 @@ func CreateCmd(ch *cmdutil.Helper) *cobra.Command { }, } + cmd.Flags().StringVar(&createReq.Name, "name", "", "Optional name for the backup") + return cmd } diff --git a/internal/cmd/backup/create_test.go b/internal/cmd/backup/create_test.go index d56b842a..cb3ba0d0 100644 --- a/internal/cmd/backup/create_test.go +++ b/internal/cmd/backup/create_test.go @@ -33,6 +33,7 @@ func TestBackup_CreateCmd(t *testing.T) { c.Assert(req.Organization, qt.Equals, org) c.Assert(req.Database, qt.Equals, db) c.Assert(req.Branch, qt.Equals, branch) + c.Assert(req.Name, qt.Equals, "") return res, nil }, @@ -58,3 +59,50 @@ func TestBackup_CreateCmd(t *testing.T) { c.Assert(svc.CreateFnInvoked, qt.IsTrue) c.Assert(buf.String(), qt.JSONEquals, res) } + +func TestBackup_CreateCmdWithName(t *testing.T) { + c := qt.New(t) + + var buf bytes.Buffer + format := printer.JSON + p := printer.NewPrinter(&format) + p.SetResourceOutput(&buf) + + org := "planetscale" + db := "planetscale" + branch := "development" + name := "my-backup" + + res := &ps.Backup{Name: "foo"} + + svc := &mock.BackupsService{ + CreateFn: func(ctx context.Context, req *ps.CreateBackupRequest) (*ps.Backup, 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.Name, qt.Equals, name) + + return res, nil + }, + } + + ch := &cmdutil.Helper{ + Printer: p, + Config: &config.Config{ + Organization: org, + }, + Client: func() (*ps.Client, error) { + return &ps.Client{ + Backups: svc, + }, nil + }, + } + + cmd := CreateCmd(ch) + cmd.SetArgs([]string{db, branch, "--name", name}) + err := cmd.Execute() + + c.Assert(err, qt.IsNil) + c.Assert(svc.CreateFnInvoked, qt.IsTrue) + c.Assert(buf.String(), qt.JSONEquals, res) +}