131 lines
3.1 KiB
JavaScript
131 lines
3.1 KiB
JavaScript
import Form, { FormPropertyType } from "common/form";
|
|
|
|
let chai = require("chai/chai");
|
|
let assert = chai.assert;
|
|
|
|
describe("common/form", () => {
|
|
it("setting and getting definition", () => {
|
|
const def = { foo: { type: FormPropertyType.String, caption: "Foo" } };
|
|
const form = new Form();
|
|
|
|
form.setDefinition(def);
|
|
|
|
const result = form.getDefinition();
|
|
assert.equal(result, def);
|
|
});
|
|
|
|
it("setting and getting a value according to type", () => {
|
|
const def = {
|
|
foo: { type: FormPropertyType.String, caption: "Foo" },
|
|
};
|
|
const form = new Form();
|
|
|
|
form.setDefinition(def);
|
|
form.setValue("foo", "test");
|
|
|
|
const result = form.getValue("foo");
|
|
assert.equal(result, "test");
|
|
});
|
|
|
|
it("setting a value not according to type", () => {
|
|
const def = {
|
|
foo: { type: FormPropertyType.String, caption: "Foo" },
|
|
};
|
|
const form = new Form();
|
|
|
|
form.setDefinition(def);
|
|
|
|
assert.throws(() => {
|
|
form.setValue("foo", 3);
|
|
});
|
|
});
|
|
|
|
it("setting and getting a value for missing property throws exception", () => {
|
|
const def = {
|
|
foo: { type: FormPropertyType.String, caption: "Foo" },
|
|
};
|
|
const form = new Form();
|
|
|
|
form.setDefinition(def);
|
|
|
|
assert.throws(() => {
|
|
form.setValue("bar", 3);
|
|
});
|
|
|
|
assert.throws(() => {
|
|
form.getValue("bar");
|
|
});
|
|
});
|
|
|
|
it("setting and getting a complex value", () => {
|
|
const complexValue = {
|
|
something: "abc",
|
|
another: "def",
|
|
};
|
|
const def = {
|
|
foo: {
|
|
type: FormPropertyType.Object,
|
|
caption: "Foo",
|
|
},
|
|
};
|
|
const form = new Form();
|
|
|
|
form.setDefinition(def);
|
|
form.setValue("foo", complexValue);
|
|
|
|
const result = form.getValue("foo");
|
|
assert.deepEqual(result, complexValue);
|
|
});
|
|
|
|
it("setting and getting more values at once", () => {
|
|
const def = {
|
|
foo: { type: FormPropertyType.String, caption: "Foo" },
|
|
baz: { type: FormPropertyType.String, caption: "XX" },
|
|
};
|
|
const form = new Form();
|
|
|
|
form.setDefinition(def);
|
|
form.setValues({ foo: "test", baz: "yyy" });
|
|
|
|
const result = form.getValues();
|
|
assert.equal(result.foo, "test");
|
|
assert.equal(result.baz, "yyy");
|
|
});
|
|
|
|
it("getting options of fieldname", () => {
|
|
const def = {
|
|
search: {
|
|
type: FormPropertyType.String,
|
|
caption: "Search",
|
|
label: { options: "tiles", text: "Tiles" },
|
|
options: [
|
|
{ value: "tiles", text: "Tiles" },
|
|
{ value: "mosaic", text: "Mosaic" },
|
|
],
|
|
},
|
|
};
|
|
const form = new Form();
|
|
|
|
form.setDefinition(def);
|
|
|
|
const result = form.getOptions("search");
|
|
assert.equal(result[0].value, "tiles");
|
|
assert.equal(result[1].text, "Mosaic");
|
|
});
|
|
|
|
it("getting not existing options returns empty object", () => {
|
|
const def = {
|
|
foo: {
|
|
type: FormPropertyType.Object,
|
|
caption: "Foo",
|
|
},
|
|
};
|
|
const form = new Form();
|
|
|
|
form.setDefinition(def);
|
|
|
|
const result = form.getOptions("foo");
|
|
assert.equal(result[0].option, "");
|
|
assert.equal(result[0].label, "");
|
|
});
|
|
});
|