Skip to content

Commit a941bd1

Browse files
committed
tests: finish tests
1 parent cf19684 commit a941bd1

File tree

1 file changed

+187
-15
lines changed

1 file changed

+187
-15
lines changed

tests/playwright/shiny/inputs/input_text_update_on/test_input_text_update_on.py

Lines changed: 187 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -83,35 +83,207 @@ def test_text_input_blur(page: Page, local_app: ShinyAppProc):
8383
output.expect_value(the_value)
8484

8585

86-
# Add similar tests for textAreaInput(), numericInput(), and passwordInput()
87-
# following the same pattern as above.
86+
def test_text_area_input_change(page: Page, local_app: ShinyAppProc):
87+
page.goto(local_app.url)
8888

89+
input = controller.InputTextArea(page, "change-txtarea")
90+
output = controller.OutputTextVerbatim(page, "change-value_txtarea")
91+
update = controller.InputActionButton(page, "change-update_text_area")
8992

90-
def test_text_area_input_change(page: Page, local_app: ShinyAppProc):
91-
# Implement test for textAreaInput() with updateOn='change'
92-
pass
93+
the_value = "Hello"
94+
input.set(the_value)
95+
output.expect_value(the_value)
96+
97+
input.loc.press("End")
98+
input.loc.type(", world")
99+
100+
time.sleep(0.5)
101+
the_value = "Hello, world"
102+
output.expect_value(the_value)
103+
expect(input.loc).to_be_focused()
104+
105+
click_action_button(page, update)
106+
the_value = "The old oak tree whispered secrets to the wind.\nClouds painted shadows on the mountain peaks."
107+
output.expect_value(the_value)
93108

94109

95110
def test_text_area_input_blur(page: Page, local_app: ShinyAppProc):
96-
# Implement test for textAreaInput() with updateOn='blur'
97-
pass
111+
page.goto(local_app.url)
112+
113+
input = controller.InputTextArea(page, "blur-txtarea")
114+
output = controller.OutputTextVerbatim(page, "blur-value_txtarea")
115+
update = controller.InputActionButton(page, "blur-update_text_area")
116+
117+
the_value = "Hello"
118+
input.set(the_value)
119+
input.loc.blur()
120+
output.expect_value(the_value)
121+
122+
input.loc.focus()
123+
input.loc.press("End")
124+
input.loc.type(", world")
125+
126+
output.expect_value(the_value) # has not changed yet!
127+
128+
the_value = "Hello, world"
129+
input.loc.blur()
130+
output.expect_value(the_value) # changes on blur
131+
132+
input.loc.focus()
133+
input.loc.press("End")
134+
input.loc.type("!")
135+
output.expect_value(the_value) # still hasn't changed yet
136+
137+
input.loc.press("Enter")
138+
output.expect_value(the_value) # doesn't change on Enter for textAreaInput
139+
140+
the_value = "Hello, world!"
141+
input.loc.press("Control+Enter")
142+
output.expect_value(the_value) # changes after Control+Enter
143+
144+
click_action_button(page, update)
145+
input.expect_value("The old oak tree whispered secrets to the wind.\nClouds painted shadows on the mountain peaks.")
146+
output.expect_value(the_value)
147+
148+
click_action_button(page, update)
149+
input.expect_value("Clouds painted shadows on the mountain peaks.\nStars danced across the midnight canvas.")
150+
output.expect_value(the_value)
151+
152+
the_value = "Clouds painted shadows on the mountain peaks.\nStars danced across the midnight canvas."
153+
input.loc.press("Control+Enter")
154+
output.expect_value(the_value)
98155

99156

100157
def test_numeric_input_change(page: Page, local_app: ShinyAppProc):
101-
# Implement test for numericInput() with updateOn='change'
102-
pass
158+
page.goto(local_app.url)
159+
160+
input = controller.InputNumeric(page, "change-num")
161+
output = controller.OutputTextVerbatim(page, "change-value_num")
162+
update = controller.InputActionButton(page, "change-update_number")
163+
164+
the_value = "10"
165+
input.set(the_value)
166+
output.expect_value(the_value)
167+
168+
input.loc.press("ArrowUp")
169+
the_value = "11"
170+
output.expect_value(the_value)
171+
172+
input.loc.press("ArrowDown")
173+
input.loc.press("ArrowDown")
174+
the_value = "9"
175+
output.expect_value(the_value)
176+
177+
click_action_button(page, update)
178+
the_value = "42"
179+
output.expect_value(the_value)
103180

104181

105182
def test_numeric_input_blur(page: Page, local_app: ShinyAppProc):
106-
# Implement test for numericInput() with updateOn='blur'
107-
pass
183+
page.goto(local_app.url)
184+
185+
input = controller.InputNumeric(page, "blur-num")
186+
output = controller.OutputTextVerbatim(page, "blur-value_num")
187+
update = controller.InputActionButton(page, "blur-update_number")
188+
189+
the_value = "10"
190+
input.set(the_value)
191+
input.loc.blur()
192+
output.expect_value(the_value)
193+
194+
input.loc.focus()
195+
input.loc.press("ArrowUp")
196+
output.expect_value(the_value) # has not changed yet!
197+
198+
input.loc.blur()
199+
the_value = "11"
200+
output.expect_value(the_value) # changes on blur
201+
202+
input.loc.focus()
203+
input.loc.press("ArrowDown")
204+
input.loc.press("ArrowDown")
205+
output.expect_value(the_value) # still hasn't changed yet
206+
207+
input.loc.press("Enter")
208+
the_value = "9"
209+
output.expect_value(the_value) # changes after Enter
210+
211+
click_action_button(page, update)
212+
input.expect_value("42")
213+
output.expect_value(the_value)
214+
215+
click_action_button(page, update)
216+
input.expect_value("3.14159")
217+
output.expect_value(the_value)
218+
219+
the_value = "3.14159"
220+
input.loc.press("Enter")
221+
output.expect_value(the_value)
108222

109223

110224
def test_password_input_change(page: Page, local_app: ShinyAppProc):
111-
# Implement test for passwordInput() with updateOn='change'
112-
pass
225+
page.goto(local_app.url)
226+
227+
input = controller.InputPassword(page, "change-pwd")
228+
output = controller.OutputTextVerbatim(page, "change-value_pwd")
229+
update = controller.InputActionButton(page, "change-update_pwd")
230+
231+
the_value = "H3ll0"
232+
input.set(the_value)
233+
output.expect_value(the_value)
234+
235+
input.loc.press("End")
236+
input.loc.type("_w0r1d")
237+
238+
time.sleep(0.5)
239+
the_value = "H3ll0_w0r1d"
240+
output.expect_value(the_value)
241+
expect(input.loc).to_be_focused()
242+
243+
click_action_button(page, update)
244+
the_value = "Tr0ub4dor&3"
245+
output.expect_value(the_value)
113246

114247

115248
def test_password_input_blur(page: Page, local_app: ShinyAppProc):
116-
# Implement test for passwordInput() with updateOn='blur'
117-
pass
249+
page.goto(local_app.url)
250+
251+
input = controller.InputPassword(page, "blur-pwd")
252+
output = controller.OutputTextVerbatim(page, "blur-value_pwd")
253+
update = controller.InputActionButton(page, "blur-update_pwd")
254+
255+
the_value = "H3ll0"
256+
input.set(the_value)
257+
input.loc.blur()
258+
output.expect_value(the_value)
259+
260+
input.loc.focus()
261+
input.loc.press("End")
262+
input.loc.type("_w0r1d")
263+
264+
output.expect_value(the_value) # has not changed yet!
265+
266+
the_value = "H3ll0_w0r1d"
267+
input.loc.blur()
268+
output.expect_value(the_value) # changes on blur
269+
270+
input.loc.focus()
271+
input.loc.press("End")
272+
input.loc.type("!")
273+
output.expect_value(the_value) # still hasn't changed yet
274+
275+
the_value = "H3ll0_w0r1d!"
276+
input.loc.press("Enter")
277+
output.expect_value(the_value) # changes after Enter
278+
279+
click_action_button(page, update)
280+
input.expect_value("Tr0ub4dor&3")
281+
output.expect_value(the_value)
282+
283+
click_action_button(page, update)
284+
input.expect_value("P@ssw0rd123!")
285+
output.expect_value(the_value)
286+
287+
the_value = "P@ssw0rd123!"
288+
input.loc.press("Enter")
289+
output.expect_value(the_value)

0 commit comments

Comments
 (0)