|
- context("Control Currency", () => {
- const fieldname = "currency_field";
-
- before(() => {
- cy.login();
- cy.visit("/app/website");
- });
-
- function get_dialog_with_currency(df_options = {}) {
- return cy.dialog({
- title: "Currency Check",
- animate: false,
- fields: [
- {
- fieldname: fieldname,
- fieldtype: "Currency",
- Label: "Currency",
- ...df_options,
- },
- ],
- });
- }
-
- it("check value changes", () => {
- const TEST_CASES = [
- {
- input: "10.101",
- df_options: { precision: 1 },
- blur_expected: "10.1",
- },
- {
- input: "10.101",
- df_options: { precision: "3" },
- blur_expected: "10.101",
- },
- {
- input: "10.101",
- df_options: { precision: "" }, // default assumed to be 2;
- blur_expected: "10.10",
- },
- {
- input: "10.101",
- df_options: { precision: "0" },
- blur_expected: "10",
- },
- {
- input: "10.101",
- df_options: { precision: 0 },
- blur_expected: "10",
- },
- {
- input: "10.000",
- number_format: "#.###,##",
- df_options: { precision: 0 },
- blur_expected: "10.000",
- },
- {
- input: "10.000",
- number_format: "#.###,##",
- blur_expected: "10.000,00",
- },
- {
- input: "10.101",
- df_options: { precision: "" },
- blur_expected: "10.1",
- default_precision: 1,
- },
- ];
-
- TEST_CASES.forEach((test_case) => {
- cy.window()
- .its("xhiveframework")
- .then((xhiveframework) => {
- xhiveframework.boot.sysdefaults.currency = test_case.currency;
- xhiveframework.boot.sysdefaults.currency_precision = test_case.default_precision ?? 2;
- xhiveframework.boot.sysdefaults.number_format = test_case.number_format ?? "#,###.##";
- });
-
- get_dialog_with_currency(test_case.df_options).as("dialog");
- cy.wait(300);
- cy.get_field(fieldname, "Currency").clear();
- cy.wait(300);
- cy.fill_field(fieldname, test_case.input, "Currency").blur();
- cy.get_field(fieldname, "Currency").should("have.value", test_case.blur_expected);
- cy.hide_dialog();
- });
- });
- });
|