Skip to content

Commit e22bdf1

Browse files
committed
Add change test
1 parent cf9234b commit e22bdf1

File tree

2 files changed

+19
-9
lines changed

2 files changed

+19
-9
lines changed

s3file/static/s3file/js/s3file.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,12 @@ export class S3FileInput extends globalThis.HTMLInputElement {
3232
changeHandler () {
3333
this.keys = []
3434
this.upload = null
35+
try {
36+
this.form.removeEventListener('submit', this.submitHandler.bind(this))
37+
} catch (error) {
38+
console.debug(error)
39+
}
40+
this.form.addEventListener('submit', this.submitHandler.bind(this), { once: true })
3541
}
3642

3743
/**

tests/test_forms.py

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -231,15 +231,6 @@ def test_file_update(
231231
def test_file_insert_submit_value(
232232
self, driver, live_server, upload_file, freeze_upload_folder
233233
):
234-
driver.get(live_server + self.create_url)
235-
file_input = driver.find_element(By.XPATH, "//input[@name='file']")
236-
file_input.send_keys(upload_file)
237-
assert file_input.get_attribute("name") == "file"
238-
save_button = driver.find_element(By.XPATH, "//input[@name='save']")
239-
with wait_for_page_load(driver, timeout=10):
240-
save_button.click()
241-
assert "save" in driver.page_source
242-
243234
driver.get(live_server + self.create_url)
244235
file_input = driver.find_element(By.XPATH, "//input[@name='file']")
245236
file_input.send_keys(upload_file)
@@ -266,6 +257,19 @@ def test_file_insert_submit_formaction(
266257
assert "foo" in driver.page_source
267258
assert "bar" in driver.page_source
268259

260+
@pytest.mark.selenium
261+
def test_file_insert_change_event(
262+
self, driver, live_server, upload_file, another_upload_file, freeze_upload_folder
263+
):
264+
driver.get(live_server + self.create_url)
265+
file_input = driver.find_element(By.XPATH, "//input[@name='file']")
266+
file_input.send_keys(upload_file)
267+
file_input.send_keys(another_upload_file)
268+
save_button = driver.find_element(By.CSS_SELECTOR, "input[name=save]")
269+
with wait_for_page_load(driver, timeout=10):
270+
save_button.click()
271+
assert "save" in driver.page_source
272+
269273
@pytest.mark.selenium
270274
def test_multi_file(
271275
self,

0 commit comments

Comments
 (0)