jenesius-vue-form
Version:
Heavy form system for Vue.js
73 lines (56 loc) • 1.99 kB
text/typescript
import Form from "../../../src/classes/Form";
import useFormState from "../../../src/hooks/use-form-state";
describe("Use form state", () => {
test("By default disabled equal true", () => {
const form = new Form();
const formState = useFormState(form);
expect(formState.disabled).toBe(false)
})
test("After disable/enable it should be updated", () => {
const form = new Form();
const formState = useFormState(form);
expect(formState.disabled).toBe(false)
form.disable()
expect(formState.disabled).toBe(true)
form.enable()
expect(formState.disabled).toBe(false)
})
test("By default changed equal false", () => {
const form = new Form();
const formState = useFormState(form);
expect(formState.changed).toBe(false)
})
test("After change/revert it should be updated", () => {})
test("Autonomic form: children changes should update status of parent form", () => {
const parent = new Form()
const child = new Form({
parent,
name: "test",
autonomic: true
})
const parentState = useFormState(parent);
const childState = useFormState(parent);
expect(parent.changed).toBe(false);
expect(child.changed).toBe(false);
child.change({
age: 18
})
expect(parentState.changed).toBe(true);
expect(childState.changed).toBe(true);
})
test("", () => {
const grandParent = new Form({name: '0'})
const parent = new Form({name: '1', parent: grandParent})
const child = new Form({name: '2', parent, autonomic: true})
const grandParentState = useFormState(grandParent)
const parentState = useFormState(parent)
const childState = useFormState(child)
child.change({name: 'Jack'})
expect(grandParent.changed).toBe(true)
expect(parent.changed).toBe(true)
expect(child.changed).toBe(true)
expect(grandParentState.changed).toBe(true)
expect(parentState.changed).toBe(true)
expect(childState.changed).toBe(true)
})
})