Merge pull request #3420 from AutoScout24/fix-orderedmap-length

Fix length issue in OrderedMaps
This commit is contained in:
shockey
2017-07-21 19:12:23 -07:00
committed by GitHub
2 changed files with 30 additions and 3 deletions

View File

@@ -41,7 +41,7 @@ export function fromJSOrdered (js) {
return !isObject(js) ? js : return !isObject(js) ? js :
Array.isArray(js) ? Array.isArray(js) ?
Im.Seq(js).map(fromJSOrdered).toList() : Im.Seq(js).map(fromJSOrdered).toList() :
Im.Seq(js).map(fromJSOrdered).toOrderedMap() Im.OrderedMap(js).map(fromJSOrdered)
} }
export function bindToState(obj, state) { export function bindToState(obj, state) {

View File

@@ -1,10 +1,10 @@
/* eslint-env mocha */ /* eslint-env mocha */
import expect from "expect" import expect from "expect"
import { fromJS } from "immutable" import { fromJS } from "immutable"
import { mapToList, validateNumber, validateInteger, validateParam, validateFile } from "core/utils" import { mapToList, validateNumber, validateInteger, validateParam, validateFile, fromJSOrdered } from "core/utils"
import win from "core/window" import win from "core/window"
describe("utils", function(){ describe("utils", function() {
describe("mapToList", function(){ describe("mapToList", function(){
@@ -544,4 +544,31 @@ describe("utils", function(){
expect( result ).toEqual( [] ) expect( result ).toEqual( [] )
}) })
}) })
describe("fromJSOrdered", () => {
it("should create an OrderedMap from an object", () => {
const param = {
value: "test"
}
const result = fromJSOrdered(param).toJS()
expect( result ).toEqual( { value: "test" } )
})
it("should not use an object's length property for Map size", () => {
const param = {
length: 5
}
const result = fromJSOrdered(param).toJS()
expect( result ).toEqual( { length: 5 } )
})
it("should create an OrderedMap from an array", () => {
const param = [1, 1, 2, 3, 5, 8]
const result = fromJSOrdered(param).toJS()
expect( result ).toEqual( [1, 1, 2, 3, 5, 8] )
})
})
}) })