overleaf-cep/services/web/test/frontend/features/layout/components/switch-to-pdf-button.spec.tsx
Antoine Clausse 9e189e7d59 [web] Move UI scope to React states (#26403)
* Move `ui.view` to setState

* Move `openFile` to setState

* Move `ui.leftMenuShown` to setState

* Move `ui.miniReviewPanelVisible` to setState

* Move `ui.pdfLayout` to setState

* Move `ui.chatOpen` to setState

* Move `ui.reviewPanelOpen` to setState

* Cleanup: remove layout-context-adapter and imports

* Replace `ui` scope by mocked `LayoutProvider` in tests

* Update test

* Remove unnecessary `scopeStore.set('ui.chatOpen' ...`

GitOrigin-RevId: 81578bfdc958239eac492905f714a6074c81d0f5
2025-06-25 08:05:15 +00:00

46 lines
1.3 KiB
TypeScript

import SwitchToPDFButton from '@/features/source-editor/components/switch-to-pdf-button'
import { EditorProviders } from '../../../helpers/editor-providers'
describe('<SwitchToPDFButton />', function () {
it('shows button in full screen editor layout', function () {
cy.mount(
<EditorProviders
layoutContext={{ view: 'editor', pdfLayout: 'flat', chatIsOpen: false }}
>
<SwitchToPDFButton />
</EditorProviders>
)
cy.findByRole('button', { name: 'Switch to PDF' })
})
it('does not show button in split screen layout', function () {
cy.mount(
<EditorProviders
layoutContext={{
view: 'editor',
pdfLayout: 'sideBySide',
chatIsOpen: false,
}}
>
<SwitchToPDFButton />
</EditorProviders>
)
cy.findByRole('button', { name: 'Switch to PDF' }).should('not.exist')
})
it('does not show button when detached', function () {
window.metaAttributesCache.set('ol-detachRole', 'detacher')
cy.mount(
<EditorProviders
layoutContext={{ view: 'editor', pdfLayout: 'flat', chatIsOpen: false }}
>
<SwitchToPDFButton />
</EditorProviders>
)
cy.findByRole('button', { name: 'Switch to PDF' }).should('not.exist')
})
})