tests/testthat/test-cr_prefixes.R

context("testing cr_prefixes")

test_that("cr_prefixes returns correct class", {
  vcr::use_cassette("cr_prefixes", {

    a <- cr_prefixes(prefixes="10.1016")
    expect_is(a, "list")
    expect_is(a$data, "data.frame")
    expect_equal(a$facets, NULL)
  })
})

test_that("cr_prefixes paging works correctly", {
  vcr::use_cassette("cr_prefixes_pagination", {
    expect_equal(NROW(
      cr_prefixes(prefixes="10.1016", works = TRUE,
                  filter=c(has_full_text=TRUE),
                  limit=5)$data
      ),
      5
    )
    expect_equal(NCOL(cr_prefixes(prefixes="10.1016", works = TRUE,
                               query='ecology', limit=4)$meta), 5)
  })
})

test_that("cr_prefixes metadata works correctly", {
  vcr::use_cassette("cr_prefixes_metadata", {

    expect_equal(cr_prefixes(prefixes="10.1016", query='ecology', works = TRUE,
                          limit=4)$meta$items_per_page, 4)
  })
})

test_that("cr_prefixes facet works correctly", {
  vcr::use_cassette("cr_prefixes_faceting", {

    aa <- cr_prefixes(prefixes="10.17875", works=TRUE, facet= "container-title:*", limit = 10)

    expect_is(aa, "list")
    expect_named(aa, c('meta', 'data', 'facets'))
    expect_is(aa$facets, 'list')
    expect_is(aa$facets$`container-title`, 'data.frame')
  })
})

test_that("cr_prefixes fails correctly", {
  vcr::use_cassette("cr_prefixes_fails_well", {
    # curl timeout
    expect_error(cr_works(prefixes="10.1016", query='ecology',
                          limit=4, timeout_ms = 1))

    # prefix not found
    expect_warning(
      cr_prefixes_(prefixes = c("10.1038", "10.1684", "10.11090")),
      "/prefixes/10.11090 - Resource not found."
    )
  })
})

test_that("cr_prefixes cursor works with progress bar", {
  vcr::use_cassette("cr_prefixes_with_cursor_and_progress_bar", {
    expect_output(
      cr_prefixes("10.1016", works = TRUE, cursor = "*", cursor_max = 90,
        limit = 30, .progress = TRUE),
      "======="
    )
  })
})

Try the rcrossref package in your browser

Any scripts or data that you put into this service are public.

rcrossref documentation built on Nov. 12, 2022, 1:17 a.m.