Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New methods for TealAppDriver: get_active_module_*ws_output #1208

Merged
merged 6 commits into from
Apr 24, 2024

Conversation

m7pr
Copy link
Contributor

@m7pr m7pr commented Apr 23, 2024

Copy link
Contributor

github-actions bot commented Apr 23, 2024

badge

Code Coverage Summary

Filename                          Stmts    Miss  Cover    Missing
------------------------------  -------  ------  -------  --------------------------------------------------------------------------------------------------------------------------------------------------
R/dummy_functions.R                  36      25  30.56%   21-37, 40-47
R/get_rcode_utils.R                  31       1  96.77%   50
R/include_css_js.R                   22      17  22.73%   12-38, 76-82
R/init.R                             86      31  63.95%   108-115, 161-162, 164, 176-197, 228-229, 231
R/landing_popup_module.R             25      25  0.00%    61-87
R/module_bookmark_manager.R         158     125  20.89%   42-43, 57-59, 70-83, 93-143, 148-149, 189, 224-301
R/module_filter_manager.R            84      19  77.38%   38-42, 157, 162-175
R/module_nested_tabs.R              161      60  62.73%   39-112, 128, 180, 202, 224, 232, 236
R/module_snapshot_manager.R         241     178  26.14%   95-107, 136-139, 143-144, 159-169, 173-188, 190-198, 205-220, 224-228, 230-236, 239-252, 255-273, 282-298, 313-336, 339-350, 353-359, 373, 394-418
R/module_tabs_with_filters.R         76      33  56.58%   33-68, 100, 116
R/module_teal_with_splash.R         114      34  70.18%   60-95, 110, 131, 197-198
R/module_teal.R                     110      76  30.91%   52-119, 150-151, 157, 168, 181-212
R/module_wunder_bar.R                60      39  35.00%   23-41, 55-64, 68-77
R/modules.R                         159      26  83.65%   127-130, 147-151, 206-209, 291-292, 344, 356-364, 418-421
R/reporter_previewer_module.R        19       2  89.47%   30, 34
R/show_rcode_modal.R                 19      19  0.00%    17-36
R/tdata.R                            53       1  98.11%   154
R/teal_data_module-eval_code.R       27       0  100.00%
R/teal_data_module-within.R           7       0  100.00%
R/teal_data_module.R                  6       0  100.00%
R/teal_reporter.R                    62       5  91.94%   69, 118-119, 122, 139
R/teal_slices-store.R                29       0  100.00%
R/teal_slices.R                      59      12  79.66%   137-150
R/TealAppDriver.R                   315     315  0.00%    43-650
R/utils.R                           173       1  99.42%   255
R/validate_inputs.R                  32       0  100.00%
R/validations.R                      58      37  36.21%   110-377
R/zzz.R                              12       8  33.33%   3-15
TOTAL                              2234    1089  51.25%

Diff against main

Filename             Stmts    Miss  Cover
-----------------  -------  ------  --------
R/TealAppDriver.R      +17     +17  +100.00%
TOTAL                  +17     +17  -0.39%

Results for commit: da8c778

Minimum allowed coverage is 80%

♻️ This comment has been updated with latest results

Copy link
Contributor

github-actions bot commented Apr 23, 2024

Unit Tests Summary

  1 files   30 suites   2m 52s ⏱️
240 tests 240 ✅ 0 💤 0 ❌
505 runs  505 ✅ 0 💤 0 ❌

Results for commit da8c778.

♻️ This comment has been updated with latest results.

@averissimo averissimo self-assigned this Apr 23, 2024
Copy link
Contributor

@averissimo averissimo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we should use hardcoded prefixes on the id.

Otherwise, these 2 functions seem very helpful! 👍

R/TealAppDriver.R Outdated Show resolved Hide resolved
R/TealAppDriver.R Outdated Show resolved Hide resolved
R/TealAppDriver.R Outdated Show resolved Hide resolved
@m7pr
Copy link
Contributor Author

m7pr commented Apr 24, 2024

Hey @averissimo I allowed table/plot namespace name to be passed by a parameter in both methods. Would you take a look in your free time?

@m7pr m7pr requested a review from averissimo April 24, 2024 08:11
@m7pr
Copy link
Contributor Author

m7pr commented Apr 24, 2024

I moved the cleanup discussion to insightsengineering/teal.modules.general#743

Copy link
Contributor

@averissimo averissimo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Works great

Tested with:

library(shiny)
library(rtables)
library(magrittr)
library(rlang)

widgets_module <- function(label = "example teal module", datanames = "all") {
  checkmate::assert_string(label)
  ans <- module(
    label,
    server = function(id, data) {
      checkmate::assert_class(data(), "teal_data")
      moduleServer(id, function(input, output, session) {
        
        # table_with_settings -------------------------------------------------
        
        table_r <- shiny::reactive({
          l <- rtables::basic_table() %>%
            rtables::split_cols_by("ARM") %>%
            rtables::analyze(c("SEX", "AGE"))
          
          rtables::build_table(l, data()[["DM"]])
        })
        teal.widgets::table_with_settings_srv(id = "a_table", table_r = table_r)
        
        # plot_with_settings --------------------------------------------------

        plot_r <- reactive({
          ggplot2::ggplot(
            data()[["faithful"]],
            ggplot2::aes(x = .data$waiting, y = .data$eruptions)) +
            ggplot2::geom_point()
        })

        teal.widgets::plot_with_settings_srv(
          id = "a_plot",
          plot_r = plot_r,
          height = c(400, 100, 1200),
          width = c(500, 250, 750)
        )
      })
    },
    ui = function(id) {
      ns <- shiny::NS(id)
      shiny::tagList(
        teal.widgets::plot_with_settings_ui(
          id = ns("a_plot")
        ),
        teal.widgets::table_with_settings_ui(
          id = ns("a_table")
        )
      )
    },
    datanames = datanames
  )
  attr(ans, "teal_bookmarkable") <- TRUE
  ans
}


app_driver <- TealAppDriver$new(
  data = teal_data(DM = DM, faithful = faithful),
  modules = widgets_module()
)
withr::defer(app_driver$stop())

app_driver$view()

app_driver$get_active_module_tws_output("a_table")
app_driver$get_active_module_pws_output("a_plot")

withr::deferred_run()

R/TealAppDriver.R Outdated Show resolved Hide resolved
Co-authored-by: kartikeya kirar <[email protected]>
Signed-off-by: Marcin <[email protected]>
@m7pr m7pr enabled auto-merge (squash) April 24, 2024 09:17
@m7pr m7pr merged commit 5bbb4b3 into main Apr 24, 2024
24 checks passed
@m7pr m7pr deleted the active_module_ws_element@main branch April 24, 2024 09:25
@github-actions github-actions bot locked and limited conversation to collaborators Apr 24, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants