// ========= Copyright 2025-2026 @ Eigent.ai All Rights Reserved. ========= // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // ========= Copyright 2025-2026 @ Eigent.ai All Rights Reserved. ========= import WindowControls from '@/components/WindowControls'; import { render, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { beforeEach, describe, expect, it, vi } from 'vitest'; const electronAPI = { getPlatform: vi.fn(), minimizeWindow: vi.fn(), toggleMaximizeWindow: vi.fn(), closeWindow: vi.fn(), }; vi.mock('@/host', () => ({ useHost: () => ({ electronAPI }), })); describe('WindowControls', () => { beforeEach(() => { vi.clearAllMocks(); }); it('renders accessible controls on Linux', async () => { const user = userEvent.setup(); electronAPI.getPlatform.mockReturnValue('linux'); render(); await user.click(screen.getByRole('button', { name: 'Minimize' })); await user.click(screen.getByRole('button', { name: 'Maximize' })); await user.click(screen.getByRole('button', { name: 'Close' })); expect(electronAPI.minimizeWindow).toHaveBeenCalledOnce(); expect(electronAPI.toggleMaximizeWindow).toHaveBeenCalledOnce(); expect(electronAPI.closeWindow).toHaveBeenCalledWith(false); }); it.each(['darwin', 'win32'])( 'keeps native window controls on %s', (platform) => { electronAPI.getPlatform.mockReturnValue(platform); render(); expect(screen.queryByRole('button', { name: 'Close' })).toBeNull(); } ); });