context("phenomena") check_api <- function() { skip_on_cran() code <- NA try(code <- httr::status_code(httr::GET(osem_endpoint()))) if (is.na(code)) skip("API not available") } try({ boxes <- osem_boxes() all_phen <- unique(unlist(boxes$phenomena)) }) test_that("phenomena from boxes is a list of counts", { check_api() phenomena <- osem_phenomena(boxes) expect_true(is.numeric(unlist(phenomena))) expect_true(is.list(phenomena)) }) test_that("phenomena from boxes has all phenomena", { check_api() phenomena <- osem_phenomena(boxes) expect_true(all(all_phen %in% names(phenomena))) expect_true(all(names(phenomena) %in% all_phen)) }) test_that("phenomena from a not sensebox data.frame returns error", { expect_error(osem_phenomena(list()), "no applicable method") expect_error(osem_phenomena(data.frame()), "no applicable method") boxes_df <- boxes class(boxes_df) <- c("data.frame") expect_error(osem_phenomena(boxes_df), "no applicable method") })