|
@@ -39,6 +39,19 @@ def upload_component():
|
|
return upload_component()
|
|
return upload_component()
|
|
|
|
|
|
|
|
|
|
|
|
+@pytest.fixture
|
|
|
|
+def upload_component_id_special():
|
|
|
|
+ def upload_component():
|
|
|
|
+ return rx.upload(
|
|
|
|
+ rx.button("select file"),
|
|
|
|
+ rx.text("Drag and drop files here or click to select files"),
|
|
|
|
+ border="1px dotted black",
|
|
|
|
+ id="#spec!`al-_98ID",
|
|
|
|
+ )
|
|
|
|
+
|
|
|
|
+ return upload_component()
|
|
|
|
+
|
|
|
|
+
|
|
@pytest.fixture
|
|
@pytest.fixture
|
|
def upload_component_with_props():
|
|
def upload_component_with_props():
|
|
"""A test upload component with props function.
|
|
"""A test upload component with props function.
|
|
@@ -72,7 +85,12 @@ def test_upload_root_component_render(upload_root_component):
|
|
assert upload["props"] == [
|
|
assert upload["props"] == [
|
|
"id={`default`}",
|
|
"id={`default`}",
|
|
"multiple={true}",
|
|
"multiple={true}",
|
|
- "onDrop={e => setFilesById(filesById => ({...filesById, default: e}))}",
|
|
|
|
|
|
+ "onDrop={e => setFilesById(filesById => {\n"
|
|
|
|
+ " const updatedFilesById = Object.assign({}, filesById);\n"
|
|
|
|
+ " updatedFilesById[`default`] = e;\n"
|
|
|
|
+ " return updatedFilesById;\n"
|
|
|
|
+ " })\n"
|
|
|
|
+ " }",
|
|
"ref={ref_default}",
|
|
"ref={ref_default}",
|
|
]
|
|
]
|
|
assert upload["args"] == ("getRootProps", "getInputProps")
|
|
assert upload["args"] == ("getRootProps", "getInputProps")
|
|
@@ -114,7 +132,12 @@ def test_upload_component_render(upload_component):
|
|
assert upload["props"] == [
|
|
assert upload["props"] == [
|
|
"id={`default`}",
|
|
"id={`default`}",
|
|
"multiple={true}",
|
|
"multiple={true}",
|
|
- "onDrop={e => setFilesById(filesById => ({...filesById, default: e}))}",
|
|
|
|
|
|
+ "onDrop={e => setFilesById(filesById => {\n"
|
|
|
|
+ " const updatedFilesById = Object.assign({}, filesById);\n"
|
|
|
|
+ " updatedFilesById[`default`] = e;\n"
|
|
|
|
+ " return updatedFilesById;\n"
|
|
|
|
+ " })\n"
|
|
|
|
+ " }",
|
|
"ref={ref_default}",
|
|
"ref={ref_default}",
|
|
]
|
|
]
|
|
assert upload["args"] == ("getRootProps", "getInputProps")
|
|
assert upload["args"] == ("getRootProps", "getInputProps")
|
|
@@ -156,6 +179,27 @@ def test_upload_component_with_props_render(upload_component_with_props):
|
|
"maxFiles={2}",
|
|
"maxFiles={2}",
|
|
"multiple={true}",
|
|
"multiple={true}",
|
|
"noDrag={true}",
|
|
"noDrag={true}",
|
|
- "onDrop={e => setFilesById(filesById => ({...filesById, default: e}))}",
|
|
|
|
|
|
+ "onDrop={e => setFilesById(filesById => {\n"
|
|
|
|
+ " const updatedFilesById = Object.assign({}, filesById);\n"
|
|
|
|
+ " updatedFilesById[`default`] = e;\n"
|
|
|
|
+ " return updatedFilesById;\n"
|
|
|
|
+ " })\n"
|
|
|
|
+ " }",
|
|
"ref={ref_default}",
|
|
"ref={ref_default}",
|
|
]
|
|
]
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+def test_upload_component_id_with_special_chars(upload_component_id_special):
|
|
|
|
+ upload = upload_component_id_special.render()
|
|
|
|
+
|
|
|
|
+ assert upload["props"] == [
|
|
|
|
+ r"id={`#spec!\`al-_98ID`}",
|
|
|
|
+ "multiple={true}",
|
|
|
|
+ "onDrop={e => setFilesById(filesById => {\n"
|
|
|
|
+ " const updatedFilesById = Object.assign({}, filesById);\n"
|
|
|
|
+ " updatedFilesById[`#spec!\\`al-_98ID`] = e;\n"
|
|
|
|
+ " return updatedFilesById;\n"
|
|
|
|
+ " })\n"
|
|
|
|
+ " }",
|
|
|
|
+ "ref={ref__spec_al__98ID}",
|
|
|
|
+ ]
|