Running ‘testthat.R’ [15s/20s]
Running the tests in ‘tests/testthat.R’ failed.
Complete output:
  > pkg_name <- "teal"
  > library(pkg_name, character.only = TRUE)
  Loading required package: shiny
  Loading required package: teal.data
  Loading required package: teal.code
  Loading required package: teal.slice
  Registered S3 method overwritten by 'teal':
    method        from      
    c.teal_slices teal.slice
  
  You are using teal version 0.15.2
  
  Attaching package: 'teal'
  
  The following objects are masked from 'package:teal.slice':
  
      as.teal_slices, teal_slices
  
  > testthat::test_check(pkg_name)
  [ FAIL 38 | WARN 0 | SKIP 0 | PASS 316 ]
  
  ══ Failed tests ════════════════════════════════════════════════════════════════
  ── Failure ('test-init.R:3:3'): init data accepts teal_data object ─────────────
  Expected `init(data = teal.data::teal_data(iris = iris), modules = modules(example_module()))` to run without any errors.
  ℹ Actually got a <simpleError> with text:
    cannot add bindings to a locked environment
  ── Failure ('test-init.R:24:3'): init modules accepts a teal_modules object ────
  Expected `init(data = teal.data::teal_data(iris = iris), modules = mods)` to run without any errors.
  ℹ Actually got a <simpleError> with text:
    cannot add bindings to a locked environment
  ── Failure ('test-init.R:29:3'): init modules accepts a list of teal_module elements ──
  Expected `init(data = teal.data::teal_data(iris = iris), modules = mods)` to run without any errors.
  ℹ Actually got a <simpleError> with text:
    cannot add bindings to a locked environment
  ── Failure ('test-init.R:34:3'): init modules accepts a teal_module object ─────
  Expected `init(data = teal.data::teal_data(iris = iris), modules = mods)` to run without any errors.
  ℹ Actually got a <simpleError> with text:
    cannot add bindings to a locked environment
  ── Failure ('test-init.R:42:3'): init filter accepts `teal_slices` ─────────────
  Expected `init(...)` to run without any errors.
  ℹ Actually got a <simpleError> with text:
    cannot add bindings to a locked environment
  ── Failure ('test-init.R:45:3'): init filter accepts `teal_slices` ─────────────
  `init(...)` threw an error with unexpected message.
  Expected match: "Assertion on 'filter' failed"
  Actual message: "cannot add bindings to a locked environment"
  Backtrace:
       ▆
    1. ├─testthat::expect_error(...) at test-init.R:45:3
    2. │ └─testthat:::quasi_capture(...)
    3. │   ├─testthat (local) .capture(...)
    4. │   │ └─base::withCallingHandlers(...)
    5. │   └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
    6. ├─teal::init(...)
    7. └─teal.data::teal_data(iris = iris)
    8.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    9.     └─methods::new(...)
   10.       ├─methods::initialize(value, ...)
   11.       └─teal.code (local) initialize(value, ...)
   12.         └─teal.code (local) .local(.Object, ...)
   13.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
   14.           │ └─base::eval(call, callEnv)
   15.           │   └─base::eval(call, callEnv)
   16.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Failure ('test-init.R:53:3'): init throws when an empty `data` is used ──────
  `init(data = teal.data::teal_data(), modules = list(example_module()))` threw an error with unexpected message.
  Expected match: "The environment of `data` is empty."
  Actual message: "cannot add bindings to a locked environment"
  Backtrace:
       ▆
    1. ├─testthat::expect_error(...) at test-init.R:53:3
    2. │ └─testthat:::quasi_capture(...)
    3. │   ├─testthat (local) .capture(...)
    4. │   │ └─base::withCallingHandlers(...)
    5. │   └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
    6. ├─teal::init(data = teal.data::teal_data(), modules = list(example_module()))
    7. └─teal.data::teal_data()
    8.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    9.     └─methods::new(...)
   10.       ├─methods::initialize(value, ...)
   11.       └─teal.code (local) initialize(value, ...)
   12.         └─teal.code (local) .local(.Object, ...)
   13.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
   14.           │ └─base::eval(call, callEnv)
   15.           │   └─base::eval(call, callEnv)
   16.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Failure ('test-init.R:61:3'): init throws when datanames in modules incompatible w/ datanames in data ──
  `init(data = teal.data::teal_data(mtcars = mtcars), modules = list(example_module(datanames = "iris")))` threw an error with unexpected message.
  Expected match: "Module 'example teal module' uses datanames not available in 'data'"
  Actual message: "cannot add bindings to a locked environment"
  Backtrace:
       ▆
    1. ├─testthat::expect_error(...) at test-init.R:61:3
    2. │ └─testthat:::quasi_capture(...)
    3. │   ├─testthat (local) .capture(...)
    4. │   │ └─base::withCallingHandlers(...)
    5. │   └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
    6. ├─teal::init(data = teal.data::teal_data(mtcars = mtcars), modules = list(example_module(datanames = "iris")))
    7. └─teal.data::teal_data(mtcars = mtcars)
    8.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    9.     └─methods::new(...)
   10.       ├─methods::initialize(value, ...)
   11.       └─teal.code (local) initialize(value, ...)
   12.         └─teal.code (local) .local(.Object, ...)
   13.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
   14.           │ └─base::eval(call, callEnv)
   15.           │   └─base::eval(call, callEnv)
   16.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-init.R:71:3'): init throws when dataname in filter incompatible w/ datanames in data ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─testthat::expect_warning(...) at test-init.R:71:3
    2. │ └─testthat:::quasi_capture(...)
    3. │   ├─testthat (local) .capture(...)
    4. │   │ └─base::withCallingHandlers(...)
    5. │   └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
    6. ├─teal::init(...)
    7. └─teal.data::teal_data(mtcars = mtcars)
    8.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    9.     └─methods::new(...)
   10.       ├─methods::initialize(value, ...)
   11.       └─teal.code (local) initialize(value, ...)
   12.         └─teal.code (local) .local(.Object, ...)
   13.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
   14.           │ └─base::eval(call, callEnv)
   15.           │   └─base::eval(call, callEnv)
   16.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-module_nested_tabs.R:1:1'): (code run outside of `test_that()`) ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. └─teal.data::teal_data() at test-module_nested_tabs.R:1:1
    2.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    3.     └─methods::new(...)
    4.       ├─methods::initialize(value, ...)
    5.       └─teal.code (local) initialize(value, ...)
    6.         └─teal.code (local) .local(.Object, ...)
    7.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    8.           │ └─base::eval(call, callEnv)
    9.           │   └─base::eval(call, callEnv)
   10.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-module_tabs_with_filters.R:1:1'): (code run outside of `test_that()`) ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. └─teal.data::teal_data() at test-module_tabs_with_filters.R:1:1
    2.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    3.     └─methods::new(...)
    4.       ├─methods::initialize(value, ...)
    5.       └─teal.code (local) initialize(value, ...)
    6.         └─teal.code (local) .local(.Object, ...)
    7.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    8.           │ └─base::eval(call, callEnv)
    9.           │   └─base::eval(call, callEnv)
   10.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Failure ('test-module_teal.R:2:3'): srv_teal fails when teal_data_rv is not reactive ──
  `shiny::testServer(...)` threw an error with unexpected message.
  Expected match: "is.reactive\\(teal_data_rv\\)"
  Actual message: "cannot add bindings to a locked environment"
  Backtrace:
       ▆
    1. ├─testthat::expect_error(...) at test-module_teal.R:2:3
    2. │ └─testthat:::quasi_capture(...)
    3. │   ├─testthat (local) .capture(...)
    4. │   │ └─base::withCallingHandlers(...)
    5. │   └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
    6. ├─shiny::testServer(...)
    7. │ └─"id" %in% names(args)
    8. └─teal.data::teal_data(iris = iris)
    9.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
   10.     └─methods::new(...)
   11.       ├─methods::initialize(value, ...)
   12.       └─teal.code (local) initialize(value, ...)
   13.         └─teal.code (local) .local(.Object, ...)
   14.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
   15.           │ └─base::eval(call, callEnv)
   16.           │   └─base::eval(call, callEnv)
   17.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-module_teal.R:17:3'): srv_teal when teal_data_rv changes, datasets_reactive is initialized as list of FilteredData ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. └─teal.data::teal_data(iris1 = iris, mtcars1 = mtcars) at test-module_teal.R:17:3
    2.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    3.     └─methods::new(...)
    4.       ├─methods::initialize(value, ...)
    5.       └─teal.code (local) initialize(value, ...)
    6.         └─teal.code (local) .local(.Object, ...)
    7.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    8.           │ └─base::eval(call, callEnv)
    9.           │   └─base::eval(call, callEnv)
   10.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-module_teal.R:36:3'): srv_teal initialized datasets_reactive (list) reflects modules structure ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. └─teal.data::teal_data(iris1 = iris, mtcars1 = mtcars) at test-module_teal.R:36:3
    2.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    3.     └─methods::new(...)
    4.       ├─methods::initialize(value, ...)
    5.       └─teal.code (local) initialize(value, ...)
    6.         └─teal.code (local) .local(.Object, ...)
    7.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    8.           │ └─base::eval(call, callEnv)
    9.           │   └─base::eval(call, callEnv)
   10.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-module_teal.R:56:3'): srv_teal initialized data containing same FilteredData when the filter is global ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. └─teal.data::teal_data(iris1 = iris, mtcars1 = mtcars) at test-module_teal.R:56:3
    2.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    3.     └─methods::new(...)
    4.       ├─methods::initialize(value, ...)
    5.       └─teal.code (local) initialize(value, ...)
    6.         └─teal.code (local) .local(.Object, ...)
    7.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    8.           │ └─base::eval(call, callEnv)
    9.           │   └─base::eval(call, callEnv)
   10.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-module_teal.R:78:3'): srv_teal initialized data containing different FilteredData when the filter is module_specific ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. └─teal.data::teal_data(iris1 = iris, mtcars1 = mtcars) at test-module_teal.R:78:3
    2.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    3.     └─methods::new(...)
    4.       ├─methods::initialize(value, ...)
    5.       └─teal.code (local) initialize(value, ...)
    6.         └─teal.code (local) .local(.Object, ...)
    7.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    8.           │ └─base::eval(call, callEnv)
    9.           │   └─base::eval(call, callEnv)
   10.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-module_teal_with_splash.R:46:3'): srv_teal_with_splash passes teal_data to reactive ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─shiny::testServer(...) at test-module_teal_with_splash.R:46:3
    2. │ └─"id" %in% names(args)
    3. └─teal.data::teal_data(iris = iris)
    4.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    5.     └─methods::new(...)
    6.       ├─methods::initialize(value, ...)
    7.       └─teal.code (local) initialize(value, ...)
    8.         └─teal.code (local) .local(.Object, ...)
    9.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
   10.           │ └─base::eval(call, callEnv)
   11.           │   └─base::eval(call, callEnv)
   12.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-module_teal_with_splash.R:61:3'): srv_teal_with_splash passes when datanames are empty with warning ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─testthat::expect_warning(...) at test-module_teal_with_splash.R:61:3
    2. │ └─testthat:::quasi_capture(...)
    3. │   ├─testthat (local) .capture(...)
    4. │   │ └─base::withCallingHandlers(...)
    5. │   └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
    6. ├─shiny::testServer(...)
    7. │ └─"id" %in% names(args)
    8. └─teal.data::teal_data()
    9.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
   10.     └─methods::new(...)
   11.       ├─methods::initialize(value, ...)
   12.       └─teal.code (local) initialize(value, ...)
   13.         └─teal.code (local) .local(.Object, ...)
   14.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
   15.           │ └─base::eval(call, callEnv)
   16.           │   └─base::eval(call, callEnv)
   17.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Failure ('test-module_teal_with_splash.R:109:7'): srv_teal_with_splash teal_data_rv_validate throws then qenv.error occurs ──
  `teal_data_rv_validate()` threw an error with unexpected message.
  Expected match: "not good"
  Actual message: "Error when executing `teal_data_module` passed to `data`:\n  cannot add bindings to a locked environment \n \n Check your inputs or contact app developer if error persists."
  Backtrace:
       ▆
    1. ├─shiny::testServer(...) at test-module_teal_with_splash.R:97:3
    2. │ ├─shiny:::withMockContext(...)
    3. │ │ ├─shiny::isolate(...)
    4. │ │ │ ├─shiny::..stacktraceoff..(...)
    5. │ │ │ └─ctx$run(...)
    6. │ │ │   ├─promises::with_promise_domain(...)
    7. │ │ │   │ └─domain$wrapSync(expr)
    8. │ │ │   ├─shiny::withReactiveDomain(...)
    9. │ │ │   │ └─promises::with_promise_domain(...)
   10. │ │ │   │   └─domain$wrapSync(expr)
   11. │ │ │   │     └─base::force(expr)
   12. │ │ │   ├─shiny::captureStackTraces(...)
   13. │ │ │   │ └─promises::with_promise_domain(...)
   14. │ │ │   │   └─domain$wrapSync(expr)
   15. │ │ │   │     └─base::withCallingHandlers(expr, error = doCaptureStack)
   16. │ │ │   └─env$runWith(self, func)
   17. │ │ │     └─shiny (local) contextFunc()
   18. │ │ │       └─shiny::..stacktraceon..(expr)
   19. │ │ ├─shiny::withReactiveDomain(...)
   20. │ │ │ └─promises::with_promise_domain(...)
   21. │ │ │   └─domain$wrapSync(expr)
   22. │ │ │     └─base::force(expr)
   23. │ │ └─withr::with_options(...)
   24. │ │   └─base::force(code)
   25. │ └─rlang::eval_tidy(quosure, mask, rlang::caller_env())
   26. ├─testthat::expect_error(teal_data_rv_validate(), "not good") at test-module_teal_with_splash.R:109:7
   27. │ └─testthat:::quasi_capture(...)
   28. │   ├─testthat (local) .capture(...)
   29. │   │ └─base::withCallingHandlers(...)
   30. │   └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
   31. ├─shiny (local) teal_data_rv_validate()
   32. │ ├─shiny::..stacktraceoff..(self$.updateValue())
   33. │ └─self$.updateValue()
   34. │   └─ctx$run(...)
   35. │     ├─promises::with_promise_domain(...)
   36. │     │ └─domain$wrapSync(expr)
   37. │     ├─shiny::withReactiveDomain(...)
   38. │     │ └─promises::with_promise_domain(...)
   39. │     │   └─domain$wrapSync(expr)
   40. │     │     └─base::force(expr)
   41. │     ├─shiny::captureStackTraces(...)
   42. │     │ └─promises::with_promise_domain(...)
   43. │     │   └─domain$wrapSync(expr)
   44. │     │     └─base::withCallingHandlers(expr, error = doCaptureStack)
   45. │     └─env$runWith(self, func)
   46. │       └─shiny (local) contextFunc()
   47. │         ├─base::withCallingHandlers(...)
   48. │         ├─base::withVisible(.func())
   49. │         └─shiny (local) .func()
   50. │           ├─shiny::..stacktraceon..(`<reactive>`(...))
   51. │           └─teal (local) `<reactive>`(...)
   52. │             └─shiny::validate(...)
   53. │               └─shiny:::reactiveStop(...)
   54. │                 └─shiny:::stopWithCondition(c("shiny.silent.error", class), message)
   55. │                   └─base::stop(cond)
   56. └─shiny (local) `<fn>`(`<shny.sl.>`)
  ── Error ('test-module_teal_with_splash.R:136:3'): srv_teal_with_splash teal_data_rv_validate throws when incompatible module's datanames ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─shiny::testServer(...) at test-module_teal_with_splash.R:136:3
    2. │ └─"id" %in% names(args)
    3. └─teal.data::teal_data(mtcars = mtcars, iris = iris, npk = npk)
    4.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    5.     └─methods::new(...)
    6.       ├─methods::initialize(value, ...)
    7.       └─teal.code (local) initialize(value, ...)
    8.         └─teal.code (local) .local(.Object, ...)
    9.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
   10.           │ └─base::eval(call, callEnv)
   11.           │   └─base::eval(call, callEnv)
   12.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-module_teal_with_splash.R:154:3'): srv_teal_with_splash teal_data_rv_validate returns teal_data if incompatible filter's datanames ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─shiny::testServer(...) at test-module_teal_with_splash.R:154:3
    2. │ └─"id" %in% names(args)
    3. └─teal.data::teal_data(mtcars = mtcars)
    4.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    5.     └─methods::new(...)
    6.       ├─methods::initialize(value, ...)
    7.       └─teal.code (local) initialize(value, ...)
    8.         └─teal.code (local) .local(.Object, ...)
    9.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
   10.           │ └─base::eval(call, callEnv)
   11.           │   └─base::eval(call, callEnv)
   12.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-module_teal_with_splash.R:174:3'): srv_teal_with_splash gets observe event from srv_teal ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─shiny::testServer(...) at test-module_teal_with_splash.R:174:3
    2. │ └─"id" %in% names(args)
    3. └─teal.data::teal_data()
    4.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    5.     └─methods::new(...)
    6.       ├─methods::initialize(value, ...)
    7.       └─teal.code (local) initialize(value, ...)
    8.         └─teal.code (local) .local(.Object, ...)
    9.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
   10.           │ └─base::eval(call, callEnv)
   11.           │   └─base::eval(call, callEnv)
   12.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Failure ('test-module_teal_with_splash.R:202:9'): srv_teal_with_splash accepts data after within.teal_data_module ──
  Expected `shiny::testServer(...)` to run without any errors.
  ℹ Actually got a <shiny.silent.error> with text:
    Error when executing `teal_data_module` passed to `data`:
      cannot add bindings to a locked environment 
     
     Check your inputs or contact app developer if error persists.
  ── Failure ('test-module_teal_with_splash.R:226:9'): srv_teal_with_splash throws error when within.teal_data_module returns qenv.error ──
  Expected `shiny::testServer(...)` to run without any errors.
  ℹ Actually got a <simpleError> with text:
    cannot add bindings to a locked environment
  ── Error ('test-tdata.R:222:1'): (code run outside of `test_that()`) ───────────
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. └─teal.data::teal_data(iris = iris, mtcars = mtcars, code = code) at test-tdata.R:222:1
    2.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    3.     └─methods::new(...)
    4.       ├─methods::initialize(value, ...)
    5.       └─teal.code (local) initialize(value, ...)
    6.         └─teal.code (local) .local(.Object, ...)
    7.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    8.           │ └─base::eval(call, callEnv)
    9.           │   └─base::eval(call, callEnv)
   10.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Failure ('test-teal_data_module-eval_code.R:50:9'): within.teal_data_module modifies the reactive tea_data object ──
  Expected `shiny::testServer(...)` to run without any errors.
  ℹ Actually got a <simpleError> with text:
    cannot add bindings to a locked environment
  ── Failure ('test-teal_data_module-eval_code.R:76:9'): eval_code.teal_data_module will execute several times until error ──
  Expected `shiny::testServer(...)` to run without any errors.
  ℹ Actually got a <simpleError> with text:
    cannot add bindings to a locked environment
  ── Failure ('test-teal_data_module-eval_code.R:122:9'): eval_code.teal_data_module propagates qenv error from the original/first call ──
  Expected `shiny::testServer(...)` to run without any errors.
  ℹ Actually got a <simpleError> with text:
    cannot add bindings to a locked environment
  ── Error ('test-utils.R:41:3'): teal_data_to_filtered_data return FilteredData class ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. └─teal.data::teal_data() at test-utils.R:41:3
    2.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    3.     └─methods::new(...)
    4.       ├─methods::initialize(value, ...)
    5.       └─teal.code (local) initialize(value, ...)
    6.         └─teal.code (local) .local(.Object, ...)
    7.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    8.           │ └─base::eval(call, callEnv)
    9.           │   └─base::eval(call, callEnv)
   10.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-utils.R:49:3'): teal_data_datanames returns names of the @env's objects when datanames not set ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. └─teal.data::teal_data() at test-utils.R:49:3
    2.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    3.     └─methods::new(...)
    4.       ├─methods::initialize(value, ...)
    5.       └─teal.code (local) initialize(value, ...)
    6.         └─teal.code (local) .local(.Object, ...)
    7.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    8.           │ └─base::eval(call, callEnv)
    9.           │   └─base::eval(call, callEnv)
   10.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-utils.R:58:3'): teal_data_datanames returns datanames which are set by teal.data::datanames ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. └─teal.data::teal_data() at test-utils.R:58:3
    2.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    3.     └─methods::new(...)
    4.       ├─methods::initialize(value, ...)
    5.       └─teal.code (local) initialize(value, ...)
    6.         └─teal.code (local) .local(.Object, ...)
    7.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
    8.           │ └─base::eval(call, callEnv)
    9.           │   └─base::eval(call, callEnv)
   10.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-utils.R:68:3'): modules_datasets returns correct structure ─────
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─teal_data() %>% ... at test-utils.R:68:3
    2. ├─base::within(...)
    3. └─teal.data::teal_data()
    4.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    5.     └─methods::new(...)
    6.       ├─methods::initialize(value, ...)
    7.       └─teal.code (local) initialize(value, ...)
    8.         └─teal.code (local) .local(.Object, ...)
    9.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
   10.           │ └─base::eval(call, callEnv)
   11.           │   └─base::eval(call, callEnv)
   12.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Failure ('test-utils.R:164:3'): create_app_id: 'data' accepts teal_data or teal_data_module ──
  Expected `create_app_id(teal.data::teal_data(), modules(example_module()))` to run without any errors.
  ℹ Actually got a <simpleError> with text:
    cannot add bindings to a locked environment
  ── Failure ('test-utils.R:179:3'): create_app_id: 'modules' accepts modules ────
  Expected `create_app_id(teal.data::teal_data(), modules(example_module()))` to run without any errors.
  ℹ Actually got a <simpleError> with text:
    cannot add bindings to a locked environment
  ── Failure ('test-utils.R:181:3'): create_app_id: 'modules' accepts modules ────
  `create_app_id(teal.data::teal_data(), example_module())` threw an error with unexpected message.
  Expected match: "Assertion on 'modules' failed: Must inherit from class 'teal_modules'"
  Actual message: "cannot add bindings to a locked environment"
  Backtrace:
       ▆
    1. ├─testthat::expect_error(...) at test-utils.R:181:3
    2. │ └─testthat:::quasi_capture(...)
    3. │   ├─testthat (local) .capture(...)
    4. │   │ └─base::withCallingHandlers(...)
    5. │   └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
    6. ├─teal:::create_app_id(teal.data::teal_data(), example_module())
    7. │ └─checkmate::assert_multi_class(data, c("teal_data", "teal_data_module"))
    8. │   └─checkmate::checkMultiClass(x, classes, null.ok)
    9. └─teal.data::teal_data()
   10.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
   11.     └─methods::new(...)
   12.       ├─methods::initialize(value, ...)
   13.       └─teal.code (local) initialize(value, ...)
   14.         └─teal.code (local) .local(.Object, ...)
   15.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
   16.           │ └─base::eval(call, callEnv)
   17.           │   └─base::eval(call, callEnv)
   18.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-utils.R:188:3'): create_app_id returns a character string ──────
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─checkmate::expect_string(...) at test-utils.R:188:3
    2. │ └─checkmate::checkString(...)
    3. │   └─... %and% ...
    4. │     └─base::isTRUE(lhs)
    5. ├─teal:::create_app_id(teal.data::teal_data(), modules(example_module()))
    6. │ └─checkmate::assert_multi_class(data, c("teal_data", "teal_data_module"))
    7. │   └─checkmate::checkMultiClass(x, classes, null.ok)
    8. └─teal.data::teal_data()
    9.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
   10.     └─methods::new(...)
   11.       ├─methods::initialize(value, ...)
   12.       └─teal.code (local) initialize(value, ...)
   13.         └─teal.code (local) .local(.Object, ...)
   14.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
   15.           │ └─base::eval(call, callEnv)
   16.           │   └─base::eval(call, callEnv)
   17.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-utils.R:192:3'): create_app_id returns different hash for different data ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─teal:::create_app_id(teal.data::teal_data(i = iris), modules(example_module())) at test-utils.R:192:3
    2. │ └─checkmate::assert_multi_class(data, c("teal_data", "teal_data_module"))
    3. │   └─checkmate::checkMultiClass(x, classes, null.ok)
    4. └─teal.data::teal_data(i = iris)
    5.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    6.     └─methods::new(...)
    7.       ├─methods::initialize(value, ...)
    8.       └─teal.code (local) initialize(value, ...)
    9.         └─teal.code (local) .local(.Object, ...)
   10.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
   11.           │ └─base::eval(call, callEnv)
   12.           │   └─base::eval(call, callEnv)
   13.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  ── Error ('test-utils.R:198:3'): create_app_id returns different hash for different modules ──
  Error in `selfEnv[[what]] <- args[[what]]`: cannot add bindings to a locked environment
  Backtrace:
       ▆
    1. ├─teal:::create_app_id(teal.data::teal_data(i = iris), modules(example_module())) at test-utils.R:198:3
    2. │ └─checkmate::assert_multi_class(data, c("teal_data", "teal_data_module"))
    3. │   └─checkmate::checkMultiClass(x, classes, null.ok)
    4. └─teal.data::teal_data(i = iris)
    5.   └─teal.data:::new_teal_data(data = data_objects, code = code, join_keys = join_keys)
    6.     └─methods::new(...)
    7.       ├─methods::initialize(value, ...)
    8.       └─teal.code (local) initialize(value, ...)
    9.         └─teal.code (local) .local(.Object, ...)
   10.           ├─methods::callNextMethod(.Object, new_xdata, code = code, ...)
   11.           │ └─base::eval(call, callEnv)
   12.           │   └─base::eval(call, callEnv)
   13.           └─methods (local) .nextMethod(.Object, new_xdata, code = code, ...)
  
  [ FAIL 38 | WARN 0 | SKIP 0 | PASS 316 ]
  Error: Test failures
  Execution halted