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 @@