# These are used in several tests below.
creds_always <- function(scopes, ...) {
1
}
creds_never <- function(scopes, ...) {
NULL
}
creds_failure <- function(scopes, ...) {
stop("no creds")
}
creds_maybe <- function(scopes, arg1 = "", ...) {
if (arg1 != "") {
2
}
}
test_that("Basic token fetching works", {
withr::defer(cred_funs_set_default())
cred_funs_clear()
cred_funs_add(always = creds_always)
expect_equal(1, token_fetch(c()))
cred_funs_add(never = creds_never)
expect_equal(1, token_fetch(c()))
})
test_that("We fetch tokens in order", {
withr::defer(cred_funs_set_default())
cred_funs_clear()
cred_funs_add(always = creds_always)
cred_funs_add(maybe = creds_maybe)
expect_equal(1, token_fetch(c()))
expect_equal(2, token_fetch(c(), arg1 = "abc"))
cred_funs_set(list(always = creds_always, maybe = creds_maybe))
expect_equal(1, token_fetch(c()))
expect_equal(1, token_fetch(c(), arg1 = "abc"))
})
test_that("We sometimes return no token", {
withr::defer(cred_funs_set_default())
cred_funs_clear()
cred_funs_add(never = creds_never)
expect_null(token_fetch(c()))
})
test_that("We don't need any registered functions", {
withr::defer(cred_funs_set_default())
cred_funs_clear()
expect_null(token_fetch(c()))
})
test_that("We keep looking for credentials on error", {
withr::defer(cred_funs_set_default())
cred_funs_clear()
cred_funs_add(always = creds_always)
cred_funs_add(failure = creds_failure)
expect_equal(1, token_fetch(c()))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.