Skip to contents

The aim of shinytesters is to make it easier to test update functions in Shiny packages when using testthat::testServer.

Installation

To install the latest development version of shinytesters, install from GitHub:

remotes::install_github("ashbaldry/shinytesters")

Usage

Add use_shiny_testers() at the start of any test that is using shiny::testServer to add inputs and other relevant arguments to the test session inputs.

test_that("When clicking apply button, checkbox becomes checked", {
  use_shiny_testers()

  example_server_fn <- function(input, output, session) {
    observeEvent(input$apply_btn, {
      updateCheckboxInput(
        inputId = "result",
        label = "New Label",
        value = TRUE
      )
    })
  }

  shiny::testServer(
    app = example_server_fn,
    expr = {
      session$setInputs(apply_btn = 1L)

      expect_identical(input$result, TRUE)
      expect_identical(input$result.label, "New Label")
    }
  )
})