tests/testthat/test-cr_funders.R

context("testing cr_funders")


vcr::use_cassette("cr_funders", {
  test_that("cr_funders returns", {

    a <- suppressWarnings(cr_funders(dois=c('10.13039/100000001',
                                            '10.13039/100000015')))
    b <- suppressWarnings(cr_funders(dois='10.13039/100000001', 
                                     works=TRUE, limit=5))

    # correct clases
    expect_is(suppressWarnings(cr_funders(query="NSF", limit=1)), "list")
    expect_is(a, "list")
    expect_is(a[[1]]$data, "data.frame")
    expect_is(a[[1]]$descendants, "character")

    expect_is(b, "list")
    expect_is(b$data, "tbl_df")

    # dimensions are correct
    expect_equal(length(a), 2)
    expect_equal(length(b), 3)
  })
})

# vcr::use_cassette("cr_funders_faceting", {
#   test_that("cr_funders facet works", {
  
#     a <- cr_funders("10.13039/100000001", works=TRUE, facet=TRUE, limit = 0)
    
#     expect_is(a, "list")
#     expect_is(a$data, "data.frame")
#     expect_is(a$meta, "data.frame")
#     expect_is(a$facets, "list")
#     expect_is(a$facets$affiliation, "data.frame")
#     expect_is(a$facets$published, "data.frame")
#   })
# })


vcr::use_cassette("cr_funders_fails_well", {
  test_that("cr_funders fails correctly", {

    expect_warning(cr_funders(dois = '10.13039/100000001afasfasdf'),
                 "Resource not found")
  })
})

vcr::use_cassette("cr_funders_email_works", {
  test_that("cr_funders - email works", {
  
    withr::with_envvar(
      new = c("crossref_email" = "name@example.com"),
      expect_is(cr_funders(dois=c('10.13039/100000001')), "list")
    )
  })
})


  test_that("cr_funders - email is validated", {
    withr::with_envvar(
      new = c("crossref_email" = "name@example"),
      expect_error(cr_funders(dois=c('10.13039/100000001')))
    )
})

vcr::use_cassette("cr_funders_email_null_works", {
  test_that("cr_funders - email NULL works", {

    withr::with_envvar(
      new = c("crossref_email" = ""),
      expect_is(cr_funders(dois=c('10.13039/100000001')), "list")
    )
  })
})

test_that("cr_funders cursor works with progress bar", {
  vcr::use_cassette("cr_funders_with_cursor_and_progress_bar", {
    expect_output(
      cr_funders('100000001', works = TRUE, cursor = "*",
        cursor_max = 90, limit = 30, .progress = TRUE),
      "======="
    )
  })
})
ropensci/rcrossref documentation built on March 25, 2023, 6:42 p.m.