|
@@ -0,0 +1,23 @@
|
|
|
|
+from typing import Literal
|
|
|
|
+
|
|
|
|
+import pytest
|
|
|
|
+
|
|
|
|
+from reflex.utils import types
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+@pytest.mark.parametrize(
|
|
|
|
+ "params, allowed_value_str, value_str",
|
|
|
|
+ [
|
|
|
|
+ (["size", 1, Literal["1", "2", "3"], "Heading"], "'1','2','3'", "1"),
|
|
|
|
+ (["size", "1", Literal[1, 2, 3], "Heading"], "1,2,3", "'1'"),
|
|
|
|
+ ],
|
|
|
|
+)
|
|
|
|
+def test_validate_literal_error_msg(params, allowed_value_str, value_str):
|
|
|
|
+
|
|
|
|
+ with pytest.raises(ValueError) as err:
|
|
|
|
+ types.validate_literal(*params)
|
|
|
|
+
|
|
|
|
+ assert (
|
|
|
|
+ err.value.args[0] == f"prop value for {str(params[0])} of the `{params[-1]}` "
|
|
|
|
+ f"component should be one of the following: {allowed_value_str}. Got {value_str} instead"
|
|
|
|
+ )
|