diff --git a/cypress/components/UploadPicker/new-menu.cy.ts b/cypress/components/UploadPicker/new-menu.cy.ts index 5e792182..430f1baf 100644 --- a/cypress/components/UploadPicker/new-menu.cy.ts +++ b/cypress/components/UploadPicker/new-menu.cy.ts @@ -85,12 +85,51 @@ describe('UploadPicker: "new"-menu', () => { handler() {}, } as Entry - before(() => { - cy.spy(entry, 'handler') - addNewFileMenuEntry(entry) - }) + before(() => addNewFileMenuEntry(entry)) + beforeEach(() => cy.spy(entry, 'handler')) afterEach(() => resetDocument()) + it('With "noMenu" prop no menu is shown', () => { + // Mount picker + cy.mount(UploadPicker, { propsData: { ...propsData, noMenu: true } }) + + // Check and init aliases + cy.get('[data-cy-upload-picker] [data-cy-upload-picker-input]').as('input').should('exist') + cy.get('[data-cy-upload-picker] .upload-picker__progress').as('progress').should('exist') + cy.get('[data-cy-upload-picker]') + .contains('button', 'Upload') + .should('be.visible') + // Directly trigger upload + .and('have.attr', 'data-cy-upload-picker-menu-entry', 'upload-file') + .click() + + cy.get('[role="menu"]').should('not.exist') + }) + + it('With "noMenu" prop and allowed folder-upload only the upload menu is shown', () => { + // Mount picker + cy.mount(UploadPicker, { propsData: { ...propsData, noMenu: true, allowFolders: true } }) + + // Check and init aliases + cy.get('[data-cy-upload-picker] [data-cy-upload-picker-input]').as('input').should('exist') + cy.get('[data-cy-upload-picker] .upload-picker__progress').as('progress').should('exist') + cy.get('[data-cy-upload-picker]') + .contains('button', 'Upload') + .should('be.visible') + // Directly no trigger + .and('not.have.attr', 'data-cy-upload-picker-menu-entry', 'upload-file') + // click should open the menu + .click() + + cy.get('[role="menu"]') + .should('be.visible') + .get('[role="menuitem"]') + // only two (!) entries: uploader folder + upload files + .should('have.length', 2) + // Not the custom entry + cy.get('[data-cy-upload-picker-menu-entry="empty-file"]').should('not.exist') + }) + it('Open the New File Menu', () => { // Mount picker cy.mount(UploadPicker, { propsData }) diff --git a/l10n/messages.pot b/l10n/messages.pot index 82e94d2f..af7df9cb 100644 --- a/l10n/messages.pot +++ b/l10n/messages.pot @@ -102,6 +102,9 @@ msgstr[1] "" msgid "Unknown size" msgstr "" +msgid "Upload" +msgstr "" + msgid "Upload files" msgstr "" diff --git a/lib/components/UploadPicker.vue b/lib/components/UploadPicker.vue index 2bf097fb..7d24aa57 100644 --- a/lib/components/UploadPicker.vue +++ b/lib/components/UploadPicker.vue @@ -9,7 +9,7 @@ class="upload-picker" data-cy-upload-picker> -