describe("file_delete", { with_dir_tree(list("foo/bar" = "test"), { it("returns the input path and deletes the file", { expect_true(file_exists("foo/bar")) expect_equal(file_delete("foo/bar"), fs_path("foo/bar")) expect_false(file_exists("foo/bar")) }) it("can delete directories and files", { dir_create("baz") expect_true(dir_exists("baz")) expect_equal(file_delete("baz"), fs_path("baz")) expect_false(dir_exists("baz")) dir_create("baz") file_create(c("baz/bar", "faz")) expect_true(dir_exists("baz")) expect_true(file_exists("faz")) expect_equal(file_delete(c("baz", "faz")), fs_path(c("baz", "faz"))) expect_false(dir_exists("baz")) expect_false(file_exists("faz")) }) it("errors on missing input", { expect_error(file_delete(NA), class = "invalid_argument") }) }) }) describe("dir_delete", { it("deletes an empty directory and returns the path", { with_dir_tree(list("foo"), { expect_true(dir_exists("foo")) expect_equal(dir_delete("foo"), fs_path("foo")) expect_false(dir_exists("foo")) }) }) it("deletes a non-empty directory and returns the path", { with_dir_tree( list("foo/bar" = "test", "foo/baz" = "test2"), { expect_true(dir_exists("foo")) expect_equal(dir_delete("foo"), fs_path("foo")) expect_false(dir_exists("foo")) }) }) it("deletes nested directories and returns the path", { with_dir_tree( list("foo/bar/baz" = "test", "foo/baz/qux" = "test2"), { expect_true(dir_exists("foo")) expect_equal(dir_delete("foo"), fs_path("foo")) expect_false(dir_exists("foo")) }) }) it("deletes a non-empty directory with hidden files and directories and returns the path", { with_dir_tree( list("foo/bar" = "test", "foo/baz" = "test2", "foo/.blah" = "foo", ".dir"), { expect_true(dir_exists("foo")) expect_equal(dir_delete("foo"), fs_path("foo")) expect_false(dir_exists("foo")) }) }) it("errors on missing input", { expect_error(dir_delete(NA), class = "invalid_argument") }) }) describe("link_delete", { skip_on_os("windows") with_dir_tree(list("foo/bar" = "test"), { link_create("foo/bar", "loo") it("returns the input path and deletes the file", { expect_true(file_exists("loo")) expect_equal(link_delete("loo"), fs_path("loo")) expect_false(file_exists("loo")) }) it("errors on missing input", { expect_error(link_delete(NA), class = "invalid_argument") }) it("errors on non-link input", { expect_error(link_delete("foo"), class = "invalid_argument") expect_error(link_delete("foo/bar"), class = "invalid_argument") }) }) })