Skip to content

Commit

Permalink
fixup! Improved dashboard parameter Cypress test
Browse files Browse the repository at this point in the history
  • Loading branch information
rafawendel committed Jan 8, 2021
1 parent af0d2af commit 83d3eab
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 22 deletions.
32 changes: 24 additions & 8 deletions client/cypress/integration/dashboard/parameter_spec.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { each } from "lodash";
import { createQueryAndAddWidget } from "../../support/dashboard";
import { assertParameterPairSwapping } from "../../support/parameters";
import { createQueryAndAddWidget, editDashboard } from "../../support/dashboard";
import { dragParam, expectParamOrder } from "../../support/parameters";

describe("Parameter Mapping", () => {
describe("Dashboard Parameters", () => {
const parameters = [
{ name: "param1", title: "Parameter 1", type: "text", value: "example1" },
{ name: "param2", title: "Parameter 2", type: "text", value: "example2" },
Expand Down Expand Up @@ -54,16 +54,13 @@ describe("Parameter Mapping", () => {
};

const setWidgetParametersToDashboard = parameters => {
cy.server();
cy.route("POST", `**/api/**`).as("CloseMappingOptions");
each(parameters, ({ name: paramName }, i) => {
cy.getByTestId(`EditParamMappingButton-${paramName}`).click();
cy.getByTestId("NewDashboardParameterOption")
.filter(":visible")
.click();
saveMappingOptions(i === parameters.length - 1);
});
cy.wait("@CloseMappingOptions");
};

it("supports widget parameters", function() {
Expand Down Expand Up @@ -130,13 +127,32 @@ describe("Parameter Mapping", () => {
});

it("reorders parameters", function() {
// Reorder is only available in edit mode
editDashboard();

const [param1, param2] = parameters;

cy.getByTestId("ParameterBlock-param1")
.invoke("width")
.then(paramWidth => {
assertParameterPairSwapping(parameters[0], parameters[1], paramWidth);
cy.server();
cy.route("POST", `**/api/dashboards/*`).as("SaveDashboard");
cy.route("POST", `**/api/widgets/*`).as("SaveWidget");

// Asserts widget param order
dragParam(param1.name, paramWidth, 1);
cy.wait("@SaveWidget");
cy.reload();
expectParamOrder([param2.title, param1.title]);

// Asserts dashboard param order
openMappingOptions(this.widgetTestId);
setWidgetParametersToDashboard(parameters);
assertParameterPairSwapping(parameters[0], parameters[1], paramWidth);
cy.wait("@SaveWidget");
dragParam(param1.name, paramWidth, 1);
cy.wait("@SaveDashboard");
cy.reload();
expectParamOrder([param2.title, param1.title]);
});
});
});
15 changes: 1 addition & 14 deletions client/cypress/support/parameters.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,6 @@ export function dragParam(paramName, offsetLeft, offsetTop) {
.trigger("mouseup", { force: true });
}

export function assertParameterPairSwapping(param1, param2, paramWidth) {
cy.server();
cy.route("POST", `**/api/*/*`).as("Save");

dragParam(param1.name, paramWidth, 1);
cy.wait("@Save");

cy.reload();

const expectedOrder = [param2.title, param1.title];
export function expectParamOrder(expectedOrder) {
cy.get(".parameter-container label").each(($label, index) => expect($label).to.have.text(expectedOrder[index]));

dragParam(param2.name, paramWidth, 1);

cy.wait("@Save");
}

0 comments on commit 83d3eab

Please sign in to comment.