diff --git a/cypress/composables/versions.ts b/cypress/composables/versions.ts new file mode 100644 index 000000000..f96ea8152 --- /dev/null +++ b/cypress/composables/versions.ts @@ -0,0 +1,32 @@ +/** + * Getters + */ + +export function getVersionUpdatesPanelOpenButton() { + return cy.getByTestId('version-updates-panel-button'); +} + +export function getVersionUpdatesPanel() { + return cy.getByTestId('version-updates-panel'); +} + +export function getVersionUpdatesPanelCloseButton() { + return getVersionUpdatesPanel().get('.el-drawer__close-btn').first(); +} + +export function getVersionCard() { + return cy.getByTestId('version-card'); +} + +/** + * Actions + */ + +export function openVersionUpdatesPanel() { + getVersionUpdatesPanelOpenButton().click(); + getVersionUpdatesPanel().should('be.visible'); +} + +export function closeVersionUpdatesPanel() { + getVersionUpdatesPanelCloseButton().click(); +} diff --git a/cypress/e2e/36-versions.cy.ts b/cypress/e2e/36-versions.cy.ts new file mode 100644 index 000000000..2d93223eb --- /dev/null +++ b/cypress/e2e/36-versions.cy.ts @@ -0,0 +1,66 @@ +import { INSTANCE_OWNER } from '../constants'; +import { WorkflowsPage } from '../pages/workflows'; +import { + closeVersionUpdatesPanel, + getVersionCard, + getVersionUpdatesPanelOpenButton, + openVersionUpdatesPanel, +} from '../composables/versions'; + +const workflowsPage = new WorkflowsPage(); + +describe('Versions', () => { + it('should open updates panel', () => { + cy.intercept('GET', '/rest/settings', (req) => { + req.continue((res) => { + if (res.body.hasOwnProperty('data')) { + res.body.data = { + ...res.body.data, + releaseChannel: 'stable', + versionCli: '1.0.0', + versionNotifications: { + enabled: true, + endpoint: 'https://api.n8n.io/api/versions/', + infoUrl: 'https://docs.n8n.io/getting-started/installation/updating.html', + }, + }; + } + }); + }).as('settings'); + + cy.intercept('GET', 'https://api.n8n.io/api/versions/1.0.0', [ + { + name: '1.3.1', + createdAt: '2023-08-18T11:53:12.857Z', + hasSecurityIssue: null, + hasSecurityFix: null, + securityIssueFixVersion: null, + hasBreakingChange: null, + documentationUrl: 'https://docs.n8n.io/release-notes/#n8n131', + nodes: [], + description: 'Includes bug fixes', + }, + { + name: '1.0.5', + createdAt: '2023-07-24T10:54:56.097Z', + hasSecurityIssue: false, + hasSecurityFix: null, + securityIssueFixVersion: null, + hasBreakingChange: true, + documentationUrl: 'https://docs.n8n.io/release-notes/#n8n104', + nodes: [], + description: 'Includes core functionality and bug fixes', + }, + ]); + + cy.signin(INSTANCE_OWNER); + + cy.visit(workflowsPage.url); + cy.wait('@settings'); + + getVersionUpdatesPanelOpenButton().should('contain', '2 updates'); + openVersionUpdatesPanel(); + getVersionCard().should('have.length', 2); + closeVersionUpdatesPanel(); + }); +}); diff --git a/packages/editor-ui/src/App.vue b/packages/editor-ui/src/App.vue index e8978ae78..d16eb6f66 100644 --- a/packages/editor-ui/src/App.vue +++ b/packages/editor-ui/src/App.vue @@ -35,7 +35,6 @@