tests/testthat/test-dashboard.R

skip_if_not_installed("rmarkdown", minimum_version = "2.12")

test_that("templates exist", {
    expect_equal(
        rmarkdown::available_templates("vetiver"),
        c("vetiver_dashboard", "vetiver_model_card")
    )
})

describe("vetiver_dashboard()", {

    # don't run on cran because pandoc is required
    skip_on_cran()
    skip_if_not_installed("flexdashboard")

    rmd <- withr::local_tempfile(fileext = ".Rmd")
    html <- withr::local_tempfile(fileext = ".html")
    path <- expect_invisible(rmarkdown::draft(
        rmd,
        template = "vetiver_dashboard",
        package = "vetiver",
        create_dir = FALSE,
        edit = FALSE
    ))

    it("can create dashboard", {
        expect_identical(rmd, path)
        expect_true(file.exists(rmd))
    })

    it("errors without pin", {
        b <- pins::board_temp()
        expect_snapshot(
            vetiver_dashboard(pins = list(board = b, name = "seattle_rf", version = NULL)),
            error = TRUE
        )
    })

    it("can render dashboard", {
        b <- pins::board_temp()
        pin_example_kc_housing_model(b)
        output_format <- vetiver_dashboard(pins = list(board = b, name = "seattle_rf", version = NULL))
        rmarkdown::render(rmd, output_format = output_format, output_file = html)
        expect_true(file.exists(html))
    })

})
tidymodels/vetiver documentation built on Oct. 15, 2024, 4:16 p.m.