tests/testthat/test-auth.R

test_that("initialize_scienbase_session login results in valid session and renew works", {
	skip_on_cran()
	
	try_auth()

	initialize_sciencebase_session()
	
	on.exit(sbtools:::clean_session())
	
	expect_true(session_validate())

	expect_equal(nchar(user_id()), 24)
	
	expect_type(sbtools:::get_refresh_token(), "character")
	expect_type(sbtools:::get_access_token(), "character")
	
	expect_s3_class(sbtools:::pkg.env$keycloak_expire, "POSIXct")
	
	old <- sbtools:::pkg.env$keycloak_expire
	
	check <- sbtools:::refresh_token_before_expired(5000)
	
	expect_true(check)

	new <- sbtools:::pkg.env$keycloak_expire		
	
	expect_true(old < new)

})


test_that("login results in valid session and renew works (new)", {
	skip_on_cran()
	
	sbtools:::clean_session()
	
	token <- get_cached_token()
	user <- try(get_username())
	
	if(token == "" | inherits(user, "try-error")) {
		skip("Authenticated tests skipped due to lack of login info")
	}
	
	unlink(sbtools:::token_stache_path(), force = TRUE)
	
	if(!initialize_sciencebase_session(user, token)) {
		sbtools:::clean_session()
		
		skip("token didn't work, refresh it?")
		
	}
	
	on.exit(sbtools:::clean_session())
	
	expect_true(file.exists(sbtools:::token_stache_path()))
	
	expect_true(initialize_sciencebase_session())
	
	expect_true(session_validate())
	
	expect_equal(nchar(user_id()), 24)
	
	expect_type(sbtools:::get_refresh_token(), "character")
	expect_type(sbtools:::get_access_token(), "character")
	
	expect_s3_class(sbtools:::pkg.env$keycloak_expire, "POSIXct")
	
	old <- sbtools:::pkg.env$keycloak_expire
	
	check <- sbtools:::refresh_token_before_expired(5000)
	
	expect_true(check)
	
	new <- sbtools:::pkg.env$keycloak_expire		
	
	expect_true(old < new)
	
})
USGS-R/sbtools documentation built on June 10, 2025, 12:52 p.m.