"""Tests for marketing_intelligence.evasion.profiles.""" from marketing_intelligence.evasion.profiles import ( DeviceProfile, get_profile, list_profiles, ) class TestDeviceProfile: def test_desktop_viewport(self) -> None: p = get_profile("desktop") assert p.viewport_width == 1280 assert p.viewport_height == 800 def test_mobile_ios_viewport(self) -> None: p = get_profile("mobile_ios") assert p.viewport_width == 390 assert p.viewport_height == 844 def test_mobile_android_viewport(self) -> None: p = get_profile("mobile_android") assert p.viewport_width == 412 assert p.viewport_height == 915 def test_profile_is_dataclass(self) -> None: p = get_profile("desktop") assert isinstance(p, DeviceProfile) def test_desktop_default_locale(self) -> None: p = get_profile("desktop") assert p.locale == "en-US" def test_desktop_default_timezone(self) -> None: p = get_profile("desktop") assert p.timezone_id == "America/New_York" def test_mobile_ios_timezone(self) -> None: p = get_profile("mobile_ios") assert p.timezone_id == "America/Los_Angeles" def test_mobile_android_timezone(self) -> None: p = get_profile("mobile_android") assert p.timezone_id == "America/Chicago" class TestGetProfile: def test_returns_desktop_for_known_name(self) -> None: assert get_profile("desktop").name == "desktop" def test_returns_mobile_ios(self) -> None: assert get_profile("mobile_ios").name == "mobile_ios" def test_returns_mobile_android(self) -> None: assert get_profile("mobile_android").name == "mobile_android" def test_unknown_name_falls_back_to_desktop(self) -> None: p = get_profile("unknown_device") assert p.name == "desktop" def test_empty_string_falls_back_to_desktop(self) -> None: p = get_profile("") assert p.name == "desktop" class TestListProfiles: def test_contains_all_known_profiles(self) -> None: names = list_profiles() assert "desktop" in names assert "mobile_ios" in names assert "mobile_android" in names def test_returns_list(self) -> None: assert isinstance(list_profiles(), list) def test_no_duplicates(self) -> None: names = list_profiles() assert len(names) == len(set(names))