Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
166 changes: 11 additions & 155 deletions smoke-test/tests/cypress/cypress/e2e/homeV3/modules.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ import {
setThemeV2AndHomePageRedesignFlags,
startEditingDefaultTemplate,
waitUntilTemplateIsLoaded,
ensureModuleHasContent,
clickViewAll,
ensureUrlContains,
} from "./utils";

describe("home page modules", () => {
Expand All @@ -26,162 +29,15 @@ describe("home page modules", () => {
waitUntilTemplateIsLoaded();
});

Cypress.on("uncaught:exception", (err, runnable) => false);

it.skip("add default modules", () => {
addYourAssetsModule();
cy.getWithTestId("edited-home-page-toast"); // wait for confirmation before continuing to prevent flakiness
cy.getWithTestId("your-assets-module").should("have.length", 2);
cy.getWithTestId("user-owned-entities")
.should("be.visible")
.children()
.should("have.length.gte", 1);

addDomainsModule();
cy.getWithTestId("domains-module").should("have.length", 2);
cy.getWithTestId("domain-entities")
.should("be.visible")
.children()
.should("have.length.gte", 1);

// Clean-up
resetToOrgDefault();
});

it.skip("create custom asset collection module", () => {
createAssetCollectionModule("Collection Module");
cy.getWithTestId("edited-home-page-toast");
cy.getWithTestId("asset-collection-module").should("be.visible");
cy.getWithTestId("asset-collection-entities")
.should("be.visible")
.children()
.should("have.length", 2);

// Clean-up
resetToOrgDefault();
});

it.skip("create custom hierarchy module", () => {
createHierarchyModule("Hierarchy Module");
cy.getWithTestId("edited-home-page-toast");
cy.getWithTestId("hierarchy-module").should("be.visible");
cy.getWithTestId("hierarchy-module-nodes")
.should("be.visible")
.children()
.should("have.length", 1);

// Clean-up
resetToOrgDefault();
});

it.skip("create custom link module", () => {
const linkName = "Link 1";
createLinkModule(linkName, "www.google.com");
cy.getWithTestId("edited-home-page-toast");
cy.getWithTestId("link-module").should("be.visible");
cy.waitTextVisible(linkName);

// Clean-up
resetToOrgDefault();
it("should show content in Your Assets module", () => {
ensureModuleHasContent("your-assets", "incidents-sample-dataset");
clickViewAll("your-assets");
ensureUrlContains("search?filter_owners");
});

it.skip("create custom documentation module", () => {
const moduleName = "Rich Text module";
const text = "Rich text description";
createDocumentationModule(moduleName, text);
cy.getWithTestId("edited-home-page-toast");
cy.getWithTestId("documentation-module").should("be.visible");
cy.waitTextVisible(moduleName);
cy.waitTextVisible(text);

// Clean-up
resetToOrgDefault();
});

it.skip("remove default module", () => {
addYourAssetsModule();
cy.getWithTestId("edited-home-page-toast");
cy.ensureElementWithTestIdPresent("edited-home-page-toast");
removeFirstModuleWithTestId("your-assets-module");
cy.getWithTestId("your-assets-module").should("have.length.lessThan", 2);
cy.getWithTestId("your-assets-module").should("have.length", 1);

// Clean-up
resetToOrgDefault();
});

it.skip("remove custom module", () => {
const moduleName = "Rich Text module";
const text = "Rich text description";
createDocumentationModule(moduleName, text);
cy.getWithTestId("edited-home-page-toast");
removeFirstModuleWithTestId("documentation-module");
cy.getWithTestId("documentation-module").should("not.exist");
cy.contains(moduleName).should("not.exist");

// Clean-up
resetToOrgDefault();
});

it.skip("should not be able to edit default module", () => {
cy.getWithTestId("your-assets-module")
.should("be.visible")
.within(() => {
cy.getWithTestId("module-options").click();
});
cy.getWithTestId("edit-module").should(
"have.attr",
"aria-disabled",
"true",
);
});

it.skip("edit custom module", () => {
const name = "Collection Module";
const updatedName = "Collection Module Updated";
createAssetCollectionModule(name);
cy.getWithTestId("edited-home-page-toast");
editAssetCollectionModule(updatedName);
cy.waitTextVisible(updatedName);
cy.wait(2000);
cy.getWithTestId("asset-collection-entities")
.children()
.should("have.length", 3);

// Clean-up
resetToOrgDefault();
});

it.skip("add home default module", () => {
const name = "Global Collection Module";
addYourAssetsModule();
cy.ensureElementWithTestIdPresent("edited-home-page-toast");
startEditingDefaultTemplate();
createAssetCollectionModule(name);
finishEditingDefaultTemplate();
addFirstHomeDefaultModule();

cy.waitTextVisible(name);
cy.getWithTestId("asset-collection-module").should("be.visible");
cy.getWithTestId("asset-collection-entities")
.should("be.visible")
.children()
.should("have.length", 2);

// Clean-up
startEditingDefaultTemplate();
removeFirstModuleWithTestId("asset-collection-module");
finishEditingDefaultTemplate();
resetToOrgDefault();
});

it.skip("reorder module with drag-and-drop", () => {
expectModulesOrder("your-assets-module", "domains-module");
dragAndDropModuleToNewRow("your-assets-module");
cy.getWithTestId("edited-home-page-toast");
expectModulesOrder("domains-module", "your-assets-module");

// Clean-up
resetToOrgDefault();
it("should show content in Domains module", () => {
ensureModuleHasContent("domains", "Marketing");
clickViewAll("domains");
ensureUrlContains("domains");
});
});
63 changes: 4 additions & 59 deletions smoke-test/tests/cypress/cypress/e2e/homeV3/templates.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,7 @@
import {
addYourAssetsModule,
createAssetCollectionModule,
finishEditingDefaultTemplate,
removeFirstModuleWithTestId,
resetToOrgDefault,
setThemeV2AndHomePageRedesignFlags,
shouldBeOnPersonalTemplate,
shouldShowDefaultTemplate,
startEditingDefaultTemplate,
waitUntilTemplateIsLoaded,
ensureThatModuleIsAvailable,
} from "./utils";

describe("home page templates", () => {
Expand All @@ -20,56 +13,8 @@ describe("home page templates", () => {
waitUntilTemplateIsLoaded();
});

Cypress.on("uncaught:exception", (err, runnable) => false);

it.skip("view default homepage template", () => {
cy.getWithTestId("page-title").should("exist");
cy.getWithTestId("search-bar").should("exist");
cy.getWithTestId("edit-home-page-settings").should("exist");
shouldShowDefaultTemplate();
});

it.skip("fork the homepage and create personal template", () => {
addYourAssetsModule();
cy.getWithTestId("edited-home-page-toast"); // wait for confirmation before continuing to prevent flakiness
cy.getWithTestId("your-assets-module").should("have.length", 2);
shouldBeOnPersonalTemplate();
resetToOrgDefault();
});

it.skip("create personal template, then log back in to check the updated template", () => {
addYourAssetsModule();
cy.getWithTestId("edited-home-page-toast");
createAssetCollectionModule("Collection Module");
cy.wait(2000);
shouldBeOnPersonalTemplate();
cy.logoutV2();
cy.login();
cy.visit("/");
cy.getWithTestId("your-assets-module").should("have.length", 2);
cy.getWithTestId("asset-collection-module").should("be.visible");

// Clean-up
resetToOrgDefault();
});

it.skip("reset the homepage to organization default", () => {
addYourAssetsModule();
cy.getWithTestId("edited-home-page-toast");
cy.wait(1000);
resetToOrgDefault();
shouldShowDefaultTemplate();
});

it.skip("edit the default homepage", () => {
startEditingDefaultTemplate();
addYourAssetsModule();
finishEditingDefaultTemplate();
cy.getWithTestId("your-assets-module").should("have.length", 2);

// Clean-up
startEditingDefaultTemplate();
removeFirstModuleWithTestId("your-assets-module");
finishEditingDefaultTemplate();
it("should show default modules", () => {
ensureThatModuleIsAvailable("Your Assets", "your-assets");
ensureThatModuleIsAvailable("Domains", "domains");
});
});
41 changes: 37 additions & 4 deletions smoke-test/tests/cypress/cypress/e2e/homeV3/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ import { hasOperationName } from "../utils";
export function setThemeV2AndHomePageRedesignFlags(isOn) {
cy.intercept("POST", "/api/v2/graphql", (req) => {
if (hasOperationName(req, "appConfig")) {
req.reply((res) => {
req.alias = "gqlappConfigQuery";
req.on("response", (res) => {
res.body.data.appConfig.featureFlags.themeV2Enabled = isOn;
res.body.data.appConfig.featureFlags.themeV2Default = isOn;
res.body.data.appConfig.featureFlags.showNavBarRedesign = isOn;
Expand Down Expand Up @@ -36,6 +37,7 @@ export function clickFirstAddModuleButton() {
export function clickLastAddModuleButton() {
cy.getWithTestId("add-button-container")
.last()
.scrollIntoView()
.should("be.visible")
.realHover();

Expand Down Expand Up @@ -83,9 +85,18 @@ export function shouldBeOnPersonalTemplate() {
export function resetToOrgDefault() {
closeForkedHomepageToast();
cy.getWithTestId("edit-home-page-settings").click({ force: true });
cy.getWithTestId("reset-to-organization-default").click();
cy.getWithTestId("modal-confirm-button").filter(":visible").click();
cy.getWithTestId("modal-confirm-button").should("not.be.visible");
cy.get("body").then(($body) => {
const $editMenuItem = $body
.find('[data-testid="reset-to-organization-default"]')
.filter(":visible");
if ($editMenuItem.length > 0) {
cy.wrap($editMenuItem).click();
cy.getWithTestId("modal-confirm-button").filter(":visible").click();
cy.getWithTestId("modal-confirm-button").should("not.be.visible");
} else {
cy.get("body").type("{esc}");
}
});
}

export function startEditingDefaultTemplate() {
Expand Down Expand Up @@ -213,3 +224,25 @@ export function dragAndDropModuleToNewRow(moduleId) {
export function waitUntilTemplateIsLoaded() {
cy.getWithTestId("home-template-wrapper");
}

export function ensureThatModuleIsAvailable(moduleName, moduleType) {
cy.getWithTestId(`${moduleType}-module`)
.first()
.should("contain", moduleName);
}

export function ensureModuleHasContent(moduleType, content) {
cy.getWithTestId(`${moduleType}-module`).first().should("contain", content);
}

export function clickViewAll(moduleType) {
cy.getWithTestId(`${moduleType}-module`)
.first()
.within(() => {
cy.getWithTestId("view-all").scrollIntoView().click();
});
}

export function ensureUrlContains(text) {
cy.url().should("include", text);
}
Loading