tests/testthat/test-permissions.R
16682a4f
 # This tests the permission setter functions 
 # library(testthat); library(gypsum); source("setup.R"); source("test-permissions.R")
 
 test_that("permission setting works as expected", {
     skip_if(is.na(gh_token))
1b4c5274
     removeProject("test-R-perms", token=gh_token)
16682a4f
     createProject("test-R-perms", owners="LTLA", token=gh_token)
 
     until <- round(Sys.time() + 1000000)
     setPermissions("test-R-perms",
         owners="jkanche", 
         uploaders=list(
            list(id="lawremi", until=until)
         ),
         token=gh_token
     )
 
     perms <- fetchPermissions("test-R-perms")
     expect_identical(perms$owners, list("LTLA", "jkanche"))
     expect_identical(length(perms$uploaders), 1L)
     expect_identical(perms$uploaders[[1]]$id, "lawremi")
     expect_equal(perms$uploaders[[1]]$until, until)
 
     # Checking uploader appending, while also checking owners=NULL.
     setPermissions("test-R-perms", uploaders=list(list(id="ArtifactDB-bot", trusted=TRUE)), token=gh_token)
     perms <- fetchPermissions("test-R-perms")
     expect_identical(perms$owners, list("LTLA", "jkanche"))
     expect_identical(length(perms$uploaders), 2L)
     expect_identical(perms$uploaders[[1]]$id, "lawremi")
     expect_identical(perms$uploaders[[2]]$id, "ArtifactDB-bot")
     expect_true(perms$uploaders[[2]]$trusted)
 
     # Checking union of owners, and also that uploaders=NULL works.
     setPermissions("test-R-perms", owners=c("PeteHaitch", "LTLA"), token=gh_token)
     perms <- fetchPermissions("test-R-perms")
     expect_identical(perms$owners, list("LTLA", "jkanche", "PeteHaitch"))
     expect_identical(length(perms$uploaders), 2L)
 
     # Resetting the owners back.
     setPermissions("test-R-perms", owners="LTLA", append=FALSE, token=gh_token)
     perms <- fetchPermissions("test-R-perms")
     expect_identical(perms$owners, list("LTLA"))
     expect_identical(length(perms$uploaders), 2L)
 
     # Now resetting the uploaders. 
     setPermissions("test-R-perms", uploaders=list(), append=FALSE, token=gh_token)
     perms <- fetchPermissions("test-R-perms")
     expect_identical(perms$owners, list("LTLA"))
     expect_identical(length(perms$uploaders), 0L)
 })