56 lines
1.2 KiB
Python
56 lines
1.2 KiB
Python
import pytest
|
|
from reflex_chakra.components.media.icon import ICON_LIST, Icon
|
|
|
|
from reflex.utils import format
|
|
|
|
|
|
def test_no_tag_errors():
|
|
"""Test that an icon without a tag raises an error."""
|
|
with pytest.raises(AttributeError):
|
|
Icon.create()
|
|
|
|
|
|
def test_children_errors():
|
|
"""Test that an icon with children raises an error."""
|
|
with pytest.raises(AttributeError):
|
|
Icon.create("child", tag="search")
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"tag",
|
|
ICON_LIST,
|
|
)
|
|
def test_valid_icon(tag: str):
|
|
"""Test that a valid icon does not raise an error.
|
|
|
|
Args:
|
|
tag: The icon tag.
|
|
"""
|
|
icon = Icon.create(tag=tag)
|
|
assert icon.tag == format.to_title_case(tag) + "Icon"
|
|
|
|
|
|
@pytest.mark.parametrize("tag", ["", " ", "invalid", 123])
|
|
def test_invalid_icon(tag):
|
|
"""Test that an invalid icon raises an error.
|
|
|
|
Args:
|
|
tag: The icon tag.
|
|
"""
|
|
with pytest.raises(ValueError):
|
|
Icon.create(tag=tag)
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"tag",
|
|
["Check", "Close", "eDit"],
|
|
)
|
|
def test_tag_with_capital(tag: str):
|
|
"""Test that an icon that tag with capital does not raise an error.
|
|
|
|
Args:
|
|
tag: The icon tag.
|
|
"""
|
|
icon = Icon.create(tag=tag)
|
|
assert icon.tag == format.to_title_case(tag) + "Icon"
|