tests/testthat/test-module_run.R

test_that("Shiny app runs model", {
  # Don't run these tests on the CRAN build servers
  skip_on_cran()
  
  temp_dir <- tempdir()
  
  # Set up necessary files (internal function)
  unlink(paste0(temp_dir,"/files"), recursive = TRUE)
  shinyMixR:::setup_shinymixr_test(dir = paste0(temp_dir, "/files"), 
                                   overwrite = TRUE, 
                                   record = FALSE, 
                                   incres = FALSE)
  
  # if shinyMixR/temp directory does not exist yet, create it
  if (!dir.exists(paste0(temp_dir, "/files/shinyMixR/temp"))) {
    dir.create(paste0(temp_dir, "/files/shinyMixR/temp"), recursive = TRUE)
  }
  
  r <- list(
    active_tab = "run",
    this_wd = paste0(temp_dir, "/files"),
    proj_obj = get_proj(paste0(temp_dir, "/files"))
  )
  
  testServer(module_run_server, 
             args = list(r = r), {
               
               # Set inputs
               session$setInputs(runLst = "run1")
               
               # Run model
               session$setInputs(runMdl = 1)
               
               # Wait a bit
               Sys.sleep(2)
               
               # Check if progress file is present
               expect_true(file.exists(paste0(temp_dir, "/files/shinyMixR/temp/run1.prog.txt")))
               
               # Open monitoring modal
               session$setInputs(monMdl = 1)
               
               # Test if a model can be correctly submitted also within shiny
               chkt <- 1
               while (chkt<100) {
                 if(file.exists(paste0(tempdir(), "/files/shinyMixR/run1.ressum.rds"))) break
                 Sys.sleep(1)
                 chkt <- chkt + 1
               }
               expect_true(file.exists(paste0(temp_dir, "/files/shinyMixR/run1.ressum.rds")))
             })
  
  #unlink(paste0(temp_dir, "/files"), recursive = TRUE) 
  rml  <- list.files(temp_dir, recursive = TRUE, include.dirs = TRUE, full.names = TRUE)
  unlink(rml, recursive = TRUE)
  
})

Try the shinyMixR package in your browser

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

shinyMixR documentation built on April 12, 2025, 2:25 a.m.