Skip to content

Commit

Permalink
default & bad token for redcap_file_repo _list()
Browse files Browse the repository at this point in the history
ref #549
  • Loading branch information
wibeasley committed Nov 3, 2024
1 parent 57b96a9 commit 49184b0
Show file tree
Hide file tree
Showing 2 changed files with 93 additions and 0 deletions.
10 changes: 10 additions & 0 deletions inst/test-data/specific-redcapr/file-repo-list-oneshot/default.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
structure(list(folder_id = c(1L, NA, NA, NA, NA, NA), doc_id = c(NA,
6652L, 6653L, 6654L, 6655L, 6656L), name = c("the-state", "mugshot-1.jpg",
"mugshot-2.jpg", "mugshot-3.jpg", "mugshot-4.jpg", "mugshot-5.jpg"
)), row.names = c(NA, -6L), spec = structure(list(cols = list(
folder_id = structure(list(), class = c("collector_integer",
"collector")), doc_id = structure(list(), class = c("collector_integer",
"collector")), name = structure(list(), class = c("collector_character",
"collector"))), default = structure(list(), class = c("collector_guess",
"collector")), delim = ","), class = "col_spec"), class = c("spec_tbl_df",
"tbl_df", "tbl", "data.frame"))
83 changes: 83 additions & 0 deletions tests/testthat/test-file-repo-list-oneshot.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
library(testthat)

credential <- retrieve_credential_testing("file-repo")
update_expectation <- FALSE

test_that("smoke test", {
testthat::skip_on_cran()
expected_message <- "The file repository structure describing 6 elements was read from REDCap in [0-9.]+ seconds\\. The http status code was 200\\."

suppressMessages({
expect_message(
redcap_file_repo_list_oneshot(
redcap_uri = credential$redcap_uri,
token = credential$token
),
expected_message
)
})
})
test_that("default", {
testthat::skip_on_cran()
expected_message <- "The file repository structure describing 6 elements was read from REDCap in [0-9.]+ seconds\\. The http status code was 200\\."

path_expected <- "test-data/specific-redcapr/file-repo-list-oneshot/default.R"

suppressMessages({
expect_message(
returned_object <-
redcap_file_repo_list_oneshot(
redcap_uri = credential$redcap_uri,
token = credential$token
),
expected_message
)
})

if (update_expectation) save_expected(returned_object$data, path_expected)
expected_data_frame <- retrieve_expected(path_expected)

#Test the values of the returned object.
if (credential$redcap_uri == "https://redcap-dev-2.ouhsc.edu/redcap/api/") {
expect_equal(returned_object$data, expected=expected_data_frame, label="The returned data.frame should be correct", ignore_attr = TRUE) # dput(returned_object$data)
}

expect_equal(nrow(returned_object$data), expected=6L)
expect_equal(returned_object$data$name, expected_data_frame$name)
expect_equal(class(returned_object$data$folder_id), "integer")
expect_equal(class(returned_object$data$doc_id ), "integer")
expect_equal(
!is.na(returned_object$data$folder_id),
c(TRUE, FALSE, FALSE, FALSE, FALSE, FALSE)
)
expect_equal(
!is.na(returned_object$data$doc_id),
c(FALSE, TRUE, TRUE, TRUE, TRUE, TRUE)
)

expect_true(returned_object$success)
expect_equal(returned_object$status_code, expected=200L)
expect_match(returned_object$outcome_message, regexp=expected_message, perl=TRUE)
expect_true(returned_object$elapsed_seconds>0, "The `elapsed_seconds` should be a positive number.")
expect_equal(returned_object$raw_text, expected="", ignore_attr = TRUE) # dput(returned_object$raw_text)
})

test_that("download w/ bad token -Error", {
testthat::skip_on_cran()

returned_object <-
redcap_file_repo_list_oneshot(
redcap_uri = credential$redcap_uri,
token = "BAD00000000000000000000000000000",
verbose = FALSE
)

expected_data <- structure(list(), class = c("tbl_df", "tbl", "data.frame"), row.names = integer(0), names = character(0))
testthat::expect_equal(returned_object$data, expected_data)

testthat::expect_false(returned_object$success)
testthat::expect_equal(returned_object$status_code, 403L)
testthat::expect_equal(returned_object$raw_text, "ERROR: You do not have permissions to use the API")
})

rm(credential)

0 comments on commit 49184b0

Please sign in to comment.