tests/testthat/test-cr_journals.R

context("testing cr_journals")

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

    a <- cr_journals()
    expect_is(a, "list")
    expect_is(a$data, "tbl_df")
    expect_is(a$data, "data.frame")
  })
})

test_that("cr_journals paging works correctly", {
  vcr::use_cassette("cr_journals_pagination", {

    expect_equal(NROW(cr_journals(issn = '1803-2427', works = TRUE, limit=5)$data), 5)
  })
})

test_that("cr_journals metadata works correctly", {
  vcr::use_cassette("cr_journals_metadata", {

    expect_equal(cr_journals(query="peerj", limit=4)$meta$items_per_page, 4)
  })
})

test_that("cr_journals fails correctly", {
    expect_error(cr_journals(query="peerj", limit=4, timeout_ms = 1))
})

# test_that("cr_journals facet works", {
#   vcr::use_cassette("cr_journals_faceting", {
  
#     a <- cr_journals('1803-2427', works=TRUE, facet=TRUE, limit = 0)
    
#     expect_is(a, "list")
#     expect_is(a$data, "data.frame")
#     expect_null(a$meta)
#     expect_is(a$facets, "list")
#     expect_is(a$facets$affiliation, "data.frame")
#     expect_is(a$facets$published, "data.frame")
#   })
# })


test_that("cr_journals warns correctly", {
  vcr::use_cassette("cr_journals_warns_well", {

    expect_warning(cr_journals(issn = c('blblbl', '1932-6203')),
                   regexp = "Resource not found")
    expect_equal(NROW(suppressWarnings(cr_journals(issn = c('blblbl', '1932-6203')))$data), 1)
    expect_is(suppressWarnings(cr_journals(issn = c('blblbl', '1932-6203'))), "list")
  })
})

test_that("ISSNs that used to fail badly - should fail better now", {
  vcr::use_cassette("cr_journals_issn_behavior", {

    expect_warning(cr_journals("0413-6597"), "Resource not found")
    expect_warning(cr_journals(c('1932-6203', '1803-2427', "0413-6597")), 
      "Resource not found")
    expect_equal(
      NROW(
        suppressMessages(
          suppressWarnings(
            cr_journals(c('1932-6203', '1803-2427', "0413-6597"))))$data), 2)
  })
})

test_that("ISSNs that fail, and works=TRUE", {
  vcr::use_cassette("cr_journals_issn_workstrue_behavior", {

    expect_warning(cr_journals("0074-7742", works = TRUE), 
      "Resource not found")
    expect_warning(cr_journals(c("0074-7742", "1574-6941"), works = TRUE), 
      "Resource not found")
  })
})

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