ci_vars <- c( "APPVEYOR" = NA, "APPVEYOR_BUILD_NUMBER" = NA, "APPVEYOR_REPO_BRANCH" = NA, "APPVEYOR_REPO_COMMIT" = NA, "APPVEYOR_REPO_NAME" = NA, "BRANCH_NAME" = NA, "BUILD_NUMBER" = NA, "BUILD_URL" = NA, "CI" = NA, "CIRCLECI" = NA, "CIRCLE_BRANCH" = NA, "CIRCLE_BUILD_NUM" = NA, "CIRCLE_PROJECT_REPONAME" = NA, "CIRCLE_PROJECT_USERNAME" = NA, "CIRCLE_SHA1" = NA, "CI_BRANCH" = NA, "CI_BUILD_NUMBER" = NA, "CI_BUILD_URL" = NA, "CI_COMMIT_ID" = NA, "CI_NAME" = NA, "CODECOV_TOKEN" = NA, "DRONE" = NA, "DRONE_BRANCH" = NA, "DRONE_BUILD_NUMBER" = NA, "DRONE_BUILD_URL" = NA, "DRONE_COMMIT" = NA, "GIT_BRANCH" = NA, "GIT_COMMIT" = NA, "JENKINS_URL" = NA, "REVISION" = NA, "SEMAPHORE" = NA, "SEMAPHORE_BUILD_NUMBER" = NA, "SEMAPHORE_REPO_SLUG" = NA, "TRAVIS" = NA, "TRAVIS_BRANCH" = NA, "TRAVIS_COMMIT" = NA, "TRAVIS_JOB_ID" = NA, "TRAVIS_JOB_NUMBER" = NA, "TRAVIS_PULL_REQUEST" = NA, "TRAVIS_REPO_SLUG" = NA, "WERCKER_GIT_BRANCH" = NA, "WERCKER_GIT_COMMIT" = NA, "WERCKER_GIT_OWNER" = NA, "WERCKER_GIT_REPOSITORY" = NA, "WERCKER_MAIN_PIPELINE_STARTED" = NA ) read_file <- function(file) paste(collapse = "\n", readLines(file)) cov <- package_coverage(test_path("TestS4")) test_that("coveralls generates a properly formatted json file", { withr::local_envvar(c( ci_vars, "CI_NAME" = "FAKECI" )) local_mocked_bindings( RETRY = function(...) list(...), content = identity, upload_file = function(file) readChar(file, file.info(file)$size) ) res <- coveralls(coverage = cov) json <- jsonlite::fromJSON(res$body$json_file) expect_equal(nrow(json$source_files), 1) expect_equal(json$service_name, "fakeci") expect_match(json$source_files$name, rex::rex("R", one_of("/", "\\"), "TestS4.R")) expect_equal(json$source_files$source, read_file("TestS4/R/TestS4.R")) expect_equal(json$source_files$source_digest, "1233f2eca5d84704101cb9d9b928f2e9") expect_equal( json$source_files$coverage[[1]], c( NA, NA, NA, NA, NA, NA, 5, 2, NA, 3, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, 1, NA ) ) }) test_that("coveralls can spawn a job using repo_token", { withr::local_envvar(c( ci_vars, "CI_NAME" = "DRONE" )) local_mocked_bindings( RETRY = function(...) list(...), content = identity, upload_file = function(file) readChar(file, file.info(file)$size), system_output = function(...) paste0(c("a", "b", "c", "d", "e", "f"), collapse = "\n") ) res <- coveralls(coverage = cov, repo_token = "mytoken") json <- jsonlite::fromJSON(res$body$json_file) expect_equal(is.null(json$git), FALSE) expect_equal(nrow(json$source_files), 1) # service_name set #285 expect_equal(json$service_name, "drone") expect_equal(json$repo_token, "mytoken") expect_match(json$source_files$name, rex::rex("R", one_of("/", "\\"), "TestS4.R")) expect_equal(json$source_files$source, read_file("TestS4/R/TestS4.R")) expect_equal(json$source_files$source_digest, "1233f2eca5d84704101cb9d9b928f2e9") expect_equal( json$source_files$coverage[[1]], c( NA, NA, NA, NA, NA, NA, 5, 2, NA, 3, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, 1, NA ) ) }) test_that("generates correct payload for Drone and Jenkins", { withr::local_envvar(c( ci_vars, "CI_NAME" = "FAKECI", "CI_BRANCH" = "fakebranch", "CI_REMOTE" = "covr" )) local_mocked_bindings( system_output = function(...) paste0(c("a", "b", "c", "d", "e", "f"), collapse = "\n") ) git <- jenkins_git_info() expect_equal(git$head$id, jsonlite::unbox("a")) expect_equal(git$head$author_name, jsonlite::unbox("b")) expect_equal(git$head$author_email, jsonlite::unbox("c")) expect_equal(git$head$commiter_name, jsonlite::unbox("d")) expect_equal(git$head$commiter_email, jsonlite::unbox("e")) expect_equal(git$head$message, jsonlite::unbox("f")) expect_equal(git$branch, jsonlite::unbox("fakebranch")) expect_equal(git$remotes[[1]]$name, jsonlite::unbox("origin")) expect_equal(git$remotes[[1]]$url, jsonlite::unbox("covr")) }) test_that("coveralls can spawn a job using repo_token - travis-pro #285", { withr::local_envvar( c(ci_vars, "CI_NAME" = "travis-pro") ) local_mocked_bindings( RETRY = function(...) list(...), content = identity, upload_file = function(file) readChar(file, file.info(file)$size), system_output = function(...) paste0(c("a", "b", "c", "d", "e", "f"), collapse = "\n") ) res <- coveralls(coverage = cov, repo_token = "mytoken") json <- jsonlite::fromJSON(res$body$json_file) expect_equal(is.null(json$git), FALSE) expect_equal(nrow(json$source_files), 1) expect_equal(json$service_name, "travis-pro") expect_equal(json$repo_token, "mytoken") expect_match(json$source_files$name, rex::rex("R", one_of("/", "\\"), "TestS4.R")) expect_equal(json$source_files$source, read_file("TestS4/R/TestS4.R")) expect_equal(json$source_files$source_digest, "1233f2eca5d84704101cb9d9b928f2e9") expect_equal( json$source_files$coverage[[1]], c( NA, NA, NA, NA, NA, NA, 5, 2, NA, 3, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, 1, NA ) ) # git correct #285 expect_equal(json$git$head$id, "a") expect_equal(json$git$head$author_name, "b") expect_equal(json$git$head$author_email, "c") expect_equal(json$git$head$commiter_name, "d") expect_equal(json$git$head$commiter_email, "e") expect_equal(json$git$head$message, "f") })