|
- context("Control Autocomplete", () => {
- before(() => {
- cy.login();
- cy.visit("/app/website");
- });
-
- function get_dialog_with_autocomplete(options) {
- cy.visit("/app/website");
- return cy.dialog({
- title: "Autocomplete",
- fields: [
- {
- label: "Select an option",
- fieldname: "autocomplete",
- fieldtype: "Autocomplete",
- options: options || ["Option 1", "Option 2", "Option 3"],
- },
- ],
- });
- }
-
- it("should set the valid value", () => {
- get_dialog_with_autocomplete().as("dialog");
-
- cy.get(".xhiveframework-control[data-fieldname=autocomplete] input").focus().as("input");
- cy.wait(1000);
- cy.get("@input").type("2", { delay: 300 });
- cy.get(".xhiveframework-control[data-fieldname=autocomplete]")
- .findByRole("listbox")
- .should("be.visible");
- cy.get(".xhiveframework-control[data-fieldname=autocomplete] input").type("{enter}", {
- delay: 300,
- });
- cy.get(".xhiveframework-control[data-fieldname=autocomplete] input").blur();
- cy.get("@dialog").then((dialog) => {
- let value = dialog.get_value("autocomplete");
- expect(value).to.eq("Option 2");
- dialog.clear();
- });
- });
-
- it("should set the valid value with different label", () => {
- const options_with_label = [
- { label: "Option 1", value: "option_1" },
- { label: "Option 2", value: "option_2" },
- ];
- get_dialog_with_autocomplete(options_with_label).as("dialog");
-
- cy.get(".xhiveframework-control[data-fieldname=autocomplete] input").focus().as("input");
- cy.get(".xhiveframework-control[data-fieldname=autocomplete]")
- .findByRole("listbox")
- .should("be.visible");
- cy.get("@input").type("2", { delay: 300 });
- cy.get(".xhiveframework-control[data-fieldname=autocomplete] input").type("{enter}", {
- delay: 300,
- });
- cy.get(".xhiveframework-control[data-fieldname=autocomplete] input").blur();
- cy.get("@dialog").then((dialog) => {
- let value = dialog.get_value("autocomplete");
- expect(value).to.eq("option_2");
- dialog.clear();
- });
- });
- });
|