diff --git a/package.json b/package.json index 1b30aed..59a520b 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "main": "./dist/vue-components.umd.js", "module": "./dist/vue-components.es.js", "typings": "./dist/src/main.d.ts", - "version": "1.12.0", + "version": "1.13.0", "exports": { ".": { "import": "./dist/vue-components.es.js", diff --git a/src/__tests__/OeContainer.cy.ts b/src/__tests__/OeContainer.cy.ts index f376ff7..d1a0934 100644 --- a/src/__tests__/OeContainer.cy.ts +++ b/src/__tests__/OeContainer.cy.ts @@ -58,7 +58,7 @@ describe('Container', () => { setup: () => { const tabs = ref([ { label: 'Menu', id: 'menu', closable: false, editMode: false }, - { label: 'Tab 1', id: '1', closable: true, editMode: false }, + { label: 'Tab 1', id: '1', closable: true, editMode: true }, { label: 'Tab 2', id: '2', closable: true, editMode: false }, ]); const activeTab = ref(tabs.value[0]); @@ -134,11 +134,12 @@ describe('Container', () => { }); }); - it('emits a tab-closed event with the selected tab on close', () => { + it('emits a tab-closed event with the selected tab on close after confirmation', () => { const onTabClosedSpy = cy.spy().as('onTabClosedSpy'); cy.mount(TestComponent, { props: { onTabClosed: onTabClosedSpy } }).then(({ component }) => { cy.dataCy('bottom-tabs').find('.tab-1 .vl-pill__close').click(); + cy.dataCy('confirm-button').click(); cy.get('@onTabClosedSpy').should( 'have.been.calledWith', @@ -146,5 +147,60 @@ describe('Container', () => { ); }); }); + + it('does not emit a tab-closed event with the selected tab on close after confirmation cancellation', () => { + const onTabClosedSpy = cy.spy().as('onTabClosedSpy'); + + cy.mount(TestComponent, { props: { onTabClosed: onTabClosedSpy } }).then(({ component }) => { + cy.dataCy('bottom-tabs').find('.tab-1 .vl-pill__close').click(); + cy.dataCy('cancel-button').click(); + + cy.get('@onTabClosedSpy').should( + 'not.have.been.calledWith', + component.tabs.find((t) => t.id === '1') + ); + }); + }); + + it('emits a tab-closed event with the selected tab on close when confirmation is disabled', () => { + const onTabClosedSpy = cy.spy().as('onTabClosedSpy'); + + cy.mount(TestComponent, { props: { onTabClosed: onTabClosedSpy, disableConfirmCloseTab: true } }).then( + ({ component }) => { + cy.dataCy('bottom-tabs').find('.tab-1 .vl-pill__close').click(); + + cy.get('@onTabClosedSpy').should( + 'have.been.calledWith', + component.tabs.find((t) => t.id === '1') + ); + } + ); + }); + + it('does not emit a tab-closed event with the selected tab on close when tab is in edit mode without confirmation', () => { + const onTabClosedSpy = cy.spy().as('onTabClosedSpy'); + + cy.mount(TestComponent, { props: { onTabClosed: onTabClosedSpy } }).then(({ component }) => { + cy.dataCy('bottom-tabs').find('.tab-1 .vl-pill__close').click(); + + cy.get('@onTabClosedSpy').should( + 'not.have.been.calledWith', + component.tabs.find((t) => t.id === '1') + ); + }); + }); + + it('emits a tab-closed event with the selected tab on close when tab is not in edit mode', () => { + const onTabClosedSpy = cy.spy().as('onTabClosedSpy'); + + cy.mount(TestComponent, { props: { onTabClosed: onTabClosedSpy } }).then(({ component }) => { + cy.dataCy('bottom-tabs').find('.tab-2 .vl-pill__close').click(); + + cy.get('@onTabClosedSpy').should( + 'have.been.calledWith', + component.tabs.find((t) => t.id === '2') + ); + }); + }); }); }); diff --git a/src/components/smart/OeActorWidgetDetail.vue b/src/components/dumb/OeActorWidgetDetail.vue similarity index 100% rename from src/components/smart/OeActorWidgetDetail.vue rename to src/components/dumb/OeActorWidgetDetail.vue diff --git a/src/components/smart/OeActorWidgetGridActies.vue b/src/components/dumb/OeActorWidgetGridActies.vue similarity index 87% rename from src/components/smart/OeActorWidgetGridActies.vue rename to src/components/dumb/OeActorWidgetGridActies.vue index 9c6e457..8e01e23 100644 --- a/src/components/smart/OeActorWidgetGridActies.vue +++ b/src/components/dumb/OeActorWidgetGridActies.vue @@ -7,7 +7,7 @@ icon="eye" @click="props.params.setStateDetail(params.data?.id as number)" /> - + diff --git a/src/components/dumb/OeContainer.vue b/src/components/dumb/OeContainer.vue index a66f0e5..f77e23c 100644 --- a/src/components/dumb/OeContainer.vue +++ b/src/components/dumb/OeContainer.vue @@ -1,5 +1,11 @@