Files
2023-01-03 00:04:38 +00:00

63 lines
2.2 KiB
JavaScript

describe('Monaco Editor with Parser', () => {
const selectAllKeys = ['darwin'].includes(Cypress.platform) ? '{cmd}a' : '{ctrl}a';
beforeEach(() => {
cy.visitBlankPage();
cy.window().then((contentWindow) => {
// console.log already globally stubbed in cy support/commands
cy.spy(contentWindow.console, 'error').as('consoleError');
});
cy.prepareAsyncAPI();
cy.prepareOasGenerator();
cy.waitForSplashScreen();
});
it('should not throw console.error when parsing empty string', () => {
cy.get('.monaco-editor textarea:first', { timeout: 10000 })
.should('be.visible')
.click({ force: true })
.focused()
.type(selectAllKeys)
.clear();
cy.waitForContentPropagation();
cy.get('@consoleError').should('not.be.called');
cy.get('.monaco-editor .view-lines').should('contains.text', '');
});
it('should not throw console.error when parsing unsupported definition', () => {
cy.get('.monaco-editor textarea:first', { timeout: 10000 })
.should('be.visible')
.click({ force: true })
.focused()
.type(selectAllKeys)
.type('randomapi: 1.0.0\n');
cy.waitForContentPropagation();
cy.get('@consoleError').should('not.be.called');
cy.get('.monaco-editor .view-lines').should('contains.text', 'randomapi');
});
it('should toggle between light and dark themes', () => {
// default dark
cy.get(':nth-child(2) > .swagger-editor__editor-pane-bar-control > .octicon-sun').should(
'be.visible'
);
cy.get('.swagger-editor__editor-monaco > .vs-dark ').should('exist');
// toggle to light
cy.get(':nth-child(2) > .swagger-editor__editor-pane-bar-control').click();
cy.get(':nth-child(2) > .swagger-editor__editor-pane-bar-control > .octicon-moon').should(
'be.visible'
);
cy.get('.swagger-editor__editor-monaco > .vs ').should('exist');
// toggle back to dark
cy.get(':nth-child(2) > .swagger-editor__editor-pane-bar-control').click();
cy.get(':nth-child(2) > .swagger-editor__editor-pane-bar-control > .octicon-sun').should(
'be.visible'
);
cy.get('.swagger-editor__editor-monaco > .vs-dark ').should('exist');
});
});