withr::local_envvar(GITHUB_PAT="FAIL")
test_that("git_list_refs", {
skip_on_cran()
expect_snapshot(
git_list_refs(fake_git$url("/pak-test.git"))$refs
)
# filter
expect_snapshot(
git_list_refs_v2(
fake_git$url("/pak-test.git"),
"refs/heads/"
)$refs
)
})
test_that("git_list_files", {
skip_on_cran()
expect_error(
git_list_files(
fake_git$url("/pak-test.git"),
"foobar"
),
"Unknown git ref"
)
if (!l10n_info()[["UTF-8"]]) skip("UTF-8 snapshot")
expect_snapshot({
git_list_files(
fake_git$url("/pak-test.git"),
"cefdc0eebcd7f757efb9a80652fd8aaf1a87508e"
)
git_list_files(
fake_git$url("/pak-test.git"),
"refs/tags/v1"
)
})
})
test_that("async_git_list_files_process", {
# reordering objects in a PACK file does not matter
ref <- "cefdc0eebcd7f757efb9a80652fd8aaf1a87508e"
pack <- git_fetch(fake_git$url("/pak-test.git"), ref, blobs = FALSE)
withr::local_seed(13L)
pack <- sample(pack)
expect_snapshot(
sort(async_git_list_files_process(
pack,
ref = ref,
sha = ref,
url = "url"
)$files$path)
)
})
test_that("git_download_file", {
skip_on_cran()
tmp <- tempfile()
on.exit(unlink(tmp), add = TRUE)
expect_snapshot({
out <- git_download_file(
fake_git$url("/pak-test.git"),
"a1e2d6741374d1f32ec138ee2020eae36b859e99",
tmp
)
out
readLines(tmp)
})
})
test_that("git_fetch", {
skip_on_cran()
# force v1
pack <- git_fetch(
fake_git$url("/pak-test.git"),
structure("cefdc0eebcd7f757efb9a80652fd8aaf1a87508e", protocol = "1")
)
if (!l10n_info()[["UTF-8"]]) skip("UTF-8 snapshot")
expect_snapshot(cat(pack[[1]]$object))
})
test_that("raw_as_utf8", {
# TODO
expect_true(TRUE)
})
test_that("git_parse_message errors", {
expect_snapshot(
error = TRUE,
git_parse_message(raw(3))
)
expect_snapshot(
error = TRUE,
git_parse_message(charToRaw("foobvar"))
)
expect_snapshot(
error = TRUE,
git_parse_message(charToRaw("00bbnoteonugh"))
)
})
test_that("git_create_message_v1", {
expect_snapshot(
error = TRUE,
git_create_message_v1(character())
)
})
test_that("git_create_message_v2", {
# TODO
expect_true(TRUE)
})
test_that("git_send_message", {
# TODO
expect_true(TRUE)
})
test_that("pkt_line", {
expect_snapshot(
error = TRUE,
pkt_line(raw(70000))
)
})
test_that("git_list_refs_v1", {
skip_on_cran()
expect_snapshot(
git_list_refs_v1(fake_git$url("/pak-test.git"))$refs
)
})
test_that("git_list_refs_v1_process_1", {
skip_on_cran()
resp <- readRDS(test_path("fixtures", "git-response-v1.rds"))
expect_snapshot(
git_list_refs_v1_process_1(
resp,
fake_git$url("/pak-test.git"),
"refs/tags/v1"
)$refs
)
})
test_that("async_git_list_refs_v2_process_1", {
skip_on_cran()
# works with a v1 response as well
resp <- readRDS(test_path("fixtures", "git-response-v1.rds"))
expect_snapshot(
sy(async_git_list_refs_v2_process_1(
resp,
fake_git$url("/pak-test.git"),
"refs/tags/v1"
))$refs
)
})
test_that("async_git_list_refs_v2_process_2", {
psd <- readRDS(test_path("fixtures", "git-response-parsed-v2.rds"))
url <- "http://localhost:3000/git/cli"
psd2 <- psd
psd2[[1]]$text <- NULL
expect_snapshot(
error = TRUE,
async_git_list_refs_v2_process_2(NULL, psd2, url, NULL)
)
psd2 <- psd
psd2[[1]]$text <- "version 10"
expect_snapshot(
error = TRUE,
async_git_list_refs_v2_process_2(NULL, psd2, url, NULL)
)
psd2 <- psd
psd2[[length(psd2)]]$type <- "data-pkt"
expect_snapshot(
error = TRUE,
async_git_list_refs_v2_process_2(NULL, psd2, url, NULL)
)
})
test_that("check_initial_response", {
expect_snapshot(
error = TRUE,
check_initial_response(list(), "http://localhost:3000/git/cli")
)
})
test_that("async_git_list_refs_v2_process_2", {
url <- "http://localhost:3000/git/cli"
expect_snapshot(
error = TRUE,
async_git_list_refs_v2_process_3(
list(list(type = "data-pkt")),
character(),
url
)
)
})
test_that("git_parse_okt_line_refs", {
# TODO
expect_true(TRUE)
})
test_that("git_list_refs_v2", {
# TODO
expect_true(TRUE)
})
test_that("git_unpack", {
path <- test_path("fixtures/git-test-1.pack")
up1 <- git_unpack(path)
up2 <- git_unpack(readBin(path, "raw", file.size(path)))
expect_equal(up1, up2)
if (!l10n_info()[["UTF-8"]]) skip("UTF-8 snapshot")
expect_snapshot(git_unpack(path))
})
test_that("git_list_pack_index", {
path <- test_path("fixtures/git-test-1.idx")
expect_snapshot(git_list_pack_index(path))
})
test_that("git_unpack errors", {
path <- test_path("fixtures/git-test-1.pack")
pack <- readBin(path, "raw", file.size(path))
expect_snapshot(
error = TRUE,
git_unpack(pack[1:30])
)
expect_snapshot(
error = TRUE,
git_unpack(charToRaw("nope and some more so we have enough bytes"))
)
pack2 <- pack
pack2[8] <- as.raw(1)
expect_snapshot(
error = TRUE,
git_unpack(pack2)
)
pack2 <- pack
pack2[length(pack2)] <- as.raw(11)
expect_snapshot(
error = TRUE,
git_unpack(pack2)
)
})
test_that("parse_int32_nwb", {
expect_snapshot(
error = TRUE,
parse_int32_nwb(raw(3))
)
})
test_that("parse_size", {
# TODO
expect_true(TRUE)
})
test_that("parse_tree", {
# TODO
expect_true(TRUE)
})
test_that("bin_to_sha", {
# TODO
expect_true(TRUE)
})
test_that("parse_commit", {
# TODO
expect_true(TRUE)
})
test_that("async_git_resolve_ref", {
skip_on_cran()
# branches w/o refs/heads/ prefix
expect_snapshot(
sy(async_git_resolve_ref(
fake_git$url("/pak-test.git"),
"main"
))
)
# tags w/o refs/rags/ prefix
expect_snapshot(
sy(async_git_resolve_ref(
fake_git$url("/pak-test.git"),
"v1"
))
)
# sha prefix
expect_snapshot(
sy(async_git_resolve_ref(
fake_git$url("/pak-test.git"),
"3f3b0b4ee8a0ff"
))
)
# unknown sha prefix -> error
expect_snapshot(
error = TRUE,
sy(async_git_resolve_ref(
fake_git$url("/pak-test.git"),
"badcafe"
))
)
mockery::stub(
async_git_resolve_ref, "async_git_list_refs",
function(...) async_constant(list(
refs = data_frame(
ref = c("one", "two"),
hash = c("badcafe1", "badcafe2")
),
caps = character()
))
)
expect_snapshot(
error = TRUE,
sy(async_git_resolve_ref(
fake_git$url("/pak-test.git"),
"badcafe"
))
)
})
test_that("git_fetch_process_v1", {
url <- "https://user:secret@example.com"
expect_snapshot(
error = TRUE,
git_fetch_process_v1(list(), url, "badcafe")
)
expect_snapshot(
error = TRUE,
git_fetch_process_v1(list(list(type = "boo")), url, "badcafe")
)
})
test_that("git_download_repo", {
skip_on_cran()
dir.create(tmp <- tempfile())
on.exit(unlink(tmp, recursive = TRUE), add = TRUE)
git_download_repo(
fake_git$url("/pak-test.git"),
ref = "v1",
output = file.path(tmp, "v1")
)
expect_snapshot(dir(tmp, recursive = TRUE))
})
test_that("unpack_packfile_repo", {
# reordering objects in a PACK file does not matter
ref <- "cefdc0eebcd7f757efb9a80652fd8aaf1a87508e"
pack <- git_fetch(fake_git$url("/pak-test.git"), ref, blobs = TRUE)
withr::local_seed(13L)
pack <- sample(pack)
output <- tempfile()
on.exit(unlink(output, recursive = TRUE), add = TRUE)
unpack_packfile_repo(pack, output, url = "url")
expect_snapshot(
sort(dir(output, recursive=TRUE))
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.