UNPKG

jenesius-vue-form

Version:

Heavy form system for Vue.js

57 lines (54 loc) 1.77 kB
import insertByName from "../../../src/utils/insert-by-name"; describe("Insert by name", () => { test("Should insert simple field", () => { const data = {} insertByName(data, "name", "Jenesius"); expect(data).toEqual({name: "Jenesius"}) }) test("Should parse and insert hard field name", () => { const data = {}; insertByName(data, "address.name.city", "Berlin"); expect(data).toEqual({address: { name: { city: "Berlin" } }}) }) test("Override data", () => { const data = { address: null } insertByName(data, "address.city.name", "Berlin"); expect(data).toEqual({address: { city: { name: "Berlin" } }}) }) test("Insert empty object", () => { const data = {}; insertByName(data, "address", {}); expect(data).toEqual({ address: {} }) }) test("Simple path", () => { const data = {}; insertByName(data, "name", "Jenesius") expect(data).toEqual({name: "Jenesius"}) }) test("Deepen name", () => { const data = {} insertByName(data, "name.local", "JNSS") expect(data).toEqual({name: { local: "JNSS"}}) }) test("Merge field", () => { const data = {address: {city: "Berlin"}} insertByName(data, "address.country", "German") expect(data) .toEqual({ address: { city: "Berlin", country: "German" } }) }) test("Override value", () => { const data = {name: "Jenesius"} insertByName(data, "name", "JNSS") expect(data) .toEqual({name: "JNSS"}) }) })