storj/cmd/uplinkng/cmd_rm_test.go
Jeff Wendling 987cb6ab11 cmd/uplinkng: allow removing pending objects
Change-Id: I12457e7d6fb28492ed4b6c5816f78aa7820fed6b
2021-10-20 12:25:25 -04:00

118 lines
3.5 KiB
Go

// Copyright (C) 2021 Storj Labs, Inc.
// See LICENSE for copying information.
package main
import (
"testing"
"storj.io/storj/cmd/uplinkng/ultest"
)
func TestRmRemote(t *testing.T) {
t.Run("Basic", func(t *testing.T) {
state := ultest.Setup(commands,
ultest.WithFile("sj://user/file1.txt"),
ultest.WithFile("sj://user/file2.txt"),
ultest.WithFile("/home/user/file1.txt"),
ultest.WithFile("/home/user/file2.txt"),
)
state.Succeed(t, "rm", "sj://user/file1.txt").RequireFiles(t,
ultest.File{Loc: "sj://user/file2.txt"},
ultest.File{Loc: "/home/user/file1.txt"},
ultest.File{Loc: "/home/user/file2.txt"},
)
})
t.Run("Recursive", func(t *testing.T) {
state := ultest.Setup(commands,
ultest.WithFile("sj://user/files/file1.txt"),
ultest.WithFile("sj://user/files/file2.txt"),
ultest.WithFile("sj://user/other_file1.txt"),
ultest.WithFile("/home/user/files/file1.txt"),
ultest.WithFile("/home/user/files/file2.txt"),
)
state.Succeed(t, "rm", "sj://user/files", "-r").RequireFiles(t,
ultest.File{Loc: "sj://user/other_file1.txt"},
ultest.File{Loc: "/home/user/files/file1.txt"},
ultest.File{Loc: "/home/user/files/file2.txt"},
)
})
t.Run("Pending", func(t *testing.T) {
state := ultest.Setup(commands,
ultest.WithPendingFile("sj://user/files/file1.txt"),
ultest.WithPendingFile("sj://user/files/file2.txt"),
ultest.WithPendingFile("sj://user/other_file1.txt"),
)
state.Succeed(t, "rm", "sj://user/files/file1.txt", "--pending").RequirePending(t,
ultest.File{Loc: "sj://user/files/file2.txt"},
ultest.File{Loc: "sj://user/other_file1.txt"},
)
})
t.Run("Pending Recursive", func(t *testing.T) {
state := ultest.Setup(commands,
ultest.WithPendingFile("sj://user/files/file1.txt"),
ultest.WithPendingFile("sj://user/files/file2.txt"),
ultest.WithPendingFile("sj://user/other_file1.txt"),
)
state.Succeed(t, "rm", "sj://user/files", "-r", "--pending").RequirePending(t,
ultest.File{Loc: "sj://user/other_file1.txt"},
)
})
}
func TestRmLocal(t *testing.T) {
t.Run("Basic", func(t *testing.T) {
state := ultest.Setup(commands,
ultest.WithFile("sj://user/file1.txt"),
ultest.WithFile("sj://user/file2.txt"),
ultest.WithFile("/home/user/file1.txt"),
ultest.WithFile("/home/user/file2.txt"),
)
state.Succeed(t, "rm", "/home/user/file1.txt").RequireFiles(t,
ultest.File{Loc: "sj://user/file1.txt"},
ultest.File{Loc: "sj://user/file2.txt"},
ultest.File{Loc: "/home/user/file2.txt"},
)
})
t.Run("Recursive", func(t *testing.T) {
state := ultest.Setup(commands,
ultest.WithFile("sj://user/files/file1.txt"),
ultest.WithFile("sj://user/files/file2.txt"),
ultest.WithFile("/home/user/files/file1.txt"),
ultest.WithFile("/home/user/files/file2.txt"),
ultest.WithFile("/home/user/other_file1.txt"),
)
state.Succeed(t, "rm", "/home/user/files", "-r").RequireFiles(t,
ultest.File{Loc: "sj://user/files/file1.txt"},
ultest.File{Loc: "sj://user/files/file2.txt"},
ultest.File{Loc: "/home/user/other_file1.txt"},
)
})
t.Run("Pending", func(t *testing.T) {
state := ultest.Setup(commands,
ultest.WithFile("sj://user/file1.txt"),
ultest.WithFile("sj://user/file2.txt"),
ultest.WithFile("/home/user/file1.txt"),
ultest.WithFile("/home/user/file2.txt"),
)
state.Succeed(t, "rm", "/home/user/file1.txt", "--pending").RequireFiles(t,
ultest.File{Loc: "sj://user/file1.txt"},
ultest.File{Loc: "sj://user/file2.txt"},
ultest.File{Loc: "/home/user/file1.txt"},
ultest.File{Loc: "/home/user/file2.txt"},
)
})
}