test_that("inputs are checked when creating AuthState", {
client <- gargle_oauth_client(id = "CLIENT_ID", secret = "SECRET")
expect_snapshot(
init_AuthState(
package = NULL,
client = client,
api_key = "API_KEY",
auth_active = TRUE
),
error = TRUE
)
expect_snapshot(init_AuthState(client = "not_an_oauth_client"), error = TRUE)
expect_snapshot(init_AuthState(client = client, api_key = 1234), error = TRUE)
expect_snapshot(
init_AuthState(client = client, api_key = "API_KEY", auth_active = NULL),
error = TRUE
)
a <- init_AuthState(
package = "PACKAGE",
client = client,
api_key = "API_KEY",
auth_active = TRUE
)
expect_s3_class(a, "AuthState")
})
test_that("AuthState client can be modified and cleared", {
client <- gargle_oauth_client(id = "CLIENT_ID", secret = "SECRET", name = "AAA")
a <- init_AuthState(client = client, api_key = "API_KEY", auth_active = TRUE)
expect_equal(a$client$name, "AAA")
client2 <- gargle_oauth_client(id = "CLIENT_ID", secret = "SECRET", name = "BBB")
a$set_client(client2)
expect_equal(a$client$name, "BBB")
a$set_client(NULL)
expect_null(a$client)
})
test_that("AuthState api_key can be modified and cleared", {
client <- gargle_oauth_client(id = "CLIENT_ID", secret = "SECRET", name = "AAA")
a <- init_AuthState(client = client, api_key = "AAA", auth_active = TRUE)
expect_equal(a$api_key, "AAA")
a$set_api_key("BBB")
expect_equal(a$api_key, "BBB")
a$set_api_key(NULL)
expect_null(a$api_key)
})
test_that("AuthState auth_active can be toggled", {
client <- gargle_oauth_client(id = "CLIENT_ID", secret = "SECRET", name = "AAA")
a <- init_AuthState(client = client, api_key = "AAA", auth_active = TRUE)
expect_true(a$auth_active)
a$set_auth_active(FALSE)
expect_false(a$auth_active)
})
test_that("AuthState supports basic handling of cred", {
client <- gargle_oauth_client(id = "CLIENT_ID", secret = "SECRET", name = "AAA")
a <- init_AuthState(client = client, api_key = "AAA", auth_active = TRUE)
a$set_cred("hi")
expect_true(a$has_cred())
expect_equal(a$get_cred(), "hi")
a$clear_cred()
expect_false(a$has_cred())
a$set_cred("bye")
expect_equal(a$get_cred(), "bye")
})
test_that("AuthState prints nicely", {
client <- gargle_oauth_client(id = "CLIENT_ID", secret = "SECRET", name = "AAA")
a <- init_AuthState(
package = "PKG",
client = client,
api_key = "API_KEY",
auth_active = TRUE
)
a$set_cred(structure("TOKEN", class = "some_sort_of_token"))
expect_snapshot(print(a))
})
test_that("init_Authstate(app) argument is deprecated, but still works", {
withr::local_options(lifecycle_verbosity = "warning")
client <- gargle_oauth_client(id = "CLIENT_ID", secret = "SECRET")
expect_snapshot(
a <- init_AuthState(
package = "PACKAGE",
app = client,
api_key = "API_KEY",
auth_active = TRUE
)
)
expect_s3_class(a, "AuthState")
expect_s3_class(a$client, "gargle_oauth_client")
})
test_that("AuthState$new(app) is deprecated, but still works", {
withr::local_options(lifecycle_verbosity = "warning")
client <- gargle_oauth_client(id = "CLIENT_ID", secret = "SECRET")
expect_snapshot(
a <- AuthState$new(
package = "PACKAGE",
app = client,
api_key = "API_KEY",
auth_active = TRUE
)
)
expect_s3_class(a, "AuthState")
expect_s3_class(a$client, "gargle_oauth_client")
})
test_that("$set_app is deprecated, but still works", {
withr::local_options(lifecycle_verbosity = "warning")
client <- gargle_oauth_client(id = "CLIENT_ID", secret = "SECRET", name = "AAA")
a <- init_AuthState(
client = client,
# this just needs to be some package that is guaranteed to be installed, in
# order to fully exercise the deprecation warning
package = "rlang",
api_key = "API_KEY",
auth_active = TRUE
)
client2 <- gargle_oauth_client(id = "CLIENT_ID", secret = "SECRET", name = "BBB")
expect_snapshot(
a$set_app(client2)
)
expect_equal(a$client$name, "BBB")
})
test_that("$app still returns the client", {
client <- gargle_oauth_client(id = "CLIENT_ID", secret = "SECRET", name = "AAA")
a <- init_AuthState(client = client, api_key = "API_KEY", auth_active = TRUE)
expect_equal(a$app, client)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.