@fluid-experimental/property-properties 2.100.0 → 2.101.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/test/properties/arrayProperty.spec.js +11 -12
- package/dist/test/properties/arrayProperty.spec.js.map +1 -1
- package/dist/test/properties/baseProperty.spec.js +4 -1
- package/dist/test/properties/baseProperty.spec.js.map +1 -1
- package/dist/test/properties/containerProperty.spec.js +1 -1
- package/dist/test/properties/containerProperty.spec.js.map +1 -1
- package/dist/test/properties/customArrayProperty.spec.js +2 -2
- package/dist/test/properties/customArrayProperty.spec.js.map +1 -1
- package/dist/test/properties/int64ArrayProperty.spec.js +4 -4
- package/dist/test/properties/int64ArrayProperty.spec.js.map +1 -1
- package/dist/test/properties/int64Property.spec.js +2 -2
- package/dist/test/properties/int64Property.spec.js.map +1 -1
- package/dist/test/properties/isLeafNode.spec.js +1 -7
- package/dist/test/properties/isLeafNode.spec.js.map +1 -1
- package/dist/test/properties/namedNodeProperty.spec.js +1 -2
- package/dist/test/properties/namedNodeProperty.spec.js.map +1 -1
- package/dist/test/properties/nodeProperty.spec.js +1 -1
- package/dist/test/properties/nodeProperty.spec.js.map +1 -1
- package/dist/test/properties/stringProperty.spec.js +6 -5
- package/dist/test/properties/stringProperty.spec.js.map +1 -1
- package/dist/test/properties/valueMapProperty.spec.js +8 -3
- package/dist/test/properties/valueMapProperty.spec.js.map +1 -1
- package/dist/test/properties/valueProperty.spec.js +5 -1
- package/dist/test/properties/valueProperty.spec.js.map +1 -1
- package/dist/test/propertyFactory.spec.js +15 -10
- package/dist/test/propertyFactory.spec.js.map +1 -1
- package/dist/test/tsconfig.tsbuildinfo +1 -1
- package/dist/test/utils.spec.js +13 -7
- package/dist/test/utils.spec.js.map +1 -1
- package/package.json +6 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valueMapProperty.spec.js","sourceRoot":"","sources":["../../../src/test/properties/valueMapProperty.spec.js"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/* globals describe */\n\n/**\n * @fileoverview\n * In this file, we will test the map property object described in /src/properties/mapProperty.js\n */\nconst { ChangeSet } = require(\"@fluid-experimental/property-changeset\");\n\nconst { PropertyFactory } = require(\"../..\");\nconst { BaseProperty } = require(\"../..\");\n\ndescribe(\"ValueMapProperty\", function () {\n\tvar myNode, Uint32Map;\n\n\tbefore(function () {\n\t\t// Register a template with a set property for the tests\n\t\tvar TestPropertyTemplate = {\n\t\t\ttypeid: \"autodesk.tests:ValueMapTestPropertyID-1.0.0\",\n\t\t\tinherits: [\"NamedProperty\"],\n\t\t\tproperties: [{ id: \"Uint32Map\", typeid: \"Uint32\", context: \"map\" }],\n\t\t};\n\n\t\t// Register a template with a set property for the tests\n\t\tvar AllTypesTestPropertyTemplate = {\n\t\t\ttypeid: \"autodesk.tests:AllTypesValueMapTestPropertyID-1.0.0\",\n\t\t\tinherits: [\"NamedProperty\"],\n\t\t\tproperties: [\n\t\t\t\t{ id: \"Uint32Map\", typeid: \"Uint32\", context: \"map\" },\n\t\t\t\t{ id: \"Uint16Map\", typeid: \"Uint16\", context: \"map\" },\n\t\t\t\t{ id: \"Uint8Map\", typeid: \"Uint8\", context: \"map\" },\n\t\t\t\t{ id: \"Int32Map\", typeid: \"Int32\", context: \"map\" },\n\t\t\t\t{ id: \"Int16Map\", typeid: \"Int16\", context: \"map\" },\n\t\t\t\t{ id: \"Int8Map\", typeid: \"Int8\", context: \"map\" },\n\t\t\t\t{ id: \"Float64Map\", typeid: \"Float64\", context: \"map\" },\n\t\t\t\t{ id: \"Float32Map\", typeid: \"Float32\", context: \"map\" },\n\t\t\t\t{ id: \"StringMap\", typeid: \"String\", context: \"map\" },\n\t\t\t\t{ id: \"BoolMap\", typeid: \"Bool\", context: \"map\" },\n\t\t\t],\n\t\t};\n\t\tPropertyFactory._reregister(TestPropertyTemplate);\n\t\tPropertyFactory._reregister(AllTypesTestPropertyTemplate);\n\n\t\tmyNode = PropertyFactory.create(\"autodesk.tests:ValueMapTestPropertyID-1.0.0\");\n\t\tUint32Map = myNode._properties.Uint32Map;\n\t});\n\n\t// Helper functions for the test cases\n\tvar keyCounter = 0;\n\tvar resetKeyCounter = function () {\n\t\tkeyCounter = 0;\n\t};\n\n\t// Inserts a node with a given key (a new one is generated when undefined)\n\tvar insertEntryInRootWithKey = function (key, root) {\n\t\tif (key === undefined) {\n\t\t\tkey = \"node\" + keyCounter++;\n\t\t}\n\t\troot._properties.Uint32Map.insert(key, keyCounter);\n\t};\n\n\t// Inserts a new node in the root\n\tvar insertNodeInRoot = function (root) {\n\t\tinsertEntryInRootWithKey(undefined, root);\n\t};\n\n\t// Returns a functor that will insert a node with a constant key\n\tvar insertEntryInRootWithUnqiueKey = function () {\n\t\tvar key = \"node\" + keyCounter++;\n\t\treturn insertEntryInRootWithKey.bind(undefined, key);\n\t};\n\n\t// Removes the first node from the root\n\tvar removeFirstNodeInRoot = function (root) {\n\t\tvar firstKey = root._properties.Uint32Map.getIds()[0];\n\t\troot._properties.Uint32Map.remove(firstKey);\n\t};\n\n\t// Modifies the first node\n\tvar modifyEntry = function (root) {\n\t\tvar firstKey = root._properties.Uint32Map.getIds()[0];\n\t\troot._properties.Uint32Map.set(firstKey, root._properties.Uint32Map.get(firstKey) + 1);\n\t};\n\n\tdescribe(\"Inherited API Methods\", function () {\n\t\tvar newMap;\n\t\tbefore(function () {\n\t\t\tnewMap = PropertyFactory.create(\"Int32\", \"map\");\n\t\t});\n\t\tit(\".clear should work to remove all entries in the map\", function () {\n\t\t\tnewMap.insert(\"one\", 1);\n\t\t\tnewMap.insert(\"two\", 2);\n\t\t\texpect(newMap.getValues()).to.deep.equal({ one: 1, two: 2 });\n\t\t\tnewMap.clear();\n\t\t\texpect(newMap.getValues()).to.deep.equal({});\n\t\t});\n\n\t\tit(\".getAsArray should return an array of map values\", function () {\n\t\t\tnewMap.insert(\"one\", 1);\n\t\t\tnewMap.insert(\"two\", 2);\n\t\t\texpect(newMap.getAsArray()).to.deep.equal([1, 2]);\n\t\t});\n\n\t\tit(\"getEntriesReadOnly should work\", function () {\n\t\t\tnewMap.insert(\"one\", 1);\n\t\t\tnewMap.insert(\"two\", 2);\n\t\t\texpect(newMap.getEntriesReadOnly()).to.deep.equal({ one: 1, two: 2 });\n\t\t});\n\n\t\tit(\".getFullTypeid should return a string of the typeid with or without collection\", function () {\n\t\t\texpect(newMap.getFullTypeid()).to.equal(\"map<Int32>\");\n\t\t\texpect(newMap.getFullTypeid(true)).to.equal(\"Int32\");\n\t\t});\n\n\t\tit(\".getIds should return an array of map keys\", function () {\n\t\t\tnewMap.insert(\"one\", 1);\n\t\t\tnewMap.insert(\"two\", 2);\n\t\t\texpect(newMap.getIds()).to.deep.equal([\"one\", \"two\"]);\n\t\t});\n\n\t\tit(\".getValues should return an object\", function () {\n\t\t\tnewMap.insert(\"one\", 1);\n\t\t\tnewMap.insert(\"two\", 2);\n\t\t\texpect(newMap.getValues()).to.deep.equal({ one: 1, two: 2 });\n\t\t});\n\n\t\tit(\".has should return a boolean\", function () {\n\t\t\tnewMap.insert(\"one\", 1);\n\t\t\tnewMap.insert(\"two\", 2);\n\t\t\texpect(newMap.has(\"two\")).to.equal(true);\n\t\t\texpect(newMap.has(\"three\")).to.equal(false);\n\t\t});\n\n\t\tit(\".setValues should work to set multiple values\", function () {\n\t\t\tnewMap.setValues({ first: 11, second: 22, third: 33 });\n\t\t\texpect(newMap.get(\"first\")).to.equal(11);\n\t\t\texpect(newMap.get(\"third\")).to.equal(33);\n\t\t});\n\n\t\tafterEach(function () {\n\t\t\tnewMap.clear();\n\t\t});\n\t});\n\n\tdescribe(\"Testing creation, assignment and serialization\", function () {\n\t\tit(\"should be empty at the beginning\", function () {\n\t\t\texpect(Uint32Map.getAsArray()).to.be.empty;\n\t\t\texpect(Uint32Map.getEntriesReadOnly()).to.be.empty;\n\t\t\texpect(ChangeSet.isEmptyChangeSet(Uint32Map.serialize({ dirtyOnly: false }))).to.be.ok;\n\t\t\texpect(ChangeSet.isEmptyChangeSet(Uint32Map.serialize({ dirtyOnly: true }))).to.be.ok;\n\t\t});\n\n\t\tit(\"should be possible to add entries\", function () {\n\t\t\tUint32Map.insert(\"value1\", 1);\n\t\t\texpect(Uint32Map.get(\"value1\")).to.equal(1);\n\t\t\tUint32Map.insert(\"value2\", 2);\n\t\t\texpect(Uint32Map.get(\"value2\")).to.equal(2);\n\t\t\tUint32Map.insert(\"value3\", 3);\n\t\t\texpect(Uint32Map.get(\"value3\")).to.equal(3);\n\t\t\texpect(Uint32Map.getEntriesReadOnly()).to.deep.equal({\n\t\t\t\tvalue1: 1,\n\t\t\t\tvalue2: 2,\n\t\t\t\tvalue3: 3,\n\t\t\t});\n\t\t\texpect(Uint32Map.getAsArray()).to.include(1, 2, 3);\n\t\t\texpect(Uint32Map.has(\"value1\")).to.be.ok;\n\t\t\texpect(Uint32Map.has(\"value2\")).to.be.ok;\n\t\t\texpect(Uint32Map.has(\"value3\")).to.be.ok;\n\t\t\texpect(Uint32Map.serialize()).to.deep.equal({\n\t\t\t\tinsert: { value1: 1, value2: 2, value3: 3 },\n\t\t\t});\n\t\t});\n\n\t\tit(\"should be possible to remove entries\", function () {\n\t\t\tUint32Map.remove(\"value1\");\n\t\t\texpect(Uint32Map.has(\"value1\")).to.be.not.ok;\n\t\t\tUint32Map.remove(\"value2\");\n\t\t\texpect(Uint32Map.has(\"value1\")).to.be.not.ok;\n\t\t\tUint32Map.remove(\"value3\");\n\t\t\texpect(Uint32Map.has(\"value1\")).to.be.not.ok;\n\t\t\texpect(ChangeSet.isEmptyChangeSet(Uint32Map.serialize())).to.be.ok;\n\t\t});\n\n\t\tit(\"a remove followed by an insert should become a modify\", function () {\n\t\t\tUint32Map.insert(\"value1\", 1);\n\t\t\tUint32Map.cleanDirty(\n\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\t);\n\t\t\tUint32Map.remove(\"value1\");\n\t\t\tUint32Map.insert(\"value1\", 2);\n\n\t\t\texpect(Uint32Map.serialize({ dirtyOnly: true })).to.deep.equal({\n\t\t\t\tmodify: { value1: 2 },\n\t\t\t});\n\n\t\t\t// This should also work for a set operation\n\t\t\tUint32Map.set(\"value1\", 3);\n\t\t\texpect(Uint32Map.serialize({ dirtyOnly: true })).to.deep.equal({\n\t\t\t\tmodify: { value1: 3 },\n\t\t\t});\n\n\t\t\t// But setting the same value should give an empty ChangeSet\n\t\t\tUint32Map.cleanDirty(\n\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\t);\n\t\t\tUint32Map.set(\"value1\", 3);\n\t\t\texpect(ChangeSet.isEmptyChangeSet(Uint32Map.serialize({ dirtyOnly: true }))).to.be.ok;\n\n\t\t\t// This should be tracked separately for dirtyness and pending changes\n\t\t\tUint32Map.cleanDirty(\n\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\t);\n\t\t\tUint32Map.remove(\"value1\");\n\t\t\tUint32Map.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY);\n\t\t\tUint32Map.insert(\"value1\", 2);\n\n\t\t\texpect(\n\t\t\t\tUint32Map.serialize({\n\t\t\t\t\tdirtyOnly: true,\n\t\t\t\t\tincludeRootTypeid: false,\n\t\t\t\t\tdirtinessType: BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\t\t}),\n\t\t\t).to.deep.equal({ modify: { value1: 2 } });\n\n\t\t\texpect(\n\t\t\t\tUint32Map.serialize({\n\t\t\t\t\tdirtyOnly: true,\n\t\t\t\t\tincludeRootTypeid: false,\n\t\t\t\t\tdirtinessType: BaseProperty.MODIFIED_STATE_FLAGS.DIRTY,\n\t\t\t\t}),\n\t\t\t).to.deep.equal({ insert: { value1: 2 } });\n\t\t});\n\n\t\tit(\"deserialize should work\", function () {\n\t\t\tvar myInitialStateNode = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:ValueMapTestPropertyID-1.0.0\",\n\t\t\t);\n\t\t\tmyInitialStateNode._properties.Uint32Map.insert(\"value1\", 1);\n\t\t\tmyInitialStateNode._properties.Uint32Map.insert(\"value2\", 2);\n\t\t\tvar initialChangeSet = myInitialStateNode.serialize();\n\n\t\t\t// Deserialize a copy into a second node and check that the chageset is correct\n\t\t\tvar myDeserializeNode1 = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:ValueMapTestPropertyID-1.0.0\",\n\t\t\t);\n\t\t\tvar changes = myDeserializeNode1.deserialize(initialChangeSet);\n\t\t\texpect(changes).to.deep.equal(initialChangeSet);\n\t\t\texpect(myDeserializeNode1.serialize()).to.deep.equal(myInitialStateNode.serialize());\n\t\t\tmyDeserializeNode1.cleanDirty(\n\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\t);\n\n\t\t\t// Create a third copy\n\t\t\tvar myDeserializeNode2 = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:ValueMapTestPropertyID-1.0.0\",\n\t\t\t);\n\t\t\tmyDeserializeNode2.deserialize(initialChangeSet);\n\t\t\tmyDeserializeNode2.cleanDirty(\n\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\t);\n\n\t\t\tmyInitialStateNode.cleanDirty(\n\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\t);\n\t\t\tmyInitialStateNode._properties.Uint32Map.set(\"value1\", 2);\n\t\t\tmyInitialStateNode._properties.Uint32Map.remove(\"value2\");\n\t\t\tmyInitialStateNode._properties.Uint32Map.insert(\"value3\", 3);\n\n\t\t\tvar changesChangeSet = myInitialStateNode.serialize({ dirtyOnly: true });\n\t\t\tvar fullChangeSet = myInitialStateNode.serialize({ dirtyOnly: false });\n\n\t\t\tvar reportedChanges = myDeserializeNode1.deserialize(fullChangeSet);\n\t\t\texpect(myDeserializeNode1.serialize({ dirtyOnly: false })).to.deep.equal(\n\t\t\t\tmyInitialStateNode.serialize({ dirtyOnly: false }),\n\t\t\t);\n\t\t\texpect(reportedChanges).to.deep.equal(changesChangeSet);\n\t\t\texpect(myDeserializeNode1.serialize({ dirtyOnly: true })).to.deep.equal(\n\t\t\t\tchangesChangeSet,\n\t\t\t);\n\n\t\t\tvar deserializeChanges = myDeserializeNode2.deserialize(fullChangeSet);\n\t\t\texpect(deserializeChanges).to.deep.equal(changesChangeSet);\n\t\t});\n\n\t\tit(\"inserting the same key twice should throw an exception\", function () {\n\t\t\tvar rootNode = PropertyFactory.create(\"autodesk.tests:ValueMapTestPropertyID-1.0.0\");\n\t\t\trootNode._properties.Uint32Map.insert(\"node1\", 1);\n\t\t\texpect(function () {\n\t\t\t\trootNode._properties.Uint32Map.insert(\"node1\", 2);\n\t\t\t}).to.throw();\n\t\t});\n\n\t\tit(\"set should overwrite existing entry\", function () {\n\t\t\tvar rootNode = PropertyFactory.create(\"autodesk.tests:ValueMapTestPropertyID-1.0.0\");\n\n\t\t\trootNode._properties.Uint32Map.set(\"node1\", 0);\n\t\t\trootNode._properties.Uint32Map.set(\"node1\", 1);\n\t\t\t// the set should overwrite the insert\n\t\t\texpect(\n\t\t\t\trootNode.serialize({ dirtyOnly: true })[\"map<Uint32>\"].Uint32Map,\n\t\t\t).to.have.all.keys(\"insert\");\n\n\t\t\t// Overwriting with the same property shouldn't dirty the node\n\t\t\trootNode.cleanDirty(\n\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\t);\n\t\t\trootNode._properties.Uint32Map.set(\"node1\", 1);\n\t\t\texpect(ChangeSet.isEmptyChangeSet(rootNode.serialize({ dirtyOnly: true }))).to.be.ok;\n\t\t\texpect(rootNode.isDirty()).to.be.false;\n\n\t\t\t// Overwriting with a different value should result in a modify\n\t\t\trootNode._properties.Uint32Map.set(\"node1\", 2);\n\t\t\texpect(\n\t\t\t\trootNode.serialize({ dirtyOnly: true })[\"map<Uint32>\"].Uint32Map,\n\t\t\t).to.have.all.keys(\"modify\");\n\t\t});\n\n\t\tit(\"casting should work as expected\", function () {\n\t\t\tvar property = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:AllTypesValueMapTestPropertyID-1.0.0\",\n\t\t\t);\n\t\t\tproperty._properties.Uint32Map.set(\"tooLarge\", 1e20);\n\t\t\tproperty._properties.Uint32Map.set(\"negative\", -1);\n\n\t\t\tproperty._properties.Uint16Map.set(\"tooLarge\", 1e20);\n\t\t\tproperty._properties.Uint16Map.set(\"negative\", -1);\n\n\t\t\tproperty._properties.Uint8Map.set(\"tooLarge\", 1e20);\n\t\t\tproperty._properties.Uint8Map.set(\"negative\", -1);\n\n\t\t\tproperty._properties.Int16Map.set(\"tooSmall\", -32769);\n\t\t\tproperty._properties.Int16Map.set(\"tooLarge\", 32768);\n\n\t\t\tproperty._properties.Int8Map.set(\"tooSmall\", -129);\n\t\t\tproperty._properties.Int8Map.set(\"tooLarge\", 128);\n\n\t\t\tproperty._properties.Float64Map.set(\"value\", 1e300);\n\t\t\tproperty._properties.Float32Map.set(\"tooLarge\", 1e300);\n\n\t\t\tproperty._properties.StringMap.set(\"value\", \"test\");\n\n\t\t\tproperty._properties.BoolMap.set(\"true\", 1);\n\t\t\tproperty._properties.BoolMap.set(\"false\", 0);\n\n\t\t\texpect(property._properties.Uint32Map.get(\"tooLarge\")).to.be.below(Math.pow(2, 32));\n\t\t\texpect(property._properties.Uint32Map.get(\"tooLarge\")).to.be.above(-1);\n\t\t\texpect(property._properties.Uint32Map.get(\"negative\")).to.be.below(Math.pow(2, 32));\n\t\t\texpect(property._properties.Uint32Map.get(\"negative\")).to.be.above(-1);\n\n\t\t\texpect(property._properties.Uint16Map.get(\"tooLarge\")).to.be.below(Math.pow(2, 16));\n\t\t\texpect(property._properties.Uint16Map.get(\"tooLarge\")).to.be.above(-1);\n\t\t\texpect(property._properties.Uint16Map.get(\"negative\")).to.be.below(Math.pow(2, 16));\n\t\t\texpect(property._properties.Uint16Map.get(\"negative\")).to.be.above(-1);\n\n\t\t\texpect(property._properties.Uint8Map.get(\"tooLarge\")).to.be.below(Math.pow(2, 8));\n\t\t\texpect(property._properties.Uint8Map.get(\"tooLarge\")).to.be.above(-1);\n\t\t\texpect(property._properties.Uint8Map.get(\"negative\")).to.be.below(Math.pow(2, 8));\n\t\t\texpect(property._properties.Uint8Map.get(\"negative\")).to.be.above(-1);\n\n\t\t\texpect(property._properties.Int16Map.get(\"tooLarge\")).to.be.below(32768);\n\t\t\texpect(property._properties.Int16Map.get(\"tooLarge\")).to.be.above(-32769);\n\t\t\texpect(property._properties.Int16Map.get(\"tooSmall\")).to.be.below(32768);\n\t\t\texpect(property._properties.Int16Map.get(\"tooSmall\")).to.be.above(-32769);\n\n\t\t\texpect(property._properties.Int8Map.get(\"tooLarge\")).to.be.below(128);\n\t\t\texpect(property._properties.Int8Map.get(\"tooLarge\")).to.be.above(-129);\n\t\t\texpect(property._properties.Int8Map.get(\"tooSmall\")).to.be.below(128);\n\t\t\texpect(property._properties.Int8Map.get(\"tooSmall\")).to.be.above(-129);\n\n\t\t\texpect(property._properties.Float32Map.get(\"tooLarge\")).to.equal(Infinity);\n\t\t\texpect(property._properties.Float64Map.get(\"value\")).to.equal(1e300);\n\n\t\t\texpect(property._properties.StringMap.get(\"value\")).to.equal(\"test\");\n\n\t\t\texpect(property._properties.BoolMap.get(\"true\")).to.equal(true);\n\t\t\texpect(property._properties.BoolMap.get(\"false\")).to.equal(false);\n\t\t});\n\n\t\tit(\"prettyPrint should work\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\"autodesk.tests:ValueMapTestPropertyID-1.0.0\")\n\t\t\t\t._properties.Uint32Map;\n\t\t\tmyProp.insert(\"value1\", 1);\n\t\t\tmyProp.insert(\"value2\", 2);\n\t\t\tvar expectedPrettyStr =\n\t\t\t\t\"Uint32Map (Map of Uint32):\\n\" + \" value1: 1\\n\" + \" value2: 2\\n\";\n\t\t\tvar prettyStr = \"\";\n\t\t\tmyProp.prettyPrint(function (str) {\n\t\t\t\tprettyStr += str + \"\\n\";\n\t\t\t});\n\t\t\texpect(prettyStr).to.equal(expectedPrettyStr);\n\t\t});\n\t});\n\n\tdescribe(\"squashing\", function () {\n\t\t//\n\t\t// Helper function which takes a sequence of callbacks that are suceessively executed\n\t\t// and the changes applied by the callbacks are separately tracked and squashed in a\n\t\t// a ChangeSet. This ChangeSet is then compared to the state in the property object\n\t\t//\n\t\t// Optionally, a a callback which controls the initial state before the squashing can\n\t\t// be given as first parameter\n\t\t//\n\t\tvar testChangeSetSquashing = function (in_options) {\n\t\t\tresetKeyCounter();\n\t\t\tvar testProperty = PropertyFactory.create(\"autodesk.tests:ValueMapTestPropertyID-1.0.0\");\n\n\t\t\tvar callbacks = in_options.callbacks;\n\t\t\tif (in_options.pre) {\n\t\t\t\tin_options.pre(testProperty);\n\t\t\t}\n\n\t\t\tvar initialChangeset = new ChangeSet(testProperty.serialize());\n\t\t\tinitialChangeset.setIsNormalized(true);\n\n\t\t\tvar squashedChangeset = new ChangeSet();\n\t\t\ttestProperty.cleanDirty(\n\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\t);\n\t\t\tfor (var i = 0; i < callbacks.length; i++) {\n\t\t\t\tcallbacks[i](testProperty);\n\t\t\t\tvar changes = testProperty.serialize({ dirtyOnly: true });\n\t\t\t\ttestProperty.cleanDirty(\n\t\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\t\t);\n\n\t\t\t\tsquashedChangeset.applyChangeSet(changes);\n\t\t\t}\n\n\t\t\tif (in_options.post) {\n\t\t\t\tin_options.post(squashedChangeset.getSerializedChangeSet());\n\t\t\t}\n\n\t\t\tinitialChangeset.applyChangeSet(squashedChangeset.getSerializedChangeSet());\n\t\t\texpect(initialChangeset.getSerializedChangeSet()).to.deep.equal(\n\t\t\t\ttestProperty.serialize({ dirtyOnly: false }),\n\t\t\t);\n\t\t};\n\n\t\tit(\"should work for multiple independent inserts\", function () {\n\t\t\ttestChangeSetSquashing({\n\t\t\t\tcallbacks: [insertNodeInRoot, insertNodeInRoot, insertNodeInRoot],\n\t\t\t});\n\t\t});\n\n\t\tit(\"should work for inserts followed by removes\", function () {\n\t\t\ttestChangeSetSquashing({\n\t\t\t\tcallbacks: [\n\t\t\t\t\tinsertNodeInRoot,\n\t\t\t\t\tinsertNodeInRoot,\n\t\t\t\t\tremoveFirstNodeInRoot,\n\t\t\t\t\tremoveFirstNodeInRoot,\n\t\t\t\t],\n\t\t\t\tpost: function (changeset) {\n\t\t\t\t\texpect(changeset).to.be.empty;\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\tit(\"of inserts and modifies should work\", function () {\n\t\t\ttestChangeSetSquashing({\n\t\t\t\tcallbacks: [\n\t\t\t\t\tinsertNodeInRoot,\n\t\t\t\t\tinsertNodeInRoot,\n\t\t\t\t\tinsertNodeInRoot,\n\t\t\t\t\tmodifyEntry,\n\t\t\t\t\tmodifyEntry,\n\t\t\t\t],\n\t\t\t});\n\t\t});\n\t\tit(\"an insert, modify and a remove should give an empty changeset\", function () {\n\t\t\ttestChangeSetSquashing({\n\t\t\t\tcallbacks: [insertNodeInRoot, modifyEntry, modifyEntry, removeFirstNodeInRoot],\n\t\t\t\tpost: function (changeset) {\n\t\t\t\t\texpect(changeset).to.be.empty;\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t\tit(\"should work for modifies after an already existing insert\", function () {\n\t\t\ttestChangeSetSquashing({\n\t\t\t\tpre: insertNodeInRoot,\n\t\t\t\tcallbacks: [modifyEntry, modifyEntry],\n\t\t\t});\n\t\t});\n\t\tit(\"of modify and remove after an already existing insert should work\", function () {\n\t\t\ttestChangeSetSquashing({\n\t\t\t\tpre: insertNodeInRoot,\n\t\t\t\tcallbacks: [modifyEntry, removeFirstNodeInRoot],\n\t\t\t\tpost: function (changeset) {\n\t\t\t\t\texpect(changeset[\"map<Uint32>\"].Uint32Map).to.have.all.keys(\"remove\");\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t\tit(\"of remove and insert should result in modify\", function () {\n\t\t\t// Create two nodes with the same GUID\n\t\t\ttestChangeSetSquashing({\n\t\t\t\tpre: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.insert(\"node1\", 1);\n\t\t\t\t},\n\t\t\t\tcallbacks: [\n\t\t\t\t\tremoveFirstNodeInRoot,\n\t\t\t\t\tfunction (root) {\n\t\t\t\t\t\troot._properties.Uint32Map.insert(\"node1\", 2);\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tpost: function (changeset) {\n\t\t\t\t\texpect(changeset[\"map<Uint32>\"].Uint32Map).to.have.all.keys(\"modify\");\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe(\"Rebasing\", function () {\n\t\tvar testRebasing = function (in_options) {\n\t\t\t// Prepare the initial state\n\t\t\tvar baseProperty1 = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:ValueMapTestPropertyID-1.0.0\",\n\t\t\t);\n\t\t\tif (in_options.prepare) {\n\t\t\t\tin_options.prepare(baseProperty1);\n\t\t\t}\n\t\t\t// Create two copies of this state\n\t\t\tvar baseProperty2 = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:ValueMapTestPropertyID-1.0.0\",\n\t\t\t);\n\t\t\tbaseProperty2.deserialize(baseProperty1.serialize());\n\t\t\tvar baseProperty3 = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:ValueMapTestPropertyID-1.0.0\",\n\t\t\t);\n\t\t\tbaseProperty3.deserialize(baseProperty1.serialize());\n\n\t\t\t// Make sure the states are clear\n\t\t\tbaseProperty1.cleanDirty(\n\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\t);\n\t\t\tbaseProperty2.cleanDirty(\n\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\t);\n\t\t\tbaseProperty3.cleanDirty(\n\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\t);\n\n\t\t\tvar initialChangeSet = baseProperty1.serialize();\n\n\t\t\t// Apply the operations to the two properties in parallel\n\t\t\tif (in_options.op1) {\n\t\t\t\tin_options.op1(baseProperty1);\n\t\t\t}\n\t\t\tif (in_options.op2) {\n\t\t\t\tin_options.op2(baseProperty2);\n\t\t\t}\n\n\t\t\t// Get the ChangeSets\n\t\t\tvar changeSet1 = new ChangeSet(baseProperty1.serialize({ dirtyOnly: true }));\n\t\t\tvar changeSet2 = baseProperty2.serialize({ dirtyOnly: true });\n\n\t\t\t// Perform the actual rebase\n\t\t\tvar conflicts = [];\n\t\t\tchangeSet1._rebaseChangeSet(changeSet2, conflicts);\n\n\t\t\tvar combinedChangeSet = new ChangeSet(initialChangeSet).clone();\n\t\t\tcombinedChangeSet.setIsNormalized(true);\n\t\t\tcombinedChangeSet.applyChangeSet(changeSet1);\n\t\t\tcombinedChangeSet.applyChangeSet(changeSet2);\n\n\t\t\tif (in_options.compareToSequential) {\n\t\t\t\tif (in_options.op1) {\n\t\t\t\t\tin_options.op1(baseProperty3);\n\t\t\t\t}\n\t\t\t\tif (in_options.op2) {\n\t\t\t\t\tin_options.op2(baseProperty3);\n\t\t\t\t}\n\t\t\t\tvar finalChangeSet = baseProperty3.serialize({ dirtyOnly: false });\n\t\t\t\texpect(finalChangeSet).to.be.deep.equal(combinedChangeSet.getSerializedChangeSet());\n\t\t\t}\n\n\t\t\tif (in_options.checkResult) {\n\t\t\t\tin_options.checkResult(conflicts, changeSet2, combinedChangeSet);\n\t\t\t}\n\t\t};\n\n\t\tit(\"with a NOP should be possible\", function () {\n\t\t\ttestRebasing({\n\t\t\t\top2: insertEntryInRootWithUnqiueKey(),\n\t\t\t\tcompareToSequential: true,\n\t\t\t});\n\t\t});\n\n\t\tit(\"with independent inserts should be possible\", function () {\n\t\t\ttestRebasing({\n\t\t\t\top1: insertEntryInRootWithUnqiueKey(),\n\t\t\t\top2: insertEntryInRootWithUnqiueKey(),\n\t\t\t\tcompareToSequential: true,\n\t\t\t});\n\t\t});\n\n\t\tit(\"with independent removes should be possible\", function () {\n\t\t\ttestRebasing({\n\t\t\t\tprepare: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.insert(\"entry1\", 1);\n\t\t\t\t\troot._properties.Uint32Map.insert(\"entry2\", 2);\n\t\t\t\t},\n\t\t\t\top1: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.remove(\"entry1\");\n\t\t\t\t},\n\t\t\t\top2: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.remove(\"entry2\");\n\t\t\t\t},\n\t\t\t\tcompareToSequential: true,\n\t\t\t});\n\t\t});\n\n\t\tit(\"with a modify and a remove should possible\", function () {\n\t\t\ttestRebasing({\n\t\t\t\tprepare: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.insert(\"entry1\", 1);\n\t\t\t\t},\n\t\t\t\top1: modifyEntry,\n\t\t\t\top2: removeFirstNodeInRoot,\n\t\t\t\tcompareToSequential: true,\n\t\t\t});\n\t\t});\n\n\t\tit(\"with a remove and a modify should possible\", function () {\n\t\t\ttestRebasing({\n\t\t\t\tprepare: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.insert(\"entry1\", 1);\n\t\t\t\t},\n\t\t\t\top1: removeFirstNodeInRoot,\n\t\t\t\top2: modifyEntry,\n\t\t\t\tcompareToSequential: false,\n\t\t\t\tcheckResult: function (conflicts, changeSet) {\n\t\t\t\t\texpect(conflicts).to.have.length(1);\n\t\t\t\t\texpect(conflicts[0].type).to.be.equal(\n\t\t\t\t\t\tChangeSet.ConflictType.ENTRY_MODIFIED_AFTER_REMOVE,\n\t\t\t\t\t);\n\t\t\t\t\texpect(conflicts[0].path).to.be.equal(\"Uint32Map[entry1]\");\n\t\t\t\t\texpect(ChangeSet.isEmptyChangeSet(changeSet)).to.be.ok;\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\tit(\"with two compatible removes should be possible\", function () {\n\t\t\ttestRebasing({\n\t\t\t\tprepare: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.insert(\"entry1\", 1);\n\t\t\t\t},\n\t\t\t\top1: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.remove(\"entry1\");\n\t\t\t\t},\n\t\t\t\top2: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.remove(\"entry1\");\n\t\t\t\t},\n\t\t\t\tcompareToSequential: false,\n\t\t\t\tcheckResult: function (conflicts, changeSet) {\n\t\t\t\t\texpect(ChangeSet.isEmptyChangeSet(changeSet)).to.be.ok;\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\tit(\"with two conflicting modifies should be possible and report a conflict\", function () {\n\t\t\ttestRebasing({\n\t\t\t\tprepare: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.insert(\"entry1\", 1);\n\t\t\t\t},\n\t\t\t\top1: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.set(\"entry1\", 2);\n\t\t\t\t},\n\t\t\t\top2: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.set(\"entry1\", 3);\n\t\t\t\t},\n\t\t\t\tcompareToSequential: true,\n\t\t\t\tcheckResult: function (conflicts, changeSet) {\n\t\t\t\t\texpect(conflicts).to.have.length(1);\n\t\t\t\t\texpect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);\n\t\t\t\t\texpect(conflicts[0].path).to.be.equal(\"Uint32Map[entry1]\");\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\tit(\"with modify followed by remove+insert should be a conflicting set\", function () {\n\t\t\ttestRebasing({\n\t\t\t\tprepare: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.insert(\"entry1\", 1);\n\t\t\t\t},\n\t\t\t\top1: modifyEntry,\n\t\t\t\top2: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.remove(\"entry1\");\n\t\t\t\t\troot._properties.Uint32Map.insert(\"entry1\", 2);\n\t\t\t\t},\n\t\t\t\tcompareToSequential: true,\n\t\t\t\tcheckResult: function (conflicts, changeSet) {\n\t\t\t\t\texpect(conflicts).to.have.length(1);\n\t\t\t\t\texpect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);\n\t\t\t\t\texpect(conflicts[0].path).to.be.equal(\"Uint32Map[entry1]\");\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\tit(\"with remove+insert followed by modify should be a conflicting set\", function () {\n\t\t\ttestRebasing({\n\t\t\t\tprepare: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.insert(\"entry1\", 1);\n\t\t\t\t},\n\t\t\t\top1: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.remove(\"entry1\");\n\t\t\t\t\troot._properties.Uint32Map.insert(\"entry1\", 2);\n\t\t\t\t},\n\t\t\t\top2: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.set(\"entry1\", 3);\n\t\t\t\t},\n\t\t\t\tcompareToSequential: true,\n\t\t\t\tcheckResult: function (conflicts, changeSet) {\n\t\t\t\t\texpect(conflicts).to.have.length(1);\n\t\t\t\t\texpect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);\n\t\t\t\t\texpect(conflicts[0].path).to.be.equal(\"Uint32Map[entry1]\");\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\tit(\"with conflicting inserts should report conflict\", function () {\n\t\t\ttestRebasing({\n\t\t\t\tprepare: function (root) {},\n\t\t\t\top1: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.insert(\"entry1\", 1);\n\t\t\t\t},\n\t\t\t\top2: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.insert(\"entry1\", 2);\n\t\t\t\t},\n\t\t\t\tcompareToSequential: false,\n\t\t\t\tcheckResult: function (conflicts, changeSet) {\n\t\t\t\t\texpect(changeSet[\"map<Uint32>\"].Uint32Map).to.have.all.keys(\"modify\");\n\t\t\t\t\texpect(conflicts).to.have.length(1);\n\t\t\t\t\texpect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);\n\t\t\t\t\texpect(conflicts[0].path).to.be.equal(\"Uint32Map[entry1]\");\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t});\n});\n"]}
|
|
1
|
+
{"version":3,"file":"valueMapProperty.spec.js","sourceRoot":"","sources":["../../../src/test/properties/valueMapProperty.spec.js"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/* globals describe */\n\n/**\n * @fileoverview\n * In this file, we will test the map property object described in /src/properties/mapProperty.js\n */\nconst { ChangeSet } = require(\"@fluid-experimental/property-changeset\");\n\nconst { PropertyFactory } = require(\"../..\");\nconst { BaseProperty } = require(\"../..\");\n\ndescribe(\"ValueMapProperty\", function () {\n\tvar myNode, Uint32Map;\n\n\tbefore(function () {\n\t\t// Register a template with a set property for the tests\n\t\tvar TestPropertyTemplate = {\n\t\t\ttypeid: \"autodesk.tests:ValueMapTestPropertyID-1.0.0\",\n\t\t\tinherits: [\"NamedProperty\"],\n\t\t\tproperties: [{ id: \"Uint32Map\", typeid: \"Uint32\", context: \"map\" }],\n\t\t};\n\n\t\t// Register a template with a set property for the tests\n\t\tvar AllTypesTestPropertyTemplate = {\n\t\t\ttypeid: \"autodesk.tests:AllTypesValueMapTestPropertyID-1.0.0\",\n\t\t\tinherits: [\"NamedProperty\"],\n\t\t\tproperties: [\n\t\t\t\t{ id: \"Uint32Map\", typeid: \"Uint32\", context: \"map\" },\n\t\t\t\t{ id: \"Uint16Map\", typeid: \"Uint16\", context: \"map\" },\n\t\t\t\t{ id: \"Uint8Map\", typeid: \"Uint8\", context: \"map\" },\n\t\t\t\t{ id: \"Int32Map\", typeid: \"Int32\", context: \"map\" },\n\t\t\t\t{ id: \"Int16Map\", typeid: \"Int16\", context: \"map\" },\n\t\t\t\t{ id: \"Int8Map\", typeid: \"Int8\", context: \"map\" },\n\t\t\t\t{ id: \"Float64Map\", typeid: \"Float64\", context: \"map\" },\n\t\t\t\t{ id: \"Float32Map\", typeid: \"Float32\", context: \"map\" },\n\t\t\t\t{ id: \"StringMap\", typeid: \"String\", context: \"map\" },\n\t\t\t\t{ id: \"BoolMap\", typeid: \"Bool\", context: \"map\" },\n\t\t\t],\n\t\t};\n\t\tPropertyFactory._reregister(TestPropertyTemplate);\n\t\tPropertyFactory._reregister(AllTypesTestPropertyTemplate);\n\n\t\tmyNode = PropertyFactory.create(\"autodesk.tests:ValueMapTestPropertyID-1.0.0\");\n\t\tUint32Map = myNode._properties.Uint32Map;\n\t});\n\n\t// Helper functions for the test cases\n\tvar keyCounter = 0;\n\tvar resetKeyCounter = function () {\n\t\tkeyCounter = 0;\n\t};\n\n\t// Inserts a node with a given key (a new one is generated when undefined)\n\tvar insertEntryInRootWithKey = function (key, root) {\n\t\tif (key === undefined) {\n\t\t\tkey = \"node\" + keyCounter++;\n\t\t}\n\t\troot._properties.Uint32Map.insert(key, keyCounter);\n\t};\n\n\t// Inserts a new node in the root\n\tvar insertNodeInRoot = function (root) {\n\t\tinsertEntryInRootWithKey(undefined, root);\n\t};\n\n\t// Returns a functor that will insert a node with a constant key\n\tvar insertEntryInRootWithUnqiueKey = function () {\n\t\tvar key = \"node\" + keyCounter++;\n\t\treturn insertEntryInRootWithKey.bind(undefined, key);\n\t};\n\n\t// Removes the first node from the root\n\tvar removeFirstNodeInRoot = function (root) {\n\t\tvar firstKey = root._properties.Uint32Map.getIds()[0];\n\t\troot._properties.Uint32Map.remove(firstKey);\n\t};\n\n\t// Modifies the first node\n\tvar modifyEntry = function (root) {\n\t\tvar firstKey = root._properties.Uint32Map.getIds()[0];\n\t\troot._properties.Uint32Map.set(firstKey, root._properties.Uint32Map.get(firstKey) + 1);\n\t};\n\n\tdescribe(\"Inherited API Methods\", function () {\n\t\tvar newMap;\n\t\tbefore(function () {\n\t\t\tnewMap = PropertyFactory.create(\"Int32\", \"map\");\n\t\t});\n\t\tit(\".clear should work to remove all entries in the map\", function () {\n\t\t\tnewMap.insert(\"one\", 1);\n\t\t\tnewMap.insert(\"two\", 2);\n\t\t\texpect(newMap.getValues()).to.deep.equal({ one: 1, two: 2 });\n\t\t\tnewMap.clear();\n\t\t\texpect(newMap.getValues()).to.deep.equal({});\n\t\t});\n\n\t\tit(\".getAsArray should return an array of map values\", function () {\n\t\t\tnewMap.insert(\"one\", 1);\n\t\t\tnewMap.insert(\"two\", 2);\n\t\t\texpect(newMap.getAsArray()).to.deep.equal([1, 2]);\n\t\t});\n\n\t\tit(\"getEntriesReadOnly should work\", function () {\n\t\t\tnewMap.insert(\"one\", 1);\n\t\t\tnewMap.insert(\"two\", 2);\n\t\t\texpect(newMap.getEntriesReadOnly()).to.deep.equal({ one: 1, two: 2 });\n\t\t});\n\n\t\tit(\".getFullTypeid should return a string of the typeid with or without collection\", function () {\n\t\t\texpect(newMap.getFullTypeid()).to.equal(\"map<Int32>\");\n\t\t\texpect(newMap.getFullTypeid(true)).to.equal(\"Int32\");\n\t\t});\n\n\t\tit(\".getIds should return an array of map keys\", function () {\n\t\t\tnewMap.insert(\"one\", 1);\n\t\t\tnewMap.insert(\"two\", 2);\n\t\t\texpect(newMap.getIds()).to.deep.equal([\"one\", \"two\"]);\n\t\t});\n\n\t\tit(\".getValues should return an object\", function () {\n\t\t\tnewMap.insert(\"one\", 1);\n\t\t\tnewMap.insert(\"two\", 2);\n\t\t\texpect(newMap.getValues()).to.deep.equal({ one: 1, two: 2 });\n\t\t});\n\n\t\tit(\".has should return a boolean\", function () {\n\t\t\tnewMap.insert(\"one\", 1);\n\t\t\tnewMap.insert(\"two\", 2);\n\t\t\texpect(newMap.has(\"two\")).to.equal(true);\n\t\t\texpect(newMap.has(\"three\")).to.equal(false);\n\t\t});\n\n\t\tit(\".setValues should work to set multiple values\", function () {\n\t\t\tnewMap.setValues({ first: 11, second: 22, third: 33 });\n\t\t\texpect(newMap.get(\"first\")).to.equal(11);\n\t\t\texpect(newMap.get(\"third\")).to.equal(33);\n\t\t});\n\n\t\tafterEach(function () {\n\t\t\tnewMap.clear();\n\t\t});\n\t});\n\n\tdescribe(\"Testing creation, assignment and serialization\", function () {\n\t\tit(\"should be empty at the beginning\", function () {\n\t\t\texpect(Uint32Map.getAsArray()).to.be.empty;\n\t\t\texpect(Uint32Map.getEntriesReadOnly()).to.be.empty;\n\t\t\texpect(ChangeSet.isEmptyChangeSet(Uint32Map.serialize({ dirtyOnly: false }))).to.be.ok;\n\t\t\texpect(ChangeSet.isEmptyChangeSet(Uint32Map.serialize({ dirtyOnly: true }))).to.be.ok;\n\t\t});\n\n\t\tit(\"should be possible to add entries\", function () {\n\t\t\tUint32Map.insert(\"value1\", 1);\n\t\t\texpect(Uint32Map.get(\"value1\")).to.equal(1);\n\t\t\tUint32Map.insert(\"value2\", 2);\n\t\t\texpect(Uint32Map.get(\"value2\")).to.equal(2);\n\t\t\tUint32Map.insert(\"value3\", 3);\n\t\t\texpect(Uint32Map.get(\"value3\")).to.equal(3);\n\t\t\texpect(Uint32Map.getEntriesReadOnly()).to.deep.equal({\n\t\t\t\tvalue1: 1,\n\t\t\t\tvalue2: 2,\n\t\t\t\tvalue3: 3,\n\t\t\t});\n\t\t\texpect(Uint32Map.getAsArray()).to.include(1);\n\t\t\texpect(Uint32Map.getAsArray()).to.include(2);\n\t\t\texpect(Uint32Map.getAsArray()).to.include(3);\n\t\t\texpect(Uint32Map.has(\"value1\")).to.be.ok;\n\t\t\texpect(Uint32Map.has(\"value2\")).to.be.ok;\n\t\t\texpect(Uint32Map.has(\"value3\")).to.be.ok;\n\t\t\texpect(Uint32Map.serialize()).to.deep.equal({\n\t\t\t\tinsert: { value1: 1, value2: 2, value3: 3 },\n\t\t\t});\n\t\t});\n\n\t\tit(\"should be possible to remove entries\", function () {\n\t\t\tUint32Map.remove(\"value1\");\n\t\t\texpect(Uint32Map.has(\"value1\")).to.be.not.ok;\n\t\t\texpect(Uint32Map.has(\"value2\")).to.be.ok;\n\t\t\texpect(Uint32Map.has(\"value3\")).to.be.ok;\n\t\t\tUint32Map.remove(\"value2\");\n\t\t\texpect(Uint32Map.has(\"value2\")).to.be.not.ok;\n\t\t\texpect(Uint32Map.has(\"value3\")).to.be.ok;\n\t\t\tUint32Map.remove(\"value3\");\n\t\t\texpect(Uint32Map.has(\"value3\")).to.be.not.ok;\n\t\t\texpect(ChangeSet.isEmptyChangeSet(Uint32Map.serialize())).to.be.ok;\n\t\t});\n\n\t\tit(\"a remove followed by an insert should become a modify\", function () {\n\t\t\tUint32Map.insert(\"value1\", 1);\n\t\t\tUint32Map.cleanDirty(\n\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\t);\n\t\t\tUint32Map.remove(\"value1\");\n\t\t\tUint32Map.insert(\"value1\", 2);\n\n\t\t\texpect(Uint32Map.serialize({ dirtyOnly: true })).to.deep.equal({\n\t\t\t\tmodify: { value1: 2 },\n\t\t\t});\n\n\t\t\t// This should also work for a set operation\n\t\t\tUint32Map.set(\"value1\", 3);\n\t\t\texpect(Uint32Map.serialize({ dirtyOnly: true })).to.deep.equal({\n\t\t\t\tmodify: { value1: 3 },\n\t\t\t});\n\n\t\t\t// But setting the same value should give an empty ChangeSet\n\t\t\tUint32Map.cleanDirty(\n\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\t);\n\t\t\tUint32Map.set(\"value1\", 3);\n\t\t\texpect(ChangeSet.isEmptyChangeSet(Uint32Map.serialize({ dirtyOnly: true }))).to.be.ok;\n\n\t\t\t// This should be tracked separately for dirtyness and pending changes\n\t\t\tUint32Map.cleanDirty(\n\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\t);\n\t\t\tUint32Map.remove(\"value1\");\n\t\t\tUint32Map.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY);\n\t\t\tUint32Map.insert(\"value1\", 2);\n\n\t\t\texpect(\n\t\t\t\tUint32Map.serialize({\n\t\t\t\t\tdirtyOnly: true,\n\t\t\t\t\tincludeRootTypeid: false,\n\t\t\t\t\tdirtinessType: BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\t\t}),\n\t\t\t).to.deep.equal({ modify: { value1: 2 } });\n\n\t\t\texpect(\n\t\t\t\tUint32Map.serialize({\n\t\t\t\t\tdirtyOnly: true,\n\t\t\t\t\tincludeRootTypeid: false,\n\t\t\t\t\tdirtinessType: BaseProperty.MODIFIED_STATE_FLAGS.DIRTY,\n\t\t\t\t}),\n\t\t\t).to.deep.equal({ insert: { value1: 2 } });\n\t\t});\n\n\t\tit(\"deserialize should work\", function () {\n\t\t\tvar myInitialStateNode = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:ValueMapTestPropertyID-1.0.0\",\n\t\t\t);\n\t\t\tmyInitialStateNode._properties.Uint32Map.insert(\"value1\", 1);\n\t\t\tmyInitialStateNode._properties.Uint32Map.insert(\"value2\", 2);\n\t\t\tvar initialChangeSet = myInitialStateNode.serialize();\n\n\t\t\t// Deserialize a copy into a second node and check that the chageset is correct\n\t\t\tvar myDeserializeNode1 = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:ValueMapTestPropertyID-1.0.0\",\n\t\t\t);\n\t\t\tvar changes = myDeserializeNode1.deserialize(initialChangeSet);\n\t\t\texpect(changes).to.deep.equal(initialChangeSet);\n\t\t\texpect(myDeserializeNode1.serialize()).to.deep.equal(myInitialStateNode.serialize());\n\t\t\tmyDeserializeNode1.cleanDirty(\n\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\t);\n\n\t\t\t// Create a third copy\n\t\t\tvar myDeserializeNode2 = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:ValueMapTestPropertyID-1.0.0\",\n\t\t\t);\n\t\t\tmyDeserializeNode2.deserialize(initialChangeSet);\n\t\t\tmyDeserializeNode2.cleanDirty(\n\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\t);\n\n\t\t\tmyInitialStateNode.cleanDirty(\n\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\t);\n\t\t\tmyInitialStateNode._properties.Uint32Map.set(\"value1\", 2);\n\t\t\tmyInitialStateNode._properties.Uint32Map.remove(\"value2\");\n\t\t\tmyInitialStateNode._properties.Uint32Map.insert(\"value3\", 3);\n\n\t\t\tvar changesChangeSet = myInitialStateNode.serialize({ dirtyOnly: true });\n\t\t\tvar fullChangeSet = myInitialStateNode.serialize({ dirtyOnly: false });\n\n\t\t\tvar reportedChanges = myDeserializeNode1.deserialize(fullChangeSet);\n\t\t\texpect(myDeserializeNode1.serialize({ dirtyOnly: false })).to.deep.equal(\n\t\t\t\tmyInitialStateNode.serialize({ dirtyOnly: false }),\n\t\t\t);\n\t\t\texpect(reportedChanges).to.deep.equal(changesChangeSet);\n\t\t\texpect(myDeserializeNode1.serialize({ dirtyOnly: true })).to.deep.equal(\n\t\t\t\tchangesChangeSet,\n\t\t\t);\n\n\t\t\tvar deserializeChanges = myDeserializeNode2.deserialize(fullChangeSet);\n\t\t\texpect(deserializeChanges).to.deep.equal(changesChangeSet);\n\t\t});\n\n\t\tit(\"inserting the same key twice should throw an exception\", function () {\n\t\t\tvar rootNode = PropertyFactory.create(\"autodesk.tests:ValueMapTestPropertyID-1.0.0\");\n\t\t\trootNode._properties.Uint32Map.insert(\"node1\", 1);\n\t\t\texpect(function () {\n\t\t\t\trootNode._properties.Uint32Map.insert(\"node1\", 2);\n\t\t\t}).to.throw();\n\t\t});\n\n\t\tit(\"set should overwrite existing entry\", function () {\n\t\t\tvar rootNode = PropertyFactory.create(\"autodesk.tests:ValueMapTestPropertyID-1.0.0\");\n\n\t\t\trootNode._properties.Uint32Map.set(\"node1\", 0);\n\t\t\trootNode._properties.Uint32Map.set(\"node1\", 1);\n\t\t\t// the set should overwrite the insert\n\t\t\texpect(\n\t\t\t\trootNode.serialize({ dirtyOnly: true })[\"map<Uint32>\"].Uint32Map,\n\t\t\t).to.have.all.keys(\"insert\");\n\n\t\t\t// Overwriting with the same property shouldn't dirty the node\n\t\t\trootNode.cleanDirty(\n\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\t);\n\t\t\trootNode._properties.Uint32Map.set(\"node1\", 1);\n\t\t\texpect(ChangeSet.isEmptyChangeSet(rootNode.serialize({ dirtyOnly: true }))).to.be.ok;\n\t\t\texpect(rootNode.isDirty()).to.be.false;\n\n\t\t\t// Overwriting with a different value should result in a modify\n\t\t\trootNode._properties.Uint32Map.set(\"node1\", 2);\n\t\t\texpect(\n\t\t\t\trootNode.serialize({ dirtyOnly: true })[\"map<Uint32>\"].Uint32Map,\n\t\t\t).to.have.all.keys(\"modify\");\n\t\t});\n\n\t\tit(\"casting should work as expected\", function () {\n\t\t\tvar property = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:AllTypesValueMapTestPropertyID-1.0.0\",\n\t\t\t);\n\t\t\tproperty._properties.Uint32Map.set(\"tooLarge\", 1e20);\n\t\t\tproperty._properties.Uint32Map.set(\"negative\", -1);\n\n\t\t\tproperty._properties.Uint16Map.set(\"tooLarge\", 1e20);\n\t\t\tproperty._properties.Uint16Map.set(\"negative\", -1);\n\n\t\t\tproperty._properties.Uint8Map.set(\"tooLarge\", 1e20);\n\t\t\tproperty._properties.Uint8Map.set(\"negative\", -1);\n\n\t\t\tproperty._properties.Int16Map.set(\"tooSmall\", -32769);\n\t\t\tproperty._properties.Int16Map.set(\"tooLarge\", 32768);\n\n\t\t\tproperty._properties.Int8Map.set(\"tooSmall\", -129);\n\t\t\tproperty._properties.Int8Map.set(\"tooLarge\", 128);\n\n\t\t\tproperty._properties.Float64Map.set(\"value\", 1e300);\n\t\t\tproperty._properties.Float32Map.set(\"tooLarge\", 1e300);\n\n\t\t\tproperty._properties.StringMap.set(\"value\", \"test\");\n\n\t\t\tproperty._properties.BoolMap.set(\"true\", 1);\n\t\t\tproperty._properties.BoolMap.set(\"false\", 0);\n\n\t\t\texpect(property._properties.Uint32Map.get(\"tooLarge\")).to.be.below(Math.pow(2, 32));\n\t\t\texpect(property._properties.Uint32Map.get(\"tooLarge\")).to.be.above(-1);\n\t\t\texpect(property._properties.Uint32Map.get(\"negative\")).to.be.below(Math.pow(2, 32));\n\t\t\texpect(property._properties.Uint32Map.get(\"negative\")).to.be.above(-1);\n\n\t\t\texpect(property._properties.Uint16Map.get(\"tooLarge\")).to.be.below(Math.pow(2, 16));\n\t\t\texpect(property._properties.Uint16Map.get(\"tooLarge\")).to.be.above(-1);\n\t\t\texpect(property._properties.Uint16Map.get(\"negative\")).to.be.below(Math.pow(2, 16));\n\t\t\texpect(property._properties.Uint16Map.get(\"negative\")).to.be.above(-1);\n\n\t\t\texpect(property._properties.Uint8Map.get(\"tooLarge\")).to.be.below(Math.pow(2, 8));\n\t\t\texpect(property._properties.Uint8Map.get(\"tooLarge\")).to.be.above(-1);\n\t\t\texpect(property._properties.Uint8Map.get(\"negative\")).to.be.below(Math.pow(2, 8));\n\t\t\texpect(property._properties.Uint8Map.get(\"negative\")).to.be.above(-1);\n\n\t\t\texpect(property._properties.Int16Map.get(\"tooLarge\")).to.be.below(32768);\n\t\t\texpect(property._properties.Int16Map.get(\"tooLarge\")).to.be.above(-32769);\n\t\t\texpect(property._properties.Int16Map.get(\"tooSmall\")).to.be.below(32768);\n\t\t\texpect(property._properties.Int16Map.get(\"tooSmall\")).to.be.above(-32769);\n\n\t\t\texpect(property._properties.Int8Map.get(\"tooLarge\")).to.be.below(128);\n\t\t\texpect(property._properties.Int8Map.get(\"tooLarge\")).to.be.above(-129);\n\t\t\texpect(property._properties.Int8Map.get(\"tooSmall\")).to.be.below(128);\n\t\t\texpect(property._properties.Int8Map.get(\"tooSmall\")).to.be.above(-129);\n\n\t\t\texpect(property._properties.Float32Map.get(\"tooLarge\")).to.equal(Infinity);\n\t\t\texpect(property._properties.Float64Map.get(\"value\")).to.equal(1e300);\n\n\t\t\texpect(property._properties.StringMap.get(\"value\")).to.equal(\"test\");\n\n\t\t\texpect(property._properties.BoolMap.get(\"true\")).to.equal(true);\n\t\t\texpect(property._properties.BoolMap.get(\"false\")).to.equal(false);\n\t\t});\n\n\t\tit(\"prettyPrint should work\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\"autodesk.tests:ValueMapTestPropertyID-1.0.0\")\n\t\t\t\t._properties.Uint32Map;\n\t\t\tmyProp.insert(\"value1\", 1);\n\t\t\tmyProp.insert(\"value2\", 2);\n\t\t\tvar expectedPrettyStr =\n\t\t\t\t\"Uint32Map (Map of Uint32):\\n\" + \" value1: 1\\n\" + \" value2: 2\\n\";\n\t\t\tvar prettyStr = \"\";\n\t\t\tmyProp.prettyPrint(function (str) {\n\t\t\t\tprettyStr += str + \"\\n\";\n\t\t\t});\n\t\t\texpect(prettyStr).to.equal(expectedPrettyStr);\n\t\t});\n\t});\n\n\tdescribe(\"squashing\", function () {\n\t\t//\n\t\t// Helper function which takes a sequence of callbacks that are suceessively executed\n\t\t// and the changes applied by the callbacks are separately tracked and squashed in a\n\t\t// a ChangeSet. This ChangeSet is then compared to the state in the property object\n\t\t//\n\t\t// Optionally, a a callback which controls the initial state before the squashing can\n\t\t// be given as first parameter\n\t\t//\n\t\tvar testChangeSetSquashing = function (in_options) {\n\t\t\tresetKeyCounter();\n\t\t\tvar testProperty = PropertyFactory.create(\"autodesk.tests:ValueMapTestPropertyID-1.0.0\");\n\n\t\t\tvar callbacks = in_options.callbacks;\n\t\t\tif (in_options.pre) {\n\t\t\t\tin_options.pre(testProperty);\n\t\t\t}\n\n\t\t\tvar initialChangeset = new ChangeSet(testProperty.serialize());\n\t\t\tinitialChangeset.setIsNormalized(true);\n\n\t\t\tvar squashedChangeset = new ChangeSet();\n\t\t\ttestProperty.cleanDirty(\n\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\t);\n\t\t\tfor (var i = 0; i < callbacks.length; i++) {\n\t\t\t\tcallbacks[i](testProperty);\n\t\t\t\tvar changes = testProperty.serialize({ dirtyOnly: true });\n\t\t\t\ttestProperty.cleanDirty(\n\t\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\t\t);\n\n\t\t\t\tsquashedChangeset.applyChangeSet(changes);\n\t\t\t}\n\n\t\t\tif (in_options.post) {\n\t\t\t\tin_options.post(squashedChangeset.getSerializedChangeSet());\n\t\t\t}\n\n\t\t\tinitialChangeset.applyChangeSet(squashedChangeset.getSerializedChangeSet());\n\t\t\texpect(initialChangeset.getSerializedChangeSet()).to.deep.equal(\n\t\t\t\ttestProperty.serialize({ dirtyOnly: false }),\n\t\t\t);\n\t\t};\n\n\t\tit(\"should work for multiple independent inserts\", function () {\n\t\t\ttestChangeSetSquashing({\n\t\t\t\tcallbacks: [insertNodeInRoot, insertNodeInRoot, insertNodeInRoot],\n\t\t\t});\n\t\t});\n\n\t\tit(\"should work for inserts followed by removes\", function () {\n\t\t\ttestChangeSetSquashing({\n\t\t\t\tcallbacks: [\n\t\t\t\t\tinsertNodeInRoot,\n\t\t\t\t\tinsertNodeInRoot,\n\t\t\t\t\tremoveFirstNodeInRoot,\n\t\t\t\t\tremoveFirstNodeInRoot,\n\t\t\t\t],\n\t\t\t\tpost: function (changeset) {\n\t\t\t\t\texpect(changeset).to.be.empty;\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\tit(\"of inserts and modifies should work\", function () {\n\t\t\ttestChangeSetSquashing({\n\t\t\t\tcallbacks: [\n\t\t\t\t\tinsertNodeInRoot,\n\t\t\t\t\tinsertNodeInRoot,\n\t\t\t\t\tinsertNodeInRoot,\n\t\t\t\t\tmodifyEntry,\n\t\t\t\t\tmodifyEntry,\n\t\t\t\t],\n\t\t\t});\n\t\t});\n\t\tit(\"an insert, modify and a remove should give an empty changeset\", function () {\n\t\t\ttestChangeSetSquashing({\n\t\t\t\tcallbacks: [insertNodeInRoot, modifyEntry, modifyEntry, removeFirstNodeInRoot],\n\t\t\t\tpost: function (changeset) {\n\t\t\t\t\texpect(changeset).to.be.empty;\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t\tit(\"should work for modifies after an already existing insert\", function () {\n\t\t\ttestChangeSetSquashing({\n\t\t\t\tpre: insertNodeInRoot,\n\t\t\t\tcallbacks: [modifyEntry, modifyEntry],\n\t\t\t});\n\t\t});\n\t\tit(\"of modify and remove after an already existing insert should work\", function () {\n\t\t\ttestChangeSetSquashing({\n\t\t\t\tpre: insertNodeInRoot,\n\t\t\t\tcallbacks: [modifyEntry, removeFirstNodeInRoot],\n\t\t\t\tpost: function (changeset) {\n\t\t\t\t\texpect(changeset[\"map<Uint32>\"].Uint32Map).to.have.all.keys(\"remove\");\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t\tit(\"of remove and insert should result in modify\", function () {\n\t\t\t// Create two nodes with the same GUID\n\t\t\ttestChangeSetSquashing({\n\t\t\t\tpre: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.insert(\"node1\", 1);\n\t\t\t\t},\n\t\t\t\tcallbacks: [\n\t\t\t\t\tremoveFirstNodeInRoot,\n\t\t\t\t\tfunction (root) {\n\t\t\t\t\t\troot._properties.Uint32Map.insert(\"node1\", 2);\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tpost: function (changeset) {\n\t\t\t\t\texpect(changeset[\"map<Uint32>\"].Uint32Map).to.have.all.keys(\"modify\");\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe(\"Rebasing\", function () {\n\t\tvar testRebasing = function (in_options) {\n\t\t\t// Prepare the initial state\n\t\t\tvar baseProperty1 = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:ValueMapTestPropertyID-1.0.0\",\n\t\t\t);\n\t\t\tif (in_options.prepare) {\n\t\t\t\tin_options.prepare(baseProperty1);\n\t\t\t}\n\t\t\t// Create two copies of this state\n\t\t\tvar baseProperty2 = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:ValueMapTestPropertyID-1.0.0\",\n\t\t\t);\n\t\t\tbaseProperty2.deserialize(baseProperty1.serialize());\n\t\t\tvar baseProperty3 = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:ValueMapTestPropertyID-1.0.0\",\n\t\t\t);\n\t\t\tbaseProperty3.deserialize(baseProperty1.serialize());\n\n\t\t\t// Make sure the states are clear\n\t\t\tbaseProperty1.cleanDirty(\n\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\t);\n\t\t\tbaseProperty2.cleanDirty(\n\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\t);\n\t\t\tbaseProperty3.cleanDirty(\n\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\t);\n\n\t\t\tvar initialChangeSet = baseProperty1.serialize();\n\n\t\t\t// Apply the operations to the two properties in parallel\n\t\t\tif (in_options.op1) {\n\t\t\t\tin_options.op1(baseProperty1);\n\t\t\t}\n\t\t\tif (in_options.op2) {\n\t\t\t\tin_options.op2(baseProperty2);\n\t\t\t}\n\n\t\t\t// Get the ChangeSets\n\t\t\tvar changeSet1 = new ChangeSet(baseProperty1.serialize({ dirtyOnly: true }));\n\t\t\tvar changeSet2 = baseProperty2.serialize({ dirtyOnly: true });\n\n\t\t\t// Perform the actual rebase\n\t\t\tvar conflicts = [];\n\t\t\tchangeSet1._rebaseChangeSet(changeSet2, conflicts);\n\n\t\t\tvar combinedChangeSet = new ChangeSet(initialChangeSet).clone();\n\t\t\tcombinedChangeSet.setIsNormalized(true);\n\t\t\tcombinedChangeSet.applyChangeSet(changeSet1);\n\t\t\tcombinedChangeSet.applyChangeSet(changeSet2);\n\n\t\t\tif (in_options.compareToSequential) {\n\t\t\t\tif (in_options.op1) {\n\t\t\t\t\tin_options.op1(baseProperty3);\n\t\t\t\t}\n\t\t\t\tif (in_options.op2) {\n\t\t\t\t\tin_options.op2(baseProperty3);\n\t\t\t\t}\n\t\t\t\tvar finalChangeSet = baseProperty3.serialize({ dirtyOnly: false });\n\t\t\t\texpect(finalChangeSet).to.be.deep.equal(combinedChangeSet.getSerializedChangeSet());\n\t\t\t}\n\n\t\t\tif (in_options.checkResult) {\n\t\t\t\tin_options.checkResult(conflicts, changeSet2, combinedChangeSet);\n\t\t\t}\n\t\t};\n\n\t\tit(\"with a NOP should be possible\", function () {\n\t\t\ttestRebasing({\n\t\t\t\top2: insertEntryInRootWithUnqiueKey(),\n\t\t\t\tcompareToSequential: true,\n\t\t\t});\n\t\t});\n\n\t\tit(\"with independent inserts should be possible\", function () {\n\t\t\ttestRebasing({\n\t\t\t\top1: insertEntryInRootWithUnqiueKey(),\n\t\t\t\top2: insertEntryInRootWithUnqiueKey(),\n\t\t\t\tcompareToSequential: true,\n\t\t\t});\n\t\t});\n\n\t\tit(\"with independent removes should be possible\", function () {\n\t\t\ttestRebasing({\n\t\t\t\tprepare: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.insert(\"entry1\", 1);\n\t\t\t\t\troot._properties.Uint32Map.insert(\"entry2\", 2);\n\t\t\t\t},\n\t\t\t\top1: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.remove(\"entry1\");\n\t\t\t\t},\n\t\t\t\top2: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.remove(\"entry2\");\n\t\t\t\t},\n\t\t\t\tcompareToSequential: true,\n\t\t\t});\n\t\t});\n\n\t\tit(\"with a modify and a remove should possible\", function () {\n\t\t\ttestRebasing({\n\t\t\t\tprepare: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.insert(\"entry1\", 1);\n\t\t\t\t},\n\t\t\t\top1: modifyEntry,\n\t\t\t\top2: removeFirstNodeInRoot,\n\t\t\t\tcompareToSequential: true,\n\t\t\t});\n\t\t});\n\n\t\tit(\"with a remove and a modify should possible\", function () {\n\t\t\ttestRebasing({\n\t\t\t\tprepare: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.insert(\"entry1\", 1);\n\t\t\t\t},\n\t\t\t\top1: removeFirstNodeInRoot,\n\t\t\t\top2: modifyEntry,\n\t\t\t\tcompareToSequential: false,\n\t\t\t\tcheckResult: function (conflicts, changeSet) {\n\t\t\t\t\texpect(conflicts).to.have.length(1);\n\t\t\t\t\texpect(conflicts[0].type).to.be.equal(\n\t\t\t\t\t\tChangeSet.ConflictType.ENTRY_MODIFIED_AFTER_REMOVE,\n\t\t\t\t\t);\n\t\t\t\t\texpect(conflicts[0].path).to.be.equal(\"Uint32Map[entry1]\");\n\t\t\t\t\texpect(ChangeSet.isEmptyChangeSet(changeSet)).to.be.ok;\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\tit(\"with two compatible removes should be possible\", function () {\n\t\t\ttestRebasing({\n\t\t\t\tprepare: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.insert(\"entry1\", 1);\n\t\t\t\t},\n\t\t\t\top1: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.remove(\"entry1\");\n\t\t\t\t},\n\t\t\t\top2: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.remove(\"entry1\");\n\t\t\t\t},\n\t\t\t\tcompareToSequential: false,\n\t\t\t\tcheckResult: function (conflicts, changeSet) {\n\t\t\t\t\texpect(ChangeSet.isEmptyChangeSet(changeSet)).to.be.ok;\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\tit(\"with two conflicting modifies should be possible and report a conflict\", function () {\n\t\t\ttestRebasing({\n\t\t\t\tprepare: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.insert(\"entry1\", 1);\n\t\t\t\t},\n\t\t\t\top1: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.set(\"entry1\", 2);\n\t\t\t\t},\n\t\t\t\top2: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.set(\"entry1\", 3);\n\t\t\t\t},\n\t\t\t\tcompareToSequential: true,\n\t\t\t\tcheckResult: function (conflicts, changeSet) {\n\t\t\t\t\texpect(conflicts).to.have.length(1);\n\t\t\t\t\texpect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);\n\t\t\t\t\texpect(conflicts[0].path).to.be.equal(\"Uint32Map[entry1]\");\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\tit(\"with modify followed by remove+insert should be a conflicting set\", function () {\n\t\t\ttestRebasing({\n\t\t\t\tprepare: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.insert(\"entry1\", 1);\n\t\t\t\t},\n\t\t\t\top1: modifyEntry,\n\t\t\t\top2: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.remove(\"entry1\");\n\t\t\t\t\troot._properties.Uint32Map.insert(\"entry1\", 2);\n\t\t\t\t},\n\t\t\t\tcompareToSequential: true,\n\t\t\t\tcheckResult: function (conflicts, changeSet) {\n\t\t\t\t\texpect(conflicts).to.have.length(1);\n\t\t\t\t\texpect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);\n\t\t\t\t\texpect(conflicts[0].path).to.be.equal(\"Uint32Map[entry1]\");\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\tit(\"with remove+insert followed by modify should be a conflicting set\", function () {\n\t\t\ttestRebasing({\n\t\t\t\tprepare: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.insert(\"entry1\", 1);\n\t\t\t\t},\n\t\t\t\top1: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.remove(\"entry1\");\n\t\t\t\t\troot._properties.Uint32Map.insert(\"entry1\", 2);\n\t\t\t\t},\n\t\t\t\top2: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.set(\"entry1\", 3);\n\t\t\t\t},\n\t\t\t\tcompareToSequential: true,\n\t\t\t\tcheckResult: function (conflicts, changeSet) {\n\t\t\t\t\texpect(conflicts).to.have.length(1);\n\t\t\t\t\texpect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);\n\t\t\t\t\texpect(conflicts[0].path).to.be.equal(\"Uint32Map[entry1]\");\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\tit(\"with conflicting inserts should report conflict\", function () {\n\t\t\ttestRebasing({\n\t\t\t\tprepare: function (root) {},\n\t\t\t\top1: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.insert(\"entry1\", 1);\n\t\t\t\t},\n\t\t\t\top2: function (root) {\n\t\t\t\t\troot._properties.Uint32Map.insert(\"entry1\", 2);\n\t\t\t\t},\n\t\t\t\tcompareToSequential: false,\n\t\t\t\tcheckResult: function (conflicts, changeSet) {\n\t\t\t\t\texpect(changeSet[\"map<Uint32>\"].Uint32Map).to.have.all.keys(\"modify\");\n\t\t\t\t\texpect(conflicts).to.have.length(1);\n\t\t\t\t\texpect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);\n\t\t\t\t\texpect(conflicts[0].path).to.be.equal(\"Uint32Map[entry1]\");\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t});\n});\n"]}
|
|
@@ -39,7 +39,11 @@ describe("ValueProperty", function () {
|
|
|
39
39
|
var vp;
|
|
40
40
|
var error;
|
|
41
41
|
try {
|
|
42
|
-
vp =
|
|
42
|
+
vp =
|
|
43
|
+
// @ts-expect-error - test violates @protected constructor of ValueProperty
|
|
44
|
+
new ValueProperty(
|
|
45
|
+
// in_params does not match ValueProperty typing, but that appears to be incorrect
|
|
46
|
+
{ id: "goodId" });
|
|
43
47
|
}
|
|
44
48
|
catch (e) {
|
|
45
49
|
error = e;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valueProperty.spec.js","sourceRoot":"","sources":["../../../src/test/properties/valueProperty.spec.js"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/* globals assert */\n\n/**\n * @fileoverview In this file, we will test ValueProperty object described in /src/properties/valueProperty.js\n */\n\nconst { Int64, Uint64 } = require(\"@fluid-experimental/property-common\");\n\nconst { PropertyFactory } = require(\"../..\");\nconst { ValueProperty } = require(\"../../properties/valueProperty\");\n\ndescribe(\"ValueProperty\", function () {\n\tvar OurTestTemplate;\n\n\t/**\n\t * Get all the objects we need in this test here.\n\t */\n\tbefore(function () {\n\t\tOurTestTemplate = {\n\t\t\ttypeid: \"autodesk.tests:TestID-1.0.0\",\n\t\t\tproperties: [\n\t\t\t\t{\n\t\t\t\t\tid: \"MyFloat\",\n\t\t\t\t\ttypeid: \"Float32\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"MyInt\",\n\t\t\t\t\ttypeid: \"Int32\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"MyBool\",\n\t\t\t\t\ttypeid: \"Bool\",\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t\tPropertyFactory._reregister(OurTestTemplate);\n\t});\n\n\tdescribe(\"Allocating ValueProperty object with all parameters\", function () {\n\t\tit(\"should succeed\", function (done) {\n\t\t\tvar vp;\n\t\t\tvar error;\n\t\t\ttry {\n\t\t\t\tvp = new ValueProperty({ id: \"goodId\" });\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t} finally {\n\t\t\t\texpect(vp).to.not.equal(null);\n\t\t\t\texpect(error).to.equal(undefined);\n\t\t\t\tdone();\n\t\t\t}\n\t\t});\n\t});\n\n\tdescribe(\"API methods\", function () {\n\t\tit(\".getValue should work\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\"Bool\");\n\t\t\tmyProp.setValue(true);\n\t\t\texpect(myProp.getValue()).to.equal(true);\n\t\t});\n\t\tit(\".setValue should work to set the value and return nothing\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\"Int32\");\n\t\t\texpect(myProp.getValue()).to.equal(0);\n\t\t\texpect(myProp.setValue(88)).to.be.undefined;\n\t\t\texpect(myProp.getValue()).to.equal(88);\n\t\t});\n\t});\n\n\tdescribe(\"Setting a ValueProperty to the same value should not dirty it\", function () {\n\t\tit(\"should not be dirty\", function (done) {\n\t\t\tvar error;\n\t\t\tvar vp;\n\t\t\ttry {\n\t\t\t\tvp = PropertyFactory.create(\"autodesk.tests:TestID-1.0.0\");\n\n\t\t\t\tvp.properties.MyBool.value = true;\n\t\t\t\tvp.properties.MyInt.value = 1.2;\n\t\t\t\tvp.properties.MyFloat.value = 1 / 3;\n\n\t\t\t\tvp.cleanDirty();\n\n\t\t\t\tvp.properties.MyBool.value = true;\n\t\t\t\tvp.properties.MyInt.value = 1.2;\n\t\t\t\tvp.properties.MyFloat.value = 1 / 3;\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t} finally {\n\t\t\t\texpect(error).to.not.equal(null);\n\t\t\t\texpect(vp).to.not.equal(undefined);\n\t\t\t\texpect(vp.isDirty()).to.equal(false);\n\t\t\t\tdone();\n\t\t\t}\n\t\t});\n\t});\n\n\tit(\"value properties should support default values\", function () {\n\t\texpect(PropertyFactory.create(\"Int8\", undefined, 10).value).to.equal(10);\n\t\texpect(PropertyFactory.create(\"Uint8\", undefined, 10).value).to.equal(10);\n\t\texpect(PropertyFactory.create(\"Int16\", undefined, 10).value).to.equal(10);\n\t\texpect(PropertyFactory.create(\"Uint16\", undefined, 10).value).to.equal(10);\n\t\texpect(PropertyFactory.create(\"Int32\", undefined, 10).value).to.equal(10);\n\t\texpect(PropertyFactory.create(\"Uint32\", undefined, 10).value).to.equal(10);\n\t\texpect(PropertyFactory.create(\"Int64\", undefined, new Int64(10, 10)).value).to.deep.equal(\n\t\t\tnew Int64(10, 10),\n\t\t);\n\t\texpect(\n\t\t\tPropertyFactory.create(\"Uint64\", undefined, new Uint64(10, 10)).value,\n\t\t).to.deep.equal(new Uint64(10, 10));\n\t\texpect(PropertyFactory.create(\"Float32\", undefined, 10).value).to.equal(10);\n\t\texpect(PropertyFactory.create(\"Float64\", undefined, 10).value).to.equal(10);\n\t\texpect(PropertyFactory.create(\"Bool\", undefined, false).value).to.equal(false);\n\t\texpect(PropertyFactory.create(\"Bool\", undefined, true).value).to.equal(true);\n\t\texpect(PropertyFactory.create(\"String\", undefined, \"test\").value).to.equal(\"test\");\n\t\texpect(PropertyFactory.create(\"Reference\", undefined, \"/\").value).to.equal(\"/\");\n\t});\n\n\tdescribe(\"ValueProperty serialize/deserialize tests\", function () {\n\t\tit(\"should correctly serialize/deserialize\", function () {\n\t\t\tvar int32Prop = PropertyFactory.create(\"Int32\");\n\t\t\tint32Prop.value = 11;\n\n\t\t\tvar serialized = int32Prop.serialize({ dirtyOnly: true });\n\t\t\texpect(serialized).to.equal(11);\n\t\t\tint32Prop.cleanDirty();\n\t\t\tserialized = int32Prop._serialize(true);\n\t\t\tassert.deepEqual(serialized, {});\n\n\t\t\tvar anotherInt32Prop = PropertyFactory.create(\"Int32\");\n\t\t\tvar deserializeResult = anotherInt32Prop.deserialize(\n\t\t\t\tint32Prop.serialize({ dirtyOnly: false }),\n\t\t\t);\n\t\t\texpect(deserializeResult).to.equal(11);\n\t\t\tdeserializeResult = anotherInt32Prop.deserialize(int32Prop._serialize(false));\n\t\t\tassert.deepEqual(deserializeResult, undefined);\n\t\t\texpect(anotherInt32Prop.value).to.be.equal(11);\n\t\t});\n\t});\n});\n"]}
|
|
1
|
+
{"version":3,"file":"valueProperty.spec.js","sourceRoot":"","sources":["../../../src/test/properties/valueProperty.spec.js"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/* globals assert */\n\n/**\n * @fileoverview In this file, we will test ValueProperty object described in /src/properties/valueProperty.js\n */\n\nconst { Int64, Uint64 } = require(\"@fluid-experimental/property-common\");\n\nconst { PropertyFactory } = require(\"../..\");\nconst { ValueProperty } = require(\"../../properties/valueProperty\");\n\ndescribe(\"ValueProperty\", function () {\n\tvar OurTestTemplate;\n\n\t/**\n\t * Get all the objects we need in this test here.\n\t */\n\tbefore(function () {\n\t\tOurTestTemplate = {\n\t\t\ttypeid: \"autodesk.tests:TestID-1.0.0\",\n\t\t\tproperties: [\n\t\t\t\t{\n\t\t\t\t\tid: \"MyFloat\",\n\t\t\t\t\ttypeid: \"Float32\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"MyInt\",\n\t\t\t\t\ttypeid: \"Int32\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"MyBool\",\n\t\t\t\t\ttypeid: \"Bool\",\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t\tPropertyFactory._reregister(OurTestTemplate);\n\t});\n\n\tdescribe(\"Allocating ValueProperty object with all parameters\", function () {\n\t\tit(\"should succeed\", function (done) {\n\t\t\tvar vp;\n\t\t\tvar error;\n\t\t\ttry {\n\t\t\t\tvp =\n\t\t\t\t\t// @ts-expect-error - test violates @protected constructor of ValueProperty\n\t\t\t\t\tnew ValueProperty(\n\t\t\t\t\t\t// in_params does not match ValueProperty typing, but that appears to be incorrect\n\t\t\t\t\t\t{ id: \"goodId\" },\n\t\t\t\t\t);\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t} finally {\n\t\t\t\texpect(vp).to.not.equal(null);\n\t\t\t\texpect(error).to.equal(undefined);\n\t\t\t\tdone();\n\t\t\t}\n\t\t});\n\t});\n\n\tdescribe(\"API methods\", function () {\n\t\tit(\".getValue should work\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\"Bool\");\n\t\t\tmyProp.setValue(true);\n\t\t\texpect(myProp.getValue()).to.equal(true);\n\t\t});\n\t\tit(\".setValue should work to set the value and return nothing\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\"Int32\");\n\t\t\texpect(myProp.getValue()).to.equal(0);\n\t\t\texpect(myProp.setValue(88)).to.be.undefined;\n\t\t\texpect(myProp.getValue()).to.equal(88);\n\t\t});\n\t});\n\n\tdescribe(\"Setting a ValueProperty to the same value should not dirty it\", function () {\n\t\tit(\"should not be dirty\", function (done) {\n\t\t\tvar error;\n\t\t\tvar vp;\n\t\t\ttry {\n\t\t\t\tvp = PropertyFactory.create(\"autodesk.tests:TestID-1.0.0\");\n\n\t\t\t\tvp.properties.MyBool.value = true;\n\t\t\t\tvp.properties.MyInt.value = 1.2;\n\t\t\t\tvp.properties.MyFloat.value = 1 / 3;\n\n\t\t\t\tvp.cleanDirty();\n\n\t\t\t\tvp.properties.MyBool.value = true;\n\t\t\t\tvp.properties.MyInt.value = 1.2;\n\t\t\t\tvp.properties.MyFloat.value = 1 / 3;\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t} finally {\n\t\t\t\texpect(error).to.not.equal(null);\n\t\t\t\texpect(vp).to.not.equal(undefined);\n\t\t\t\texpect(vp.isDirty()).to.equal(false);\n\t\t\t\tdone();\n\t\t\t}\n\t\t});\n\t});\n\n\tit(\"value properties should support default values\", function () {\n\t\texpect(PropertyFactory.create(\"Int8\", undefined, 10).value).to.equal(10);\n\t\texpect(PropertyFactory.create(\"Uint8\", undefined, 10).value).to.equal(10);\n\t\texpect(PropertyFactory.create(\"Int16\", undefined, 10).value).to.equal(10);\n\t\texpect(PropertyFactory.create(\"Uint16\", undefined, 10).value).to.equal(10);\n\t\texpect(PropertyFactory.create(\"Int32\", undefined, 10).value).to.equal(10);\n\t\texpect(PropertyFactory.create(\"Uint32\", undefined, 10).value).to.equal(10);\n\t\texpect(PropertyFactory.create(\"Int64\", undefined, new Int64(10, 10)).value).to.deep.equal(\n\t\t\tnew Int64(10, 10),\n\t\t);\n\t\texpect(\n\t\t\tPropertyFactory.create(\"Uint64\", undefined, new Uint64(10, 10)).value,\n\t\t).to.deep.equal(new Uint64(10, 10));\n\t\texpect(PropertyFactory.create(\"Float32\", undefined, 10).value).to.equal(10);\n\t\texpect(PropertyFactory.create(\"Float64\", undefined, 10).value).to.equal(10);\n\t\texpect(PropertyFactory.create(\"Bool\", undefined, false).value).to.equal(false);\n\t\texpect(PropertyFactory.create(\"Bool\", undefined, true).value).to.equal(true);\n\t\texpect(PropertyFactory.create(\"String\", undefined, \"test\").value).to.equal(\"test\");\n\t\texpect(PropertyFactory.create(\"Reference\", undefined, \"/\").value).to.equal(\"/\");\n\t});\n\n\tdescribe(\"ValueProperty serialize/deserialize tests\", function () {\n\t\tit(\"should correctly serialize/deserialize\", function () {\n\t\t\tvar int32Prop = PropertyFactory.create(\"Int32\");\n\t\t\tint32Prop.value = 11;\n\n\t\t\tvar serialized = int32Prop.serialize({ dirtyOnly: true });\n\t\t\texpect(serialized).to.equal(11);\n\t\t\tint32Prop.cleanDirty();\n\t\t\tserialized = int32Prop._serialize(true);\n\t\t\tassert.deepEqual(serialized, {});\n\n\t\t\tvar anotherInt32Prop = PropertyFactory.create(\"Int32\");\n\t\t\tvar deserializeResult = anotherInt32Prop.deserialize(\n\t\t\t\tint32Prop.serialize({ dirtyOnly: false }),\n\t\t\t);\n\t\t\texpect(deserializeResult).to.equal(11);\n\t\t\tdeserializeResult = anotherInt32Prop.deserialize(int32Prop._serialize(false));\n\t\t\tassert.deepEqual(deserializeResult, undefined);\n\t\t\texpect(anotherInt32Prop.value).to.be.equal(11);\n\t\t});\n\t});\n});\n"]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
/* globals sinon */
|
|
5
|
+
/* globals expect, sinon */
|
|
6
6
|
const { MSG } = require("@fluid-experimental/property-common").constants;
|
|
7
7
|
const { generateGUID } = require("@fluid-experimental/property-common").GuidUtils;
|
|
8
8
|
const { PropertyFactory } = require("..");
|
|
@@ -2845,6 +2845,11 @@ describe("Template registration", function () {
|
|
|
2845
2845
|
this.sinon.stub(console, "warn");
|
|
2846
2846
|
myPropertyFactory = new PropertyFactory.constructor();
|
|
2847
2847
|
});
|
|
2848
|
+
/** @returns {number} count of calls to console.warn */
|
|
2849
|
+
function consoleWarnCallCount() {
|
|
2850
|
+
// @ts-expect-error - sinon adds the callCount property to the stubbed function
|
|
2851
|
+
return console.warn.callCount;
|
|
2852
|
+
}
|
|
2848
2853
|
afterEach(function () {
|
|
2849
2854
|
this.sinon.restore();
|
|
2850
2855
|
});
|
|
@@ -2854,7 +2859,7 @@ describe("Template registration", function () {
|
|
|
2854
2859
|
it("should print a warning when registering an existing template that is not different from what is in the registry", function () {
|
|
2855
2860
|
myPropertyFactory.register(ColorID["1-0-0"].original);
|
|
2856
2861
|
myPropertyFactory.register(ColorID["1-0-0"].original);
|
|
2857
|
-
expect(
|
|
2862
|
+
expect(consoleWarnCallCount()).to.equal(1);
|
|
2858
2863
|
});
|
|
2859
2864
|
it("should accept registering a different template from what is in the registry if it is semantically equivalent", function () {
|
|
2860
2865
|
var testPropertyTypeId = "TEST:array.Float32-0.0.1";
|
|
@@ -2905,17 +2910,17 @@ describe("Template registration", function () {
|
|
|
2905
2910
|
myPropertyFactory.register(ColorID["1-1-0"].goodSemver);
|
|
2906
2911
|
myPropertyFactory.register(ColorID["1-0-0"].original);
|
|
2907
2912
|
myPropertyFactory.register(ColorID["1-0-1"].goodSemver);
|
|
2908
|
-
expect(
|
|
2913
|
+
expect(consoleWarnCallCount()).to.equal(0);
|
|
2909
2914
|
});
|
|
2910
2915
|
it("should register a new template with the PATCH version updated", function () {
|
|
2911
2916
|
myPropertyFactory.register(ColorID["1-0-0"].original);
|
|
2912
2917
|
myPropertyFactory.register(ColorID["1-0-1"].goodSemver);
|
|
2913
|
-
expect(
|
|
2918
|
+
expect(consoleWarnCallCount()).to.equal(0);
|
|
2914
2919
|
});
|
|
2915
2920
|
it("should register a new template with the MINOR version updated", function () {
|
|
2916
2921
|
myPropertyFactory.register(ColorID["1-0-0"].original);
|
|
2917
2922
|
myPropertyFactory.register(ColorID["1-1-0"].goodSemver);
|
|
2918
|
-
expect(
|
|
2923
|
+
expect(consoleWarnCallCount()).to.equal(0);
|
|
2919
2924
|
});
|
|
2920
2925
|
it("should print a warning when registering a new template with the wrong version updated", function () {
|
|
2921
2926
|
myPropertyFactory.register(ColorID["1-0-0"].original);
|
|
@@ -2929,12 +2934,12 @@ describe("Template registration", function () {
|
|
|
2929
2934
|
myPropertyFactory = new PropertyFactory.constructor();
|
|
2930
2935
|
myPropertyFactory.register(ColorID["1-1-0"].badSemver2);
|
|
2931
2936
|
myPropertyFactory._registerRemoteTemplate(ColorID["1-0-0"].original, generateGUID());
|
|
2932
|
-
expect(
|
|
2937
|
+
expect(consoleWarnCallCount()).to.equal(4);
|
|
2933
2938
|
});
|
|
2934
2939
|
it("should register a new template with the MAJOR version updated", function () {
|
|
2935
2940
|
myPropertyFactory.register(ColorID["1-0-0"].original);
|
|
2936
2941
|
myPropertyFactory.register(ColorID["2-0-0"]);
|
|
2937
|
-
expect(
|
|
2942
|
+
expect(consoleWarnCallCount()).to.equal(0);
|
|
2938
2943
|
});
|
|
2939
2944
|
it("should register a versioned remote template", function () {
|
|
2940
2945
|
myPropertyFactory._registerRemoteTemplate(ColorID["1-0-0"].original, generateGUID());
|
|
@@ -2947,7 +2952,7 @@ describe("Template registration", function () {
|
|
|
2947
2952
|
myPropertyFactory = new PropertyFactory.constructor();
|
|
2948
2953
|
myPropertyFactory._registerRemoteTemplate(ColorID["1-0-0"].original, generateGUID());
|
|
2949
2954
|
myPropertyFactory.register(ColorID["1-0-0"].original);
|
|
2950
|
-
expect(
|
|
2955
|
+
expect(consoleWarnCallCount()).to.equal(0);
|
|
2951
2956
|
});
|
|
2952
2957
|
// biome-ignore format: https://github.com/biomejs/biome/issues/4202
|
|
2953
2958
|
it("should fail when registering a versioned remote template that exists" +
|
|
@@ -2964,7 +2969,7 @@ describe("Template registration", function () {
|
|
|
2964
2969
|
myPropertyFactory.register(ColorID["2-0-0"]);
|
|
2965
2970
|
myPropertyFactory._registerRemoteTemplate(ColorID["1-1-0"].goodSemver, scope);
|
|
2966
2971
|
myPropertyFactory._registerRemoteTemplate(ColorID["1-0-1"].goodSemver, scope);
|
|
2967
|
-
expect(
|
|
2972
|
+
expect(consoleWarnCallCount()).to.equal(0);
|
|
2968
2973
|
});
|
|
2969
2974
|
it("should register a local template even when there are other versions of the same template in the remote registry", function () {
|
|
2970
2975
|
var scope = generateGUID();
|
|
@@ -2975,7 +2980,7 @@ describe("Template registration", function () {
|
|
|
2975
2980
|
myPropertyFactory._registerRemoteTemplate(require("./validation/goodColorPalette"), scope2);
|
|
2976
2981
|
myPropertyFactory.register(ColorID["1-0-0"].original);
|
|
2977
2982
|
myPropertyFactory.register(ColorID["2-0-0"]);
|
|
2978
|
-
expect(
|
|
2983
|
+
expect(consoleWarnCallCount()).to.equal(0);
|
|
2979
2984
|
});
|
|
2980
2985
|
it("`registered` event is triggered when registering a template", function (done) {
|
|
2981
2986
|
var typeid = "test:schemaReg-1.0.0";
|