import { render, fireEvent } from '@testing-library/react' import React from 'react' import { RunningAlert } from './RunningAlert' // Mock the isFlagshipApp function for easier testing const mockIsFlagshipApp = jest.fn() jest.mock('cozy-device-helper', () => ({ isFlagshipApp: (): unknown => mockIsFlagshipApp() })) // Mock the translation hook with distinct strings jest.mock('twake-i18n', () => ({ useI18n: (): { t: jest.Mock } => ({ t: jest.fn().mockImplementation(key => key as string) }) })) describe('RunningAlert', () => { it('renders correctly when isFlagshipApp returns true', () => { mockIsFlagshipApp.mockReturnValue(true) const { getByText } = render() // We're now using the translation keys as text expect( getByText('card.launchTrigger.runningAlert.title') ).toBeInTheDocument() expect( getByText('card.launchTrigger.runningAlert.body') ).toBeInTheDocument() }) it('does not render when isFlagshipApp returns false', () => { mockIsFlagshipApp.mockReturnValue(false) const { queryByText } = render() // We're now using the translation key as text expect(queryByText('card.launchTrigger.runningAlert.title')).toBeNull() }) it('hides the alert when the button is clicked', () => { mockIsFlagshipApp.mockReturnValue(true) const { getByText, queryByText } = render() // We're now using the translation key as text for the button fireEvent.click(getByText('card.launchTrigger.runningAlert.button')) // We're now using the translation key as text expect(queryByText('card.launchTrigger.runningAlert.title')).toBeNull() }) })