describe('Dropzone in Layout', () => { describe('file uploads with dropzone', () => { beforeEach(() => { cy.visitBlankPage(); cy.prepareAsyncAPI(); cy.prepareOasGenerator(); cy.waitForSplashScreen(); }); describe('when more than one file of an expected type is dropped', () => { it('should inform the user that their file(s) were rejected', () => { cy.get('[data-cy="dropzone"]') .attachFile(['petstore-oas3.yaml', 'petstore-oas3.yaml'], { subjectType: 'input' }) .then(() => { cy.get('.modal-title') .should('contains.text', 'Uh oh, an error has occurred') .get('.modal-body > div') .should('contains.text', 'Sorry, there was an error processing your file') // assert on AlertDialog interaction via `x` button' .get('.close') .click() .get('.modal-title') .should('not.exist'); }); }); }); describe('when one file of an expected type is dropped', () => { it('should update the EditorPane and the EditorPreviewPane', () => { /** * subjectType: 'drag-n-drop' doesn't work correctly as it generates * `dragleave` and then `dragenter` events (in that order), which manifests in always * seeing the dropzone overlay. The goal of this test is to see when the * file is uploaded that the editor content and rendered UI changes and * this goal is satisfied. */ cy.get('[data-cy="dropzone"]').attachFile('petstore-oas3.yaml', { subjectType: 'input', }); // This assertion assumes change from non-OAS3 to OAS3, where a "badge" will exist for OAS3 cy.get('.version-stamp > .version').should('have.text', 'OAS3'); }); }); }); });