withr::local_envvar(GITHUB_PAT="FAIL")
test_that("parse_submodules", {
sm <- test_path("fixtures/submodules.ini")
expect_snapshot({
parse_submodules(sm)
parse_submodules(read_char(sm))
})
file.create(tmp <- tempfile())
on.exit(unlink(tmp), add = TRUE)
expect_snapshot({
parse_submodules(tmp)
})
# invalid file
sm2 <- test_path("fixtures/submodules2.ini")
sm3 <- test_path("fixtures/submodules3.ini")
expect_snapshot({
parse_submodules(sm2)
parse_submodules(sm3)
})
})
test_that("git_download_repo with submodules", {
skip_on_cran()
if (Sys.which("git") == "") skip("Needs git")
dir.create(tmp <- tempfile())
on.exit(unlink(tmp, recursive = TRUE), add = TRUE)
output <- file.path(tmp, "v1")
git_download_repo(
fake_git$url("/pak-test.git"),
output = output
)
# tag
writeLines(c(
"[submodule \"submod\"]",
"\tpath = submod",
paste0("\turl = ", fake_git$url("/submod")),
"\tbranch = v2"
), file.path(output, ".gitmodules"))
update_git_submodules(output)
expect_snapshot(dir(tmp, recursive = TRUE))
expect_snapshot(readLines(file.path(output, "submod", "README")))
# HEAD
unlink(file.path(output, "submod"), recursive = TRUE)
writeLines(c(
"[submodule \"submod\"]",
"\tpath = submod",
paste0("\turl = ", fake_git$url("/submod"))
), file.path(output, ".gitmodules"))
update_git_submodules(output)
# it will skip existing ones
update_git_submodules(output)
expect_snapshot(dir(tmp, recursive = TRUE))
expect_snapshot(readLines(file.path(output, "submod", "README")))
})
test_that("git_download_repo R package with submodules", {
skip_on_cran()
if (Sys.which("git") == "") skip("Needs git")
dir.create(tmp <- tempfile())
on.exit(unlink(tmp, recursive = TRUE), add = TRUE)
output <- file.path(tmp, "v1")
git_download_repo(
fake_git$url("/pak-test.git"),
output = output
)
# tag
writeLines(c(
"[submodule \"submod\"]",
"\tpath = submod",
paste0("\turl = ", fake_git$url("/submod")),
"\tbranch = v2"
), file.path(output, ".gitmodules"))
update_git_submodules_r(output, ".")
expect_snapshot(dir(tmp, recursive = TRUE))
expect_snapshot(readLines(file.path(output, "submod", "README")))
# HEAD
unlink(file.path(output, "submod"), recursive = TRUE)
writeLines(c(
"[submodule \"submod\"]",
"\tpath = submod",
paste0("\turl = ", fake_git$url("/submod"))
), file.path(output, ".gitmodules"))
update_git_submodules_r(output, ".")
# it will skip existing ones
update_git_submodules_r(output, ".")
expect_snapshot(dir(tmp, recursive = TRUE))
expect_snapshot(readLines(file.path(output, "submod", "README")))
# no submodule file
unlink(file.path(output, "submod"), recursive = TRUE)
unlink(file.path(output, ".gitmodules"))
update_git_submodules_r(output, ".")
expect_snapshot(dir(tmp, recursive = TRUE))
# Empty submodule file
unlink(file.path(output, "submod"), recursive = TRUE)
writeLines(character(), file.path(output, ".gitmodules"))
update_git_submodules_r(output, ".")
expect_snapshot(dir(tmp, recursive = TRUE))
})
test_that("git_download_repo R package with ignored submodule", {
skip_on_cran()
if (Sys.which("git") == "") skip("Needs git")
dir.create(tmp <- tempfile())
on.exit(unlink(tmp, recursive = TRUE), add = TRUE)
output <- file.path(tmp, "v1")
git_download_repo(
fake_git$url("/pak-test.git"),
ref = "build-ignore",
output = output
)
update_git_submodules_r(output, ".")
expect_snapshot(dir(tmp, recursive = TRUE, all.files = TRUE, no.. = TRUE))
})
test_that("directories", {
dir.create(tmp <- tempfile())
on.exit(unlink(tmp, recursive = TRUE), add = TRUE)
wd <- getwd()
on.exit(setwd(wd), add = TRUE)
setwd(tmp)
mkdirp("a/b/c/d")
expect_snapshot({
directories("a")
directories("a/b/c/d")
})
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.