context("Control Duration", () => { before(() => { cy.login(); cy.visit("/app/website"); }); function get_dialog_with_duration(hide_days = 0, hide_seconds = 0) { return cy.dialog({ title: "Duration", fields: [ { fieldname: "duration", fieldtype: "Duration", hide_days: hide_days, hide_seconds: hide_seconds, }, ], }); } it("should set duration", () => { get_dialog_with_duration().as("dialog"); cy.get(".xhiveframework-control[data-fieldname=duration] input").first().click(); cy.get(".duration-input[data-duration=days]") .type(45, { force: true }) .blur({ force: true }); cy.get(".duration-input[data-duration=minutes]").type(30).blur({ force: true }); cy.get(".xhiveframework-control[data-fieldname=duration] input") .first() .should("have.value", "45d 30m"); cy.get(".xhiveframework-control[data-fieldname=duration] input").first().blur(); cy.get(".duration-picker").should("not.be.visible"); cy.get("@dialog").then((dialog) => { let value = dialog.get_value("duration"); expect(value).to.equal(3889800); cy.hide_dialog(); }); }); it("should hide days or seconds according to duration options", () => { get_dialog_with_duration(1, 1).as("dialog"); cy.get(".xhiveframework-control[data-fieldname=duration] input").first(); cy.get(".duration-input[data-duration=days]").should("not.be.visible"); cy.get(".duration-input[data-duration=seconds]").should("not.be.visible"); }); });