jenesius-vue-form
Version:
Heavy form system for Vue.js
97 lines (88 loc) • 2.61 kB
text/typescript
import Form from "../../../src/classes/Form";
describe("Form clean values", () => {
test("Simple clean values", () => {
const form = new Form();
form.setValues({
name: "Jack"
})
expect(form.getValueByName('name')).toBe("Jack");
form.cleanValues();
expect(form.getValueByName('name')).toBe(undefined);
expect(form.values).toEqual({})
})
test("Clean values with overwrite", () => {
const form = new Form();
form.setValues({
name: "Jack",
age: 23
})
expect(form.getValueByName('name')).toBe("Jack");
form.cleanValues({
name: "Jenesius"
});
expect(form.getValueByName('name')).toBe("Jenesius");
expect(form.values).toEqual({name: "Jenesius"})
})
test("Clean values for children item", () => {
const form = new Form();
form.setValues({
address: {
city: "Mogilev"
}
})
const child = new Form({name: "address"});
form.subscribe(child);
child.cleanValues();
expect(form.values).toEqual({
address: {}
})
expect(child.values).toEqual({});
})
test("Clean values for children item with override", () => {
const form = new Form();
form.setValues({
address: {
city: "Mogilev"
}
})
const child = new Form({name: "address"});
form.subscribe(child);
child.cleanValues({
country: "Belarus"
});
expect(form.values).toEqual({
address: {
country: "Belarus"
}
})
expect(child.values).toEqual({
country: "Belarus"
});
})
test("Override values for child item", () => {
const form = new Form();
const child = new Form({
name: "address"
})
form.subscribe(child);
form.setValues({
address: {
city: 1
}
})
expect(child.values).toEqual({city: 1})
form.cleanValues({
address: {
country: 2
}
})
expect(form.values).toEqual({
address: {
country: 2
}
})
expect(child.values).toEqual({
country: 2
})
})
})