UNPKG

sdmpr

Version:
140 lines (106 loc) 4.76 kB
import { expect } from "chai" import { ICaseStyleOptions } from "./../src/CaseStyle"; import { SimpleDataMapper } from "../src/SimpleDataMapper" import { CaseStyle } from "../src/CaseStyle" import sdmpr from "../src/" describe("SimpleDataMapper", () => { it("Should create mapper", () => { const mapper1 = SimpleDataMapper.create() mapper1.map("hello", "world") const data1 = { hello: "Hello there" } const data2 = mapper1.transform(data1) expect(data2.world).exist expect(data2.world).to.equal("Hello there") }) it("Should map multiple fields", () => { const mapper1 = SimpleDataMapper.create() mapper1.map("first_name", "firstName") mapper1.map("last_name", "lastName") mapper1.map("age") const data1 = { first_name: "Evo", last_name: "Zumo", age: 16 } const data2 = mapper1.transform(data1) expect(data2.firstName).to.equal("Evo") expect(data2.lastName).to.equal("Zumo") expect(data2.age).to.equal(16) }) it("Should map to CamelCase", () => { const mapper1 = SimpleDataMapper.create() mapper1.mapToCamelCase() const data1 = { first_name: "Evo", last_name: "Zumo", age: 16 } const data2 = mapper1.transform(data1) expect(data2.firstName).to.equal("Evo") expect(data2.lastName).to.equal("Zumo") expect(data2.age).to.equal(16) }) it("Should map to SnakeCase", () => { const mapper1 = SimpleDataMapper.create() mapper1.mapToSnakeCase() const data1 = { firstName: "Evo", lastName: "Zumo", age: 16 } const data2 = mapper1.transform(data1) expect(data2.first_name).to.equal("Evo") expect(data2.last_name).to.equal("Zumo") expect(data2.age).to.equal(16) }) it("Should map to CamelCase in one step", () => { const data1 = { first_name: "Evo", last_name: "Zumo", age: 16 } const data2 = SimpleDataMapper.toCamelCase(data1) expect(data2.firstName).to.equal("Evo") expect(data2.lastName).to.equal("Zumo") expect(data2.age).to.equal(16) }) it("Should map to SnakeCase in one step", () => { const data1 = { firstName: "Evo", lastName: "Zumo", age: 16 } const data2 = SimpleDataMapper.toSnakeCase(data1) expect(data2.first_name).to.equal("Evo") expect(data2.last_name).to.equal("Zumo") expect(data2.age).to.equal(16) }) it("Should map to all lower case in one step", () => { const data1 = { firstName: "Evo", lastName: "Zumo", age: 16, address: { streetName: "Main Str" } } const data2 = SimpleDataMapper.toLowerCase(data1) expect(data2.firstname).to.equal("Evo") expect(data2.lastname).to.equal("Zumo") expect(data2.address.streetname).to.equal("Main Str") expect(data2.age).to.equal(16) }) it("Should map to all upper case in one step", () => { const data1 = { firstName: "Evo", lastName: "Zumo", age: 16, address: { streetName: "Main Str" } } const data2 = SimpleDataMapper.toUpperCase(data1) expect(data2.FIRSTNAME).to.equal("Evo") expect(data2.LASTNAME).to.equal("Zumo") expect(data2.ADDRESS.STREETNAME).to.equal("Main Str") expect(data2.AGE).to.equal(16) }) it("Should map to snake case using changeCase", () => { const data1 = { firstName: "Evo", lastName: "Zumo", age: 16, address: { streetName: "Main Str" } } const data2 = SimpleDataMapper.changeCase(data1, CaseStyle.SNAKE) expect(data2.first_name).to.equal("Evo") expect(data2.last_name).to.equal("Zumo") expect(data2.address.street_name).to.equal("Main Str") expect(data2.age).to.equal(16) }) it("Should map to camel case using changeCase with options", () => { const data1 = { first_name: "Evo", last_name: "Zumo", age: 16, main_address: { street_name: "Main Str" } } const data2 = SimpleDataMapper.changeCase(data1, CaseStyle.CAMEL, { keep: ["main_address"], keepChildNodes: true }) expect(data2.firstName).to.equal("Evo") expect(data2.lastName).to.equal("Zumo") expect(data2.main_address.street_name).to.equal("Main Str") expect(data2.age).to.equal(16) }) }) describe("sdmpr", () => { it("Should create mapper using sdmpr", () => { const mapper1 = sdmpr.create() mapper1.map("hello", "sdmpr") const data1 = { hello: "Hello sdmpr" } const data2 = mapper1.transform(data1) expect(data2.sdmpr).exist expect(data2.sdmpr).to.equal("Hello sdmpr") }) it("Should map to camel case using toCamelCase", () => { const data1 = { first_name: "Pixie", last_name: "Dorry", age: 3.14 } const data2 = sdmpr.toCamelCase(data1) expect(data2.firstName).to.equal("Pixie") expect(data2.lastName).to.equal("Dorry") }) })