tests/testthat/test-server.R

# test file for server.R
library(testthat)

col_empty_val <- list(Date = character(), Hour = character(), Weight = numeric(), Temperature = numeric(),  Mother_Milk = integer(), Powder_Milk = integer(),
                      Lactation_Left = logical(), Lactation_Right = logical (), Vomit = integer(), Urin = integer(), Poop = integer())


context("Test server reactivity")

test_that("The server.R responds well to reactivity", {
  shiny::testServer(app = (system.file("apps", package = "NewBoRn")),
                    {
                      expect_equal(firstname(), NULL)
                      expect_equal(surname(), NULL)
                      expect_equal(data$lstval, NULL)
                      expect_equal(data$curval, NULL)
                      session$setInputs(Add_row = 0)
                      session$setInputs(firstname = "firstname")
                      expect_equal(firstname(), "firstname")
                      session$setInputs(surname = "surname")
                      expect_equal(surname(), "surname")
                      session$setInputs(new_data = 1)
                      expect_equal(is.data.frame(new_data()),TRUE)
                      expect_equal(nrow(new_data()),0)
                      expect_equal(sort(colnames(new_data())), sort(names(col_empty_val)))
                      expect_equal(data_first(), new_data())
                      expect_equal(data$curval, data_first())
                      expect_equal(data$lstval, data_first())

                      session$setInputs(Date = as.Date("01-01-2020", format = "%d-%m-%Y"))
                      session$setInputs(Hour = "12:00")
                      session$setInputs(Weight = 3500)
                      session$setInputs(Temperature = 0)
                      session$setInputs(Lactation_Right = 0)
                      session$setInputs(Lactation_Left = 1)
                      session$setInputs(Mother_Milk = 0)
                      session$setInputs(Powder_Milk = 30)
                      session$setInputs(Urin = 0)
                      session$setInputs(Vomit = 0)
                      session$setInputs(Poop = 1)
                      session$setInputs(Add_row = 1)

                      expect_equal(data$lstval, data_first())
                      expect_equal(nrow(data$curval),1)
                      expect_equal(data$curval$Date,"01-01-2020")
                      expect_equal(data$curval$Hour, "12:00")
                      expect_equal(data$curval$Weight, 3500)
                      expect_equal(data$curval$Temperature, as.numeric(NA))
                      expect_equal(data$curval$Mother_Milk, as.numeric(NA))
                      expect_equal(data$curval$Powder_Milk, 30)
                      expect_equal(data$curval$Lactation_Left, TRUE)
                      expect_equal(data$curval$Lactation_Right, NA)
                      expect_equal(data$curval$Vomit, as.numeric(NA))
                      expect_equal(data$curval$Urin, as.numeric(NA))
                      expect_equal(data$curval$Poop, 1)

                      session$setInputs(del_row_sel = 1)
                      session$setInputs(del_row = 1)

                      expect_equal(nrow(data$fantom),1)
                      expect_equal(data$fantom$Date,"01-01-2020")
                      expect_equal(data$fantom$Hour, "12:00")
                      expect_equal(data$fantom$Weight, 3500)
                      expect_equal(data$fantom$Temperature, as.numeric(NA))
                      expect_equal(data$fantom$Mother_Milk, as.numeric(NA))
                      expect_equal(data$fantom$Powder_Milk, 30)
                      expect_equal(data$fantom$Lactation_Left, TRUE)
                      expect_equal(data$fantom$Lactation_Right, NA)
                      expect_equal(data$fantom$Vomit, as.numeric(NA))
                      expect_equal(data$fantom$Urin, as.numeric(NA))
                      expect_equal(data$fantom$Poop, 1)

                      expect_equal(data$curval, data_first())

                      session$setInputs(Date = as.Date("01-01-2020", format = "%d-%m-%Y"))
                      session$setInputs(Hour = "12:00")
                      session$setInputs(Weight = 3500)
                      session$setInputs(Temperature = 37)
                      session$setInputs(Lactation_Right = 0)
                      session$setInputs(Lactation_Left = 1)
                      session$setInputs(Mother_Milk = 0)
                      session$setInputs(Powder_Milk = 30)
                      session$setInputs(Urin = 2)
                      session$setInputs(Vomit = 1)
                      session$setInputs(Poop = 1)
                      session$setInputs(Add_row = 2)

                      session$setInputs(temperature_bool = TRUE)
                      expect_equal(class(output$temperature_graph), "list")
                      session$setInputs(temperature_bool = FALSE)
                      expect_equal(output$temperature_graph, NULL)

                      session$setInputs(weight_bool = TRUE)
                      expect_equal(class(output$weight_graph), "list")
                      session$setInputs(weight_bool = FALSE)
                      expect_equal(output$weight_graph, NULL)

                      session$setInputs(lactation_bool = TRUE)
                      expect_equal(class(output$lactation_graph), "list")
                      session$setInputs(lactation_bool = FALSE)
                      expect_equal(output$lactation_graph, NULL)

                      session$setInputs(milk_feeding_bool = TRUE)
                      expect_equal(class(output$milk_feeding_graph), "list")
                      session$setInputs(milk_feeding_bool = FALSE)
                      expect_equal(output$milk_feeding_graph, NULL)

                      session$setInputs(urin_bool = TRUE)
                      expect_equal(class(output$dejection_graph), "list")
                      session$setInputs(urin_bool = FALSE)
                      session$setInputs(poop_bool = TRUE)
                      expect_equal(class(output$dejection_graph), "list")
                      session$setInputs(poop_bool = FALSE)
                      session$setInputs(vomit_bool = TRUE)
                      expect_equal(class(output$dejection_graph), "list")
                      session$setInputs(vomit_bool = FALSE)
                      expect_equal(output$dejection_graph, NULL)

                      })
})
jcorain/NewBoRn documentation built on Feb. 2, 2021, 11:50 a.m.