35% front tests

This commit is contained in:
iqubik
2026-03-29 22:17:34 +03:00
parent 61b814482c
commit 425c1d5e8d
29 changed files with 4942 additions and 15 deletions
@@ -0,0 +1,298 @@
// Mock для всех MUI иконок
// Этот файл автоматически используется vitest для мока @mui/icons-material
import { forwardRef } from 'react'
// Создаем универсальный мок для любой иконки
const IconMock = forwardRef<SVGSVGElement>((props, ref) => {
return (
<svg
ref={ref}
data-testid="mui-icon-mock"
focusable="false"
viewBox="0 0 24 24"
{...props}
>
<rect width="24" height="24" fill="transparent" />
</svg>
)
})
IconMock.displayName = 'IconMock'
// Экспортируем все возможные иконки как один и тот же мок
export const GitHub = IconMock
export const YouTube = IconMock
export const Telegram = IconMock
export const Brightness7 = IconMock
export const Brightness4 = IconMock
export const BrightnessAuto = IconMock
export const Logout = IconMock
export const HelpOutline = IconMock
export const Menu = IconMock
export const People = IconMock
export const Settings = IconMock
export const Dns = IconMock
export const SwapHoriz = IconMock
export const Delete = IconMock
export const Add = IconMock
export const Terminal = IconMock
export const CheckCircle = IconMock
export const Error = IconMock
export const LinkIcon = IconMock
export const OpenInNew = IconMock
export const ContentCopy = IconMock
export const Router = IconMock
export const Edit = IconMock
export const MoreVert = IconMock
export const Remove = IconMock
export const Refresh = IconMock
export const Search = IconMock
export const FilterList = IconMock
export const RefreshTwoTone = IconMock
export const Warning = IconMock
export const Info = IconMock
export const Close = IconMock
export const Check = IconMock
export const ArrowDownward = IconMock
export const ArrowUpward = IconMock
export const MoreHoriz = IconMock
export const ContentPaste = IconMock
export const QrCode = IconMock
export const Usb = IconMock
export const VpnKey = IconMock
export const Security = IconMock
export const Speed = IconMock
export const Timeline = IconMock
export const Assessment = IconMock
export const SettingsApplications = IconMock
export const CloudDownload = IconMock
export const CloudUpload = IconMock
export const Folder = IconMock
export const FileCopy = IconMock
export const Save = IconMock
export const Print = IconMock
export const DeleteOutline = IconMock
export const Restore = IconMock
export const History = IconMock
export const Schedule = IconMock
export const AccessTime = IconMock
export const Today = IconMock
export const Event = IconMock
export const Notifications = IconMock
export const AccountCircle = IconMock
export const Person = IconMock
export const Group = IconMock
export const Public = IconMock
export const Language = IconMock
export const Translate = IconMock
export const Star = IconMock
export const Favorite = IconMock
export const Home = IconMock
export const LocationOn = IconMock
export const Place = IconMock
export const Email = IconMock
export const Phone = IconMock
export const Chat = IconMock
export const Message = IconMock
export const Forum = IconMock
export const Share = IconMock
export const Send = IconMock
export const Inbox = IconMock
export const Drafts = IconMock
export const Mail = IconMock
export const Markunread = IconMock
export const Lock = IconMock
export const LockOpen = IconMock
export const Unlock = IconMock
export const Visibility = IconMock
export const VisibilityOff = IconMock
export const Eye = IconMock
export const EyeOff = IconMock
export const ToggleOn = IconMock
export const ToggleOff = IconMock
export const RadioButtonChecked = IconMock
export const RadioButtonUnchecked = IconMock
export const CheckBox = IconMock
export const CheckBoxOutlineBlank = IconMock
export const IndeterminateCheckBox = IconMock
export const PlusOne = IconMock
export const ThumbUp = IconMock
export const ThumbDown = IconMock
export const Whatshot = IconMock
export const FavoriteBorder = IconMock
export const StarBorder = IconMock
export const Bookmark = IconMock
export const BookmarkBorder = IconMock
export const Bookmarks = IconMock
export const TurnedIn = IconMock
export const TurnedInNot = IconMock
export const Label = IconMock
export const LabelImportant = IconMock
export const Grade = IconMock
export const Done = IconMock
export const Clear = IconMock
export const Block = IconMock
export const Ban = IconMock
export const Stop = IconMock
export const Pause = IconMock
export const PlayArrow = IconMock
export const FastForward = IconMock
export const FastRewind = IconMock
export const SkipNext = IconMock
export const SkipPrevious = IconMock
export const FiberManualRecord = IconMock
export const Circle = IconMock
export const Square = IconMock
export const Rectangle = IconMock
export const Triangle = IconMock
export const NavigateNext = IconMock
export const NavigateBefore = IconMock
export const ChevronRight = IconMock
export const ChevronLeft = IconMock
export const ExpandMore = IconMock
export const ExpandLess = IconMock
export const UnfoldMore = IconMock
export const UnfoldLess = IconMock
export const ArrowRight = IconMock
export const ArrowLeft = IconMock
export const ArrowBack = IconMock
export const ArrowForward = IconMock
export const ArrowDropDown = IconMock
export const ArrowDropUp = IconMock
export const Expand = IconMock
export const SubdirectoryArrowRight = IconMock
export const SubdirectoryArrowLeft = IconMock
export const FileDownload = IconMock
export const FileUpload = IconMock
export const Attachment = IconMock
export const Link = IconMock
export const InsertLink = IconMock
export const Photo = IconMock
export const Image = IconMock
export const PictureAsPdf = IconMock
export const ImageIcon = IconMock
export const CameraAlt = IconMock
export const Videocam = IconMock
export const Movie = IconMock
export const MusicNote = IconMock
export const Mic = IconMock
export const VolumeUp = IconMock
export const VolumeOff = IconMock
export const Headset = IconMock
export const Headphones = IconMock
export const Speaker = IconMock
export const Radio = IconMock
export const Podcasts = IconMock
export const Tv = IconMock
export const DesktopWindows = IconMock
export const Laptop = IconMock
export const Computer = IconMock
export const Tablet = IconMock
export const Smartphone = IconMock
export const PhoneIphone = IconMock
export const PhoneAndroid = IconMock
export const Devices = IconMock
export const SmartDisplay = IconMock
export const Monitor = IconMock
export const ScreenShare = IconMock
export const StopScreenShare = IconMock
export const PresentToAll = IconMock
export const Cast = IconMock
export const CastConnected = IconMock
export const CastForEducation = IconMock
export const Wifi = IconMock
export const WifiOff = IconMock
export const NetworkWifi = IconMock
export const NetworkCell = IconMock
export const SignalCellular4Bar = IconMock
export const SignalWifi4Bar = IconMock
export const Bluetooth = IconMock
export const BluetoothConnected = IconMock
export const BluetoothDisabled = IconMock
export const GpsFixed = IconMock
export const GpsNotFixed = IconMock
export const LocationSearching = IconMock
export const MyLocation = IconMock
export const Navigation = IconMock
export const NearMe = IconMock
export const Directions = IconMock
export const DirectionsCar = IconMock
export const DirectionsBus = IconMock
export const DirectionsTrain = IconMock
export const DirectionsBike = IconMock
export const DirectionsWalk = IconMock
export const DirectionsRun = IconMock
export const Flight = IconMock
export const LocalAirport = IconMock
export const Hotel = IconMock
export const Restaurant = IconMock
export const LocalCafe = IconMock
export const LocalBar = IconMock
export const LocalPizza = IconMock
export const BrunchDining = IconMock
export const DinnerDining = IconMock
export const LunchDining = IconMock
export const Nightlife = IconMock
export const LocalHospital = IconMock
export const LocalPharmacy = IconMock
export const ShoppingBag = IconMock
export const ShoppingCart = IconMock
export const ShoppingBasket = IconMock
export const Store = IconMock
export const Shop = IconMock
export const Storefront = IconMock
export const LocalMall = IconMock
export const AccountBalance = IconMock
export const Business = IconMock
export const CorporateFare = IconMock
export const Work = IconMock
export const MeetingRoom = IconMock
export const Gite = IconMock
export const House = IconMock
export const Cottage = IconMock
export const Apartment = IconMock
export const Villa = IconMock
export const OtherHouses = IconMock
export const Foundation = IconMock
export const Fence = IconMock
export const Yard = IconMock
export const Pool = IconMock
export const HotTub = IconMock
export const Spa = IconMock
export const FitnessCenter = IconMock
export const SportsGymnasium = IconMock
export const SportsBasketball = IconMock
export const SportsFootball = IconMock
export const SportsSoccer = IconMock
export const SportsTennis = IconMock
export const SportsVolleyball = IconMock
export const SportsBaseball = IconMock
export const SportsCricket = IconMock
export const SportsGolf = IconMock
export const SportsHockey = IconMock
export const SportsMma = IconMock
export const SportsMotorsports = IconMock
export const SportsRugby = IconMock
export const SportsScore = IconMock
export const SportsHandball = IconMock
export const SportsKabaddi = IconMock
export const Rowing = IconMock
export const Surfing = IconMock
export const Kitesurfing = IconMock
export const Snowboarding = IconMock
export const DownhillSkiing = IconMock
export const Snowshoeing = IconMock
export const IceSkating = IconMock
export const Curling = IconMock
export const Sailing = IconMock
export const Kayaking = IconMock
export const Rafting = IconMock
export const ScubaDiving = IconMock
export const Diving = IconMock
export const Fishing = IconMock
export const Hiking = IconMock
export const RunningWithErrors = IconMock
// Экспорт по умолчанию
export default IconMock
@@ -0,0 +1,70 @@
// Mock для всех MUI иконок
const createIconMock = (name) => {
const IconMock = (props) => {
return <span data-testid={`icon-${name}`} {...props} />
}
IconMock.displayName = name
return IconMock
}
// Экспортируем все иконки динамически
const icons = [
'GitHub', 'YouTube', 'Telegram', 'Brightness7', 'Brightness4', 'BrightnessAuto',
'Logout', 'HelpOutline', 'Menu', 'People', 'Settings', 'Dns', 'SwapHoriz',
'Delete', 'Add', 'Terminal', 'CheckCircle', 'Error', 'LinkIcon', 'OpenInNew',
'ContentCopy', 'Router', 'Edit', 'MoreVert', 'Remove', 'Refresh', 'Search',
'FilterList', 'RefreshTwoTone', 'Warning', 'Info', 'Close', 'Check',
'ArrowDownward', 'ArrowUpward', 'MoreHoriz', 'ContentPaste', 'QrCode', 'Usb',
'VpnKey', 'Security', 'Speed', 'Timeline', 'Assessment', 'SettingsApplications',
'CloudDownload', 'CloudUpload', 'Folder', 'FileCopy', 'Save', 'Print',
'DeleteOutline', 'Restore', 'History', 'Schedule', 'AccessTime', 'Today',
'Event', 'Notifications', 'AccountCircle', 'Person', 'Group', 'Public',
'Language', 'Translate', 'Star', 'Favorite', 'Home', 'LocationOn', 'Place',
'Email', 'Phone', 'Chat', 'Message', 'Forum', 'Share', 'Send', 'Inbox',
'Drafts', 'Mail', 'Markunread', 'Lock', 'LockOpen', 'Unlock', 'Visibility',
'VisibilityOff', 'Eye', 'EyeOff', 'ToggleOn', 'ToggleOff', 'RadioButtonChecked',
'RadioButtonUnchecked', 'CheckBox', 'CheckBoxOutlineBlank', 'IndeterminateCheckBox',
'PlusOne', 'ThumbUp', 'ThumbDown', 'Whatshot', 'FavoriteBorder', 'StarBorder',
'Bookmark', 'BookmarkBorder', 'Bookmarks', 'TurnedIn', 'TurnedInNot', 'Label',
'LabelImportant', 'Grade', 'Done', 'Clear', 'Block', 'Ban', 'Stop', 'Pause',
'PlayArrow', 'FastForward', 'FastRewind', 'SkipNext', 'SkipPrevious',
'FiberManualRecord', 'Circle', 'Square', 'Rectangle', 'Triangle', 'NavigateNext',
'NavigateBefore', 'ChevronRight', 'ChevronLeft', 'ExpandMore', 'ExpandLess',
'UnfoldMore', 'UnfoldLess', 'ArrowRight', 'ArrowLeft', 'ArrowBack', 'ArrowForward',
'ArrowDropDown', 'ArrowDropUp', 'Expand', 'SubdirectoryArrowRight',
'SubdirectoryArrowLeft', 'FileDownload', 'FileUpload', 'Attachment', 'Link',
'InsertLink', 'Photo', 'Image', 'PictureAsPdf', 'ImageIcon', 'CameraAlt',
'Videocam', 'Movie', 'MusicNote', 'Mic', 'VolumeUp', 'VolumeOff', 'Headset',
'Headphones', 'Speaker', 'Radio', 'Podcasts', 'Tv', 'DesktopWindows', 'Laptop',
'Computer', 'Tablet', 'Smartphone', 'PhoneIphone', 'PhoneAndroid', 'Devices',
'SmartDisplay', 'Monitor', 'ScreenShare', 'StopScreenShare', 'PresentToAll',
'Cast', 'CastConnected', 'CastForEducation', 'Wifi', 'WifiOff', 'NetworkWifi',
'NetworkCell', 'SignalCellular4Bar', 'SignalWifi4Bar', 'Bluetooth',
'BluetoothConnected', 'BluetoothDisabled', 'GpsFixed', 'GpsNotFixed',
'LocationSearching', 'MyLocation', 'Navigation', 'NearMe', 'Directions',
'DirectionsCar', 'DirectionsBus', 'DirectionsTrain', 'DirectionsBike',
'DirectionsWalk', 'DirectionsRun', 'Flight', 'LocalAirport', 'Hotel',
'Restaurant', 'LocalCafe', 'LocalBar', 'LocalPizza', 'BrunchDining',
'DinnerDining', 'LunchDining', 'Nightlife', 'LocalHospital', 'LocalPharmacy',
'ShoppingBag', 'ShoppingCart', 'ShoppingBasket', 'Store', 'Shop', 'Storefront',
'LocalMall', 'AccountBalance', 'Business', 'CorporateFare', 'Work',
'MeetingRoom', 'Gite', 'House', 'Cottage', 'Apartment', 'Villa', 'OtherHouses',
'Foundation', 'Fence', 'Yard', 'Pool', 'HotTub', 'Spa', 'FitnessCenter',
'SportsGymnasium', 'SportsBasketball', 'SportsFootball', 'SportsSoccer',
'SportsTennis', 'SportsVolleyball', 'SportsBaseball', 'SportsCricket',
'SportsGolf', 'SportsHockey', 'SportsMma', 'SportsMotorsports', 'SportsRugby',
'SportsScore', 'SportsHandball', 'SportsKabaddi', 'Rowing', 'Surfing',
'Kitesurfing', 'Snowboarding', 'DownhillSkiing', 'Snowshoeing', 'IceSkating',
'Curling', 'Sailing', 'Kayaking', 'Rafting', 'ScubaDiving', 'Diving', 'Fishing',
'Hiking', 'RunningWithErrors', 'PlayCircleFilled', 'PauseCircleFilled',
'CheckCircle', 'Dns'
]
// Создаем экспорт для каждой иконки
const exportsObj = {}
icons.forEach(name => {
exportsObj[name] = createIconMock(name)
})
module.exports = exportsObj
module.exports.default = createIconMock('DefaultIcon')
@@ -0,0 +1,5 @@
{
"name": "@mui/icons-material",
"main": "index.js",
"module": "index.js"
}