Skip to content

Commit 53ce41b

Browse files
authored
306: Add screenshot threshold and some non-screenshot tests (#239)
1 parent 3b10fa3 commit 53ce41b

File tree

2 files changed

+58
-20
lines changed

2 files changed

+58
-20
lines changed

inst/apps/063-superzip-example/tests/testthat/test-mytest.R

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ test_that("Migrated shinytest test: mytest.R", {
2626
}
2727

2828
app$expect_values()
29-
app$expect_screenshot()
29+
app$expect_screenshot(threshold = 5)
3030
app$set_inputs(threshold = 3)
3131
app$set_inputs(color = "college")
3232

@@ -38,7 +38,7 @@ test_that("Migrated shinytest test: mytest.R", {
3838
cat("\n\n")
3939
}
4040
app$expect_values()
41-
app$expect_screenshot()
41+
app$expect_screenshot(threshold = 5)
4242

4343
app$set_inputs(nav = "Data explorer")
4444

@@ -49,7 +49,7 @@ test_that("Migrated shinytest test: mytest.R", {
4949
cat("\n\n")
5050
}
5151
app$expect_values()
52-
app$expect_screenshot()
52+
app$expect_screenshot(threshold = 5)
5353

5454
# Input 'ziptable_rows_current' was set, but doesn't have an input binding.
5555
# Input 'ziptable_rows_all' was set, but doesn't have an input binding.
@@ -64,5 +64,5 @@ test_that("Migrated shinytest test: mytest.R", {
6464
cat("\n\n")
6565
}
6666
app$expect_values()
67-
app$expect_screenshot()
67+
app$expect_screenshot(threshold = 5)
6868
})

inst/apps/306-accordion-add-remove/tests/testthat/test-306-accordion-add-remove.R

Lines changed: 54 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -22,34 +22,72 @@ test_that("{shinytest2} recording: accordion-select", {
2222
app$wait_for_idle()
2323
}
2424

25+
set_selected <- function(x, expected = x) {
26+
app$
27+
set_inputs(selected = x)$
28+
wait_for_idle()
29+
30+
expect_selected(expected)
31+
}
32+
33+
expect_selected <- function(x) {
34+
expect_equal(app$get_value(input = "selected"), !!x)
35+
}
36+
37+
set_displayed <- function(x) {
38+
app$
39+
set_inputs(displayed = x)$
40+
wait_for_idle()
41+
42+
displayed <- app$get_js(
43+
"[...document.querySelectorAll('#acc .accordion-item')].map(el => el.dataset.value)"
44+
)
45+
displayed <- unlist(displayed)
46+
expect_equal(displayed, x)
47+
}
48+
2549
# Test accordion_panel_set()
26-
set_inputs(selected = c("A", "D"))
27-
set_inputs(selected = c("A", "D", "H"))
28-
app$expect_screenshot()
50+
set_selected(c("A", "D"))
51+
set_selected(c("A", "D", "H"))
52+
app$expect_screenshot(threshold = 5)
2953

3054
# Test accordion_panel_remove()
31-
set_inputs(displayed = c("D", "F"))
55+
set_displayed(c("D", "F"))
56+
expect_selected("D")
57+
3258
# Test accordion_panel_insert()
33-
set_inputs(displayed = c("A", "D", "F"))
34-
set_inputs(displayed = c("A", "D", "F", "Z"))
59+
set_displayed(c("A", "D", "F"))
60+
expect_selected("D")
61+
set_displayed(c("A", "D", "F", "Z"))
62+
expect_selected("D")
63+
3564
# Test accordion_panel_insert() + accordion_panel_open()
3665
set_inputs(open_on_insert = TRUE)
37-
set_inputs(displayed = c("A", "D", "F", "J", "Z"))
38-
set_inputs(displayed = c("A", "D", "F", "J", "K", "Z"))
39-
app$expect_screenshot()
66+
set_displayed(c("A", "D", "F", "J", "Z"))
67+
expect_selected(c("D", "J"))
68+
69+
set_displayed(c("A", "D", "F", "J", "K", "Z"))
70+
expect_selected(c("D", "J", "K"))
71+
app$expect_screenshot(threshold = 5)
4072

4173
# redo tests with accordion(autoclose = TRUE)
4274
set_inputs(open_on_insert = FALSE)
4375
set_inputs(multiple = FALSE)
4476

4577
# Last one (D) should be selected
46-
set_inputs(selected = "B")
47-
set_inputs(selected = c("C", "D"))
48-
app$expect_screenshot()
78+
set_selected("B", expected = "B")
79+
set_selected(c("C", "D"), expected = "D")
80+
app$expect_screenshot(threshold = 5)
81+
82+
set_displayed(c("A", "D", "F", "Z"))
83+
expect_selected("D")
4984

50-
set_inputs(displayed = c("A", "D", "F", "Z"))
85+
# Inserting a new open panel with multiple=FALSE selects just that panel
5186
set_inputs(open_on_insert = TRUE)
52-
set_inputs(displayed = c("A", "D", "F", "J", "Z"))
53-
set_inputs(displayed = c("A", "D", "F", "J", "K", "Z"))
54-
app$expect_screenshot()
87+
set_displayed(c("A", "D", "F", "J", "Z"))
88+
expect_selected("J")
89+
90+
set_displayed(c("A", "D", "F", "J", "K", "Z"))
91+
expect_selected("K")
92+
app$expect_screenshot(threshold = 5)
5593
})

0 commit comments

Comments
 (0)