tests/testthat/test-config.R

context("test config functions")

# Used in order to test functions with argument .context
context_default <- list(
    tbl_name = "onetable",
    tbl_lst = list(
        onetable = onetable_df
    ),
    filter_lst = NULL,
    mode = "dt",
    xt_lst = list(
        onetable = onetable_xt
    )
)

test_that("extract_mode(x, mode, XT) works", {
    
    x <- list(
        dt = "dt", edit = "edit", add = "add")
    expect_equal(
        extract_mode(x = x, mode = "edit", XT = .XT), "edit")
})


test_that("extract_mode(x, mode, XT) works without all x names in .XT$valid_mode", {
    
    x <- list(
        dt = "dt", edit = "edit", add = "add", additional = "additional")
    expect_equal(
        extract_mode(x = x, mode = "edit", XT = .XT), x)
})


test_that("extract_mode(x, mode, XT) works with non-list input", {
    
    x <- c("dt", "edit", "add")
    expect_equal(
        extract_mode(x = x, mode = "edit", XT = .XT), x)
})


test_that("add_col_default(col_lst, default_lst) works", {
    
    col_lst <- list()
    default_lst <- list(col1 = c(1, 2, 3), col2 = c(4, 5, 6))
    result <- add_col_default(col_lst, default_lst)
    
    expect_equal(
        names(result), names(default_lst))
})


test_that("add_col_default(col_lst, default_lst) works for non-empty col_lst", {
    
    col_lst <- list(col1 = 2)
    default_lst <- list(col1 = c(1, 2, 3), col2 = c(4, 5, 6))
    result <- add_col_default(col_lst, default_lst)
    
    expect_equal(result$col1, 2)
})


test_that("add_col_default(col_lst, default_lst) stops when empty default_lst", {
    
    col_lst <- list(col1 = 2)
    default_lst <- list()
    
    expect_error(add_col_default(col_lst, default_lst))
})


test_that("add_col_default(col_lst, default_lst) stops when unnamed defalut_lst", {
    
    col_lst <- list(col1 = 2)
    default_lst <- list(1, 2, 3)
    
    expect_error(add_col_default(col_lst, default_lst))
})


test_that("checkDataConfig() works", {
    
    context_default <- list(
        tbl_name = "onetable",
        tbl_lst = list(
            onetable = onetable_df
        ),
        filter_lst = NULL,
        mode = "dt",
        xt_lst = list(
            onetable = onetable_xt
        )
    )
    
    # extract from .context
    tbl <- getFilteredTbl(context_default)
    xt <- getConfigMode(context_default)
    .options <- xt[[".options"]]
    df <- qval(.options$pre_dt, tbl)

    expect_true(checkDataConfig(df, xt))
})
numeract/shinyXT documentation built on May 30, 2019, 5 a.m.