diff --git a/app/client/cypress/e2e/Regression/ClientSide/AdminSettings/Branding_settings_Spec.ts b/app/client/cypress/e2e/Regression/ClientSide/AdminSettings/Branding_settings_Spec.ts new file mode 100644 index 000000000000..dfb61e890cf2 --- /dev/null +++ b/app/client/cypress/e2e/Regression/ClientSide/AdminSettings/Branding_settings_Spec.ts @@ -0,0 +1,108 @@ +import { + agHelper, + adminSettings, + locators, +} from "../../../../support/Objects/ObjectsCore"; +import AdminsSettings from "../../../../locators/AdminsSettings"; + +describe( + "Admin Branding Page - Branding page validations", + { tags: ["@tag.Settings"] }, + () => { + it("1. Verify branding data update for community user", () => { + adminSettings.NavigateToAdminSettings(); + agHelper.AssertElementVisibility(AdminsSettings.LeftPaneBrandingLink); + agHelper.GetNClick(AdminsSettings.LeftPaneBrandingLink); + + // branding logo PNG + cy.get(AdminsSettings.AdmingSettingsLogoInput).selectFile( + "cypress/fixtures/appsmithlogo.png", + { force: true }, + ); + agHelper.AssertElementAbsence(locators._toastMsg); + agHelper.AssertElementVisibility( + AdminsSettings.AdmingSettingsLogoInputImage, + ); + agHelper.WaitForCondition(() => { + cy.get(AdminsSettings.BrandingLogo) + .invoke("attr", "src") + .then((src) => { + cy.get(AdminsSettings.AdmingSettingsLogoInputImage) + .invoke("attr", "src") + .should("equal", src); + }); + }); + + // branding logo jpg + cy.get(AdminsSettings.AdmingSettingsLogoInput).selectFile( + "cypress/fixtures/AAAFlowerVase.jpeg", + { force: true }, + ); + agHelper.AssertElementAbsence(locators._toastMsg); + agHelper.AssertElementVisibility( + AdminsSettings.AdmingSettingsLogoInputImage, + ); + agHelper.WaitForCondition(() => { + cy.get(AdminsSettings.BrandingLogo) + .invoke("attr", "src") + .then((src) => { + cy.get(AdminsSettings.AdmingSettingsLogoInputImage) + .invoke("attr", "src") + .should("equal", src); + }); + }); + + // branding logo svg + // comment due to bug: https://github.com/appsmithorg/appsmith/issues/34329 + // cy.get(AdminsSettings.AdmingSettingsLogoInput).selectFile( + // "cypress/fixtures/appsmith-community-logo.svg", + // { force: true }, + // ); + // agHelper.AssertElementAbsence(locators._toastMsg); + + // agHelper.AssertElementVisibility( + // AdminsSettings.AdmingSettingsLogoInputImage, + // ); + // agHelper.WaitForCondition(() => { + // cy.get(AdminsSettings.BrandingLogo) + // .invoke("attr", "src") + // .then((src) => { + // cy.get(AdminsSettings.AdmingSettingsLogoInputImage) + // .invoke("attr", "src") + // .should("equal", src); + // }); + // }); + + // branding favicon png + cy.get(AdminsSettings.AdmingSettingsFaviconInput).selectFile( + "cypress/fixtures/branding_sample.png", + { force: true }, + ); + agHelper.AssertElementAbsence(locators._toastMsg); + agHelper.AssertElementVisibility( + AdminsSettings.AdmingSettingsFaviconInputImage, + ); + cy.get(AdminsSettings.BrandingFavicon) + .invoke("attr", "src") + .then((src) => { + cy.get(AdminsSettings.AdmingSettingsFaviconInputImage) + .invoke("attr", "src") + .should("equal", src); + }); + + // branding favicon jpg + cy.get(AdminsSettings.AdmingSettingsFaviconInput).selectFile( + "cypress/fixtures/branding_samplejpg.jpg", + { force: true }, + ); + agHelper.AssertElementAbsence(locators._toastMsg); + + // branding favicon ico + cy.get(AdminsSettings.AdmingSettingsFaviconInput).selectFile( + "cypress/fixtures/branding_sampleICO.ico", + { force: true }, + ); + agHelper.AssertElementAbsence(locators._toastMsg); + }); + }, +); diff --git a/app/client/cypress/fixtures/appsmith-community-logo.svg b/app/client/cypress/fixtures/appsmith-community-logo.svg new file mode 100644 index 000000000000..d15878da9ffa --- /dev/null +++ b/app/client/cypress/fixtures/appsmith-community-logo.svg @@ -0,0 +1,13 @@ + + + + + + + + + COMMUNITY + \ No newline at end of file diff --git a/app/client/cypress/fixtures/branding_sample.png b/app/client/cypress/fixtures/branding_sample.png new file mode 100644 index 000000000000..b5e8e02c8700 Binary files /dev/null and b/app/client/cypress/fixtures/branding_sample.png differ diff --git a/app/client/cypress/fixtures/branding_sampleICO.ico b/app/client/cypress/fixtures/branding_sampleICO.ico new file mode 100644 index 000000000000..4b47ac6e4598 Binary files /dev/null and b/app/client/cypress/fixtures/branding_sampleICO.ico differ diff --git a/app/client/cypress/fixtures/branding_samplejpg.jpg b/app/client/cypress/fixtures/branding_samplejpg.jpg new file mode 100644 index 000000000000..9a0de0af656d Binary files /dev/null and b/app/client/cypress/fixtures/branding_samplejpg.jpg differ diff --git a/app/client/cypress/locators/AdminsSettings.js b/app/client/cypress/locators/AdminsSettings.js index fab7f3a511d3..a93d245b98a8 100644 --- a/app/client/cypress/locators/AdminsSettings.js +++ b/app/client/cypress/locators/AdminsSettings.js @@ -47,4 +47,27 @@ export default { sessionTimeoutWrapper: ".t--admin-settings-userSessionTimeoutInMinutes", sessionTimeoutInput: "[name='userSessionTimeoutInMinutes']", adminEmailsData: ".t--admin-settings-APPSMITH_ADMIN_EMAILS span > span", + LeftPaneBrandingLink: ".t--settings-category-branding", + AdminSettingsColorInput: ".t--settings-brand-color-input input[type=text]", + AdmingSettingsLogoInput: ".t--settings-brand-logo-input input[type=file]", + AdmingSettingsLogoInputImage: ".t--settings-brand-logo-input img", + AdmingSettingsFaviconInput: + ".t--settings-brand-favicon-input input[type=file]", + AdmingSettingsFaviconInputImage: ".t--settings-brand-favicon-input img", + BrandingBg: ".t--branding-bg", + BrandingLogo: ".t--branding-logo", + BrandingFavicon: "img.t--branding-favicon", + BrandingFaviconHead: "link.t--branding-favicon", + dashboardAppTab: ".t--apps-tab", + createNewAppButton: ".t--new-button", + loginContainer: ".t--login-container", + signupLink: ".t--signup-link", + authContainer: ".t--auth-container", + submitButton: "button[type='submit']", + appsmithLogo: ".t--appsmith-logo", + appsmithLogoImg: ".t--appsmith-logo img", + AdminSettingsColorInputShades: ".t--color-input-shades", + businessTag: ".business-tag", + upgradeBanner: ".upgrade-banner", + upgradeButton: "[data-testid='t--button-upgrade']", };