diff --git a/cypress/e2e/footer-bar.cy.ts b/cypress/e2e/footer-bar.cy.ts index 70899ab0..e8a6cd29 100644 --- a/cypress/e2e/footer-bar.cy.ts +++ b/cypress/e2e/footer-bar.cy.ts @@ -113,4 +113,20 @@ describe('Footer bar', () => { }) }) }) + + describe('Print button', () => { + describe('When opening print panel', () => { + it('opens the print panel', () => { + cy.get('[data-cy="printPanel"]').should('not.exist') + cy.get('button[data-cy="printButton"]').click() + cy.get('[data-cy="printPanel"]').should('exist') + }) + + it('Other panels are closed', () => { + cy.get('[data-cy="styleSelector"]').should('not.exist') + cy.get('[data-cy="myMapsPanel"]').should('not.exist') + cy.get('[data-cy="infoPanel"]').should('be.hidden') + }) + }) + }) }) diff --git a/src/components/footer/footer-bar.vue b/src/components/footer/footer-bar.vue index 0850a714..3561c72d 100644 --- a/src/components/footer/footer-bar.vue +++ b/src/components/footer/footer-bar.vue @@ -45,8 +45,24 @@ function onClickLayersIcon() { themeGridOpen.value = false } -watch(drawToolbarOpen, isOpen => isOpen && (measureToolbarOpen.value = false)) -watch(measureToolbarOpen, isOpen => isOpen && (drawToolbarOpen.value = false)) +watch(drawToolbarOpen, isOpen => { + if (isOpen) { + measureToolbarOpen.value = false + printToolbarOpen.value = false + } +}) +watch(measureToolbarOpen, isOpen => { + if (isOpen) { + drawToolbarOpen.value = false + printToolbarOpen.value = false + } +}) +watch(printToolbarOpen, isOpen => { + if (isOpen) { + drawToolbarOpen.value = false + measureToolbarOpen.value = false + } +}) const featureInfoStore = useFeatureInfoStore() const { displayStarOnMobile } = storeToRefs(featureInfoStore) diff --git a/src/services/print.service.test.ts b/src/services/print.service.test.ts index 14fd8cf3..38a79633 100644 --- a/src/services/print.service.test.ts +++ b/src/services/print.service.test.ts @@ -74,4 +74,34 @@ describe('PrintService', () => { downloadURL: `${BASE_URL}/printproxy/download`, }) }) + + it('should return correct legends', async () => { + const mockLayer = { + get: vi.fn().mockImplementation((key: string) => { + if (key === 'metadata') { + return { + legend_name: 'Test Legend', + max_dpi: '300', + } + } + if (key === 'queryable_id') { + return 'test-id' + } + if (key === 'label') { + return 'Test Label' + } + }), + } + + const legends = await printService.getLegends([mockLayer as any], 'en') + expect(legends).toEqual([ + { name: 'Test Legend' }, + { + name: 'Test Label', + restUrl: + 'https://migration.geoportail.lu/legends/get_html?lang=en&id=test-id&dpi=127&legend_title=Test Label', + legendTitle: 'Test Label', + }, + ]) + }) }) diff --git a/src/stores/app.store.ts b/src/stores/app.store.ts index 31419abd..237a6c3c 100644 --- a/src/stores/app.store.ts +++ b/src/stores/app.store.ts @@ -123,10 +123,6 @@ export const useAppStore = defineStore( function togglePrintToolbarOpen(open?: boolean) { printToolbarOpen.value = open ?? !printToolbarOpen.value - if (printToolbarOpen.value) { - drawToolbarOpen.value = false - myMapsOpen.value = false - } } return {