import '../../../helpers/bootstrap-3' import OutlinePane from '@/features/outline/components/outline-pane' import { EditorProviders, PROJECT_ID } from '../../../helpers/editor-providers' import { useState } from 'react' import customLocalStorage from '@/infrastructure/local-storage' describe('', function () { it('renders expanded outline', function () { cy.mount( ) cy.findByRole('tree') }) it('renders disabled outline', function () { cy.mount( ) cy.findByRole('tree').should('not.exist') }) it('expand outline and use local storage', function () { customLocalStorage.setItem(`file_outline.expanded.${PROJECT_ID}`, false) const onToggle = cy.stub() const Container = () => { const [expanded, setExpanded] = useState(false) return ( { customLocalStorage.setItem( `file_outline.expanded.${PROJECT_ID}`, !expanded ) setExpanded(!expanded) }} /> ) } cy.mount( ) cy.findByRole('tree').should('not.exist') cy.findByRole('button', { name: 'Show File outline', }).click() cy.findByRole('tree').then(() => { expect(onToggle).to.be.calledTwice expect( customLocalStorage.getItem(`file_outline.expanded.${PROJECT_ID}`) ).to.equal(true) }) }) it('shows warning on partial result', function () { cy.mount( ) cy.findByRole('status') }) it('shows no warning on non-partial result', function () { cy.mount( ) cy.findByRole('status').should('not.exist') }) })