From 44b3b390c932ea6db429fa4a6803314130739a68 Mon Sep 17 00:00:00 2001 From: Jincheng Wan <45655760+Kapian1234@users.noreply.github.com> Date: Wed, 20 Nov 2024 11:42:59 +0800 Subject: [PATCH] Add test cases for workspace creation (#1635) * Update functional tests for workspace create Signed-off-by: Kapian1234 * Fix duplicate creation Signed-off-by: Kapian1234 * Add conditions for test cases Signed-off-by: Kapian1234 * Optimize the condition check Signed-off-by: Kapian1234 --------- Signed-off-by: Kapian1234 Co-authored-by: Lin Wang (cherry picked from commit 840e739640208b0be337de63b8964dab7e0c5403) --- .../mds_workspace_create.spec.js | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) diff --git a/cypress/integration/core-opensearch-dashboards/opensearch-dashboards/workspace-plugin/mds_workspace_create.spec.js b/cypress/integration/core-opensearch-dashboards/opensearch-dashboards/workspace-plugin/mds_workspace_create.spec.js index 61a24dced..c133bdc65 100644 --- a/cypress/integration/core-opensearch-dashboards/opensearch-dashboards/workspace-plugin/mds_workspace_create.spec.js +++ b/cypress/integration/core-opensearch-dashboards/opensearch-dashboards/workspace-plugin/mds_workspace_create.spec.js @@ -91,6 +91,103 @@ if (Cypress.env('WORKSPACE_ENABLED')) { cy.checkWorkspace(workspaceId, expectedWorkspace); }); }); + + it('should successfully create a workspace from home page', () => { + cy.deleteWorkspaceByName(workspaceName); + miscUtils.visitPage('app/workspace_initial'); + cy.getElementByTestId( + 'workspace-initial-card-createWorkspace-button' + ).click({ + force: true, + }); + cy.getElementByTestId( + 'workspace-initial-button-create-observability-workspace' + ).click({ + force: true, + }); + cy.contains('Observability') + .first() + .closest('.euiCheckableCard-isChecked') + .should('exist'); + + miscUtils.visitPage('app/workspace_initial'); + cy.getElementByTestId( + 'workspace-initial-useCaseCard-security-analytics-button-createWorkspace' + ).click({ + force: true, + }); + cy.contains('Security Analytics') + .first() + .closest('.euiCheckableCard-isChecked') + .should('exist'); + + inputWorkspaceName(workspaceName); + inputDataSourceWhenMDSEnabled(dataSourceTitle); + cy.getElementByTestId('workspaceForm-bottomBar-createButton').click({ + force: true, + }); + + let workspaceId; + cy.wait('@createWorkspaceRequest').then((interception) => { + expect(interception.response.statusCode).to.equal(200); + workspaceId = interception.response.body.result.id; + + cy.location('pathname', { timeout: 6000 }).should( + 'include', + `w/${workspaceId}/app` + ); + + const expectedWorkspace = { + name: workspaceName, + features: ['use-case-security-analytics'], + }; + cy.checkWorkspace(workspaceId, expectedWorkspace); + }); + }); + + if ( + Cypress.env('SAVED_OBJECTS_PERMISSION_ENABLED') && + Cypress.env('SECURITY_ENABLED') + ) { + it('should successfully jump to collaborators page after creating a workspace', () => { + cy.deleteWorkspaceByName(workspaceName); + inputWorkspaceName(workspaceName); + inputDataSourceWhenMDSEnabled(dataSourceTitle); + cy.getElementByTestId('workspaceForm-bottomBar-createButton').click({ + force: true, + }); + + let workspaceId; + cy.wait('@createWorkspaceRequest').then((interception) => { + expect(interception.response.statusCode).to.equal(200); + workspaceId = interception.response.body.result.id; + + cy.location('pathname', { timeout: 6000 }).should( + 'include', + `w/${workspaceId}/app/workspace_collaborators` + ); + }); + }); + } + + it('should correctly display the summary card', () => { + inputWorkspaceName(workspaceName); + cy.getElementByTestId( + 'workspaceForm-workspaceDetails-descriptionInputText' + ).type('test_workspace_description.+~!'); + cy.getElementByTestId('workspaceUseCase-essentials').click({ + force: true, + }); + inputDataSourceWhenMDSEnabled(dataSourceTitle); + cy.get('.workspaceCreateRightSidebar').within(() => { + cy.contains(workspaceName).should('exist'); + cy.contains('test_workspace_description.+~!').should('exist'); + cy.contains('Essentials').should('exist'); + if (MDSEnabled) { + cy.contains(dataSourceTitle).should('exist'); + } + }); + }); }); describe('Validate workspace name and description', () => {