| 1213 | |
| 1214 | |
| 1215 | def test_retrieval(): |
| 1216 | var_without_data = Var(_js_expr="test") |
| 1217 | assert var_without_data is not None |
| 1218 | |
| 1219 | original_var_data = VarData( |
| 1220 | state="Test", |
| 1221 | imports={"react": [ImportVar(tag="useRef")]}, |
| 1222 | hooks={"const state = useContext(StateContexts.state)": None}, |
| 1223 | ) |
| 1224 | |
| 1225 | var_with_data = var_without_data._replace(merge_var_data=original_var_data) |
| 1226 | |
| 1227 | f_string = f"foo{var_with_data}bar" |
| 1228 | |
| 1229 | assert REFLEX_VAR_OPENING_TAG in f_string |
| 1230 | assert REFLEX_VAR_CLOSING_TAG in f_string |
| 1231 | |
| 1232 | result_var_data = LiteralVar.create(f_string)._get_all_var_data() |
| 1233 | result_immutable_var_data = Var(_js_expr=f_string)._var_data |
| 1234 | assert result_var_data is not None |
| 1235 | assert result_immutable_var_data is not None |
| 1236 | assert ( |
| 1237 | result_var_data.state |
| 1238 | == result_immutable_var_data.state |
| 1239 | == original_var_data.state |
| 1240 | ) |
| 1241 | assert ( |
| 1242 | result_var_data.imports |
| 1243 | == result_immutable_var_data.imports |
| 1244 | == original_var_data.imports |
| 1245 | ) |
| 1246 | assert ( |
| 1247 | tuple(result_var_data.hooks) |
| 1248 | == tuple(result_immutable_var_data.hooks) |
| 1249 | == tuple(original_var_data.hooks) |
| 1250 | ) |
| 1251 | |
| 1252 | |
| 1253 | def test_fstring_concat(): |