diff --git a/cypress-tests/cypress/e2e/happyPath/platform/ceTestcases/editor/privateAndPublicApp.cy.js b/cypress-tests/cypress/e2e/happyPath/platform/ceTestcases/editor/privateAndPublicApp.cy.js index f867c6cd67..d3536b7e28 100644 --- a/cypress-tests/cypress/e2e/happyPath/platform/ceTestcases/editor/privateAndPublicApp.cy.js +++ b/cypress-tests/cypress/e2e/happyPath/platform/ceTestcases/editor/privateAndPublicApp.cy.js @@ -296,7 +296,6 @@ describe( }); }); - cy.get(usersSelector.acceptInvite).click(); cy.get('[data-cy="draggable-widget-table1"]').should("be.visible"); }); } diff --git a/cypress-tests/cypress/e2e/happyPath/platform/commonTestcases/authentication/forgotPassword.cy.js b/cypress-tests/cypress/e2e/happyPath/platform/commonTestcases/authentication/forgotPassword.cy.js index dda3cd887c..24e31d0d4f 100644 --- a/cypress-tests/cypress/e2e/happyPath/platform/commonTestcases/authentication/forgotPassword.cy.js +++ b/cypress-tests/cypress/e2e/happyPath/platform/commonTestcases/authentication/forgotPassword.cy.js @@ -43,7 +43,7 @@ describe("Password reset functionality", () => { ); cy.get(commonSelectors.forgotPasswordPageSubHeader).should(($el) => { expect($el.contents().first().text().trim()).to.eq( - commonText.newToTooljetText + "New to" ); }); cy.get(commonSelectors.createAnAccountLink).verifyVisibleElement( diff --git a/cypress-tests/cypress/e2e/happyPath/platform/commonTestcases/authentication/signUp.cy.js b/cypress-tests/cypress/e2e/happyPath/platform/commonTestcases/authentication/signUp.cy.js index c9427d3a9c..e605d89890 100644 --- a/cypress-tests/cypress/e2e/happyPath/platform/commonTestcases/authentication/signUp.cy.js +++ b/cypress-tests/cypress/e2e/happyPath/platform/commonTestcases/authentication/signUp.cy.js @@ -51,7 +51,6 @@ describe("User signup", () => { it("Verify invalid invitation link", () => { cy.log(invitationLink) cy.visit(invitationLink); - cy.pause() verifyInvalidInvitationLink(); cy.get(commonSelectors.backtoSignUpButton).click(); cy.get(commonSelectors.SignUpSectionHeader).should("be.visible"); diff --git a/cypress-tests/cypress/e2e/happyPath/marketplace/commonTestcases/exportImport/export.cy.js b/cypress-tests/cypress/e2e/happyPath/platform/commonTestcases/exportImport/export.cy.js similarity index 96% rename from cypress-tests/cypress/e2e/happyPath/marketplace/commonTestcases/exportImport/export.cy.js rename to cypress-tests/cypress/e2e/happyPath/platform/commonTestcases/exportImport/export.cy.js index 62df170e82..bbbbb87e08 100644 --- a/cypress-tests/cypress/e2e/happyPath/marketplace/commonTestcases/exportImport/export.cy.js +++ b/cypress-tests/cypress/e2e/happyPath/platform/commonTestcases/exportImport/export.cy.js @@ -21,7 +21,6 @@ import { buttonText } from "Texts/button"; describe("App Export Functionality", () => { var data = {}; - data.appName1 = `${fake.companyName}-App`; let currentVersion = ""; let otherVersions = []; beforeEach(() => { @@ -29,6 +28,7 @@ describe("App Export Functionality", () => { }); it("Verify the elements of export dialog box", () => { + data.appName1 = `${fake.companyName}-App`; cy.apiCreateApp(data.appName1); cy.openApp(); cy.dragAndDropWidget(buttonText.defaultWidgetText); @@ -56,6 +56,9 @@ describe("App Export Functionality", () => { }); it("Verify 'Export app' functionality of an application", () => { + data.appName1 = `${fake.companyName}-App`; + cy.apiCreateApp(data.appName1); + cy.visit("/"); cy.get(commonSelectors.appHeaderLable).should("be.visible"); @@ -96,7 +99,7 @@ describe("App Export Functionality", () => { .click(); createNewVersion((otherVersions = ["v2"]), (currentVersion = "v1")); cy.wait(500); - cy.dragAndDropWidget("Toggle Switch", 50, 50); + cy.dragAndDropWidget("Text Input", 50, 50); cy.waitForAutoSave(); cy.get(appVersionSelectors.currentVersionField((otherVersions = "v2"))) .should("be.visible") diff --git a/cypress-tests/cypress/e2e/happyPath/marketplace/commonTestcases/exportImport/import.cy.js b/cypress-tests/cypress/e2e/happyPath/platform/commonTestcases/exportImport/import.cy.js similarity index 100% rename from cypress-tests/cypress/e2e/happyPath/marketplace/commonTestcases/exportImport/import.cy.js rename to cypress-tests/cypress/e2e/happyPath/platform/commonTestcases/exportImport/import.cy.js diff --git a/cypress-tests/cypress/e2e/happyPath/platform/commonTestcases/workspace/bulkUserUpload.cy.js b/cypress-tests/cypress/e2e/happyPath/platform/commonTestcases/workspace/bulkUserUpload.cy.js index f42a82943b..91ac5a7951 100644 --- a/cypress-tests/cypress/e2e/happyPath/platform/commonTestcases/workspace/bulkUserUpload.cy.js +++ b/cypress-tests/cypress/e2e/happyPath/platform/commonTestcases/workspace/bulkUserUpload.cy.js @@ -34,9 +34,9 @@ describe("Bulk user upload", () => { data.firstName = fake.firstName; data.workspaceName = data.firstName.toLowerCase(); - cy.apiLogin() + cy.apiLogin(); cy.apiCreateWorkspace(data.firstName, data.workspaceName); - cy.visit(`${data.workspaceName}`) + cy.visit(`${data.workspaceName}`); common.navigateToManageUsers(); @@ -122,9 +122,9 @@ describe("Bulk user upload", () => { data.firstName = fake.firstName; data.workspaceName = data.firstName.toLowerCase(); - cy.apiLogin() + cy.apiLogin(); cy.apiCreateWorkspace(data.firstName, data.workspaceName); - cy.visit(`${data.workspaceName}`) + cy.visit(`${data.workspaceName}`); common.navigateToManageUsers(); cy.get(usersSelector.buttonAddUsers).click(); @@ -142,7 +142,10 @@ describe("Bulk user upload", () => { force: true, }); cy.get(usersSelector.buttonUploadUsers).click(); - cy.wait(10000); + cy.wait(30000); + cy.get(".go2072408551") + .should("be.visible") + .and("have.text", "250 users are being added"); common.searchUser("test12@gmail.com"); cy.contains("td", "test12@gmail.com") .parent() diff --git a/cypress-tests/cypress/e2e/happyPath/platform/commonTestcases/workspace/inviteflow.cy.js b/cypress-tests/cypress/e2e/happyPath/platform/commonTestcases/workspace/inviteflow.cy.js index b6e8ee348a..8b7c1d902b 100644 --- a/cypress-tests/cypress/e2e/happyPath/platform/commonTestcases/workspace/inviteflow.cy.js +++ b/cypress-tests/cypress/e2e/happyPath/platform/commonTestcases/workspace/inviteflow.cy.js @@ -131,7 +131,8 @@ describe("user invite flow cases", () => { cy.apiLogin(); cy.apiCreateWorkspace(data.workspaceName, data.workspaceName); cy.visit(`${data.workspaceName}`); - enableSignUp(); + cy.wait(3000) + setSignupStatus(true, data.workspaceName); logout(); cy.get(commonSelectors.createAnAccountLink).click(); @@ -142,11 +143,6 @@ describe("user invite flow cases", () => { cy.defaultWorkspaceLogin(); visitWorkspaceInvitation(data.email, data.workspaceName); - - cy.clearAndType(commonSelectors.workEmailInputField, data.email); - cy.clearAndType(commonSelectors.passwordInputField, "password"); - cy.get(commonSelectors.signInButton).click(); - cy.get(usersSelector.acceptInvite).click(); cy.verifyToastMessage(commonSelectors.toastMessage, usersText.inviteToast); logout(); }); diff --git a/cypress-tests/cypress/support/utils/manageSSO.js b/cypress-tests/cypress/support/utils/manageSSO.js index 0362327bf9..ba77205619 100644 --- a/cypress-tests/cypress/support/utils/manageSSO.js +++ b/cypress-tests/cypress/support/utils/manageSSO.js @@ -552,21 +552,25 @@ export const defaultSSO = (enable) => { }); }; -export const setSignupStatus = (enable) => { - cy.getCookie("tj_auth_token").then((cookie) => { - cy.request( - { +export const setSignupStatus = (enable, workspaceName = 'My workspace') => { + cy.task("updateId", { + dbconfig: Cypress.env("app_db"), + sql: `SELECT id FROM organizations WHERE name = '${workspaceName}'`, + }).then((resp) => { + const workspaceId = resp.rows[0].id; + + cy.getCookie("tj_auth_token").then((cookie) => { + cy.request({ method: "PATCH", url: "http://localhost:3000/api/organizations", headers: { - "Tj-Workspace-Id": Cypress.env("workspaceId"), + "Tj-Workspace-Id": workspaceId, Cookie: `tj_auth_token=${cookie.value}`, }, body: { enableSignUp: enable }, - }, - { log: false } - ).then((response) => { - expect(response.status).to.equal(200); + }).then((response) => { + expect(response.status).to.equal(200); + }); }); }); }; diff --git a/docs/src/components/DocsCard/DocsCard.css b/docs/src/components/DocsCard/DocsCard.css index 2b05042951..f78a2183eb 100644 --- a/docs/src/components/DocsCard/DocsCard.css +++ b/docs/src/components/DocsCard/DocsCard.css @@ -20,7 +20,7 @@ display: flex; padding: 1.5rem; flex: 1 1 auto; - align-items: start; + align-items: flex-start; } .card-info { diff --git a/frontend/.gitignore b/frontend/.gitignore index 4d29575de8..425e650205 100644 --- a/frontend/.gitignore +++ b/frontend/.gitignore @@ -21,3 +21,5 @@ npm-debug.log* yarn-debug.log* yarn-error.log* + +storybook-static \ No newline at end of file diff --git a/frontend/.storybook/decorators.jsx b/frontend/.storybook/decorators.jsx new file mode 100644 index 0000000000..eee828eccf --- /dev/null +++ b/frontend/.storybook/decorators.jsx @@ -0,0 +1,14 @@ +// storybookDecorators.js + +import React from 'react'; + +export function withColorScheme(story, context) { + const darkMode = context?.globals?.backgrounds?.value === '#333333'; // Access theme mode from globals + const className = darkMode ? 'dark-theme' : ''; + + return ( +