@fluid-experimental/property-properties 2.100.0 → 2.101.1
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":"int64Property.spec.js","sourceRoot":"","sources":["../../../src/test/properties/int64Property.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 the functions of 64 bit integer properties\n * described in /src/shared/property_sets/properties/int_property.js\n */\n\nvar PropertyFactory,\n\tnodeProp,\n\tcontainedInt64Prop,\n\tdirectInt64Prop,\n\tInt64,\n\tUint64,\n\tBaseProperty,\n\tChangeSet,\n\tTestInt64ArrayTemplate,\n\tMSG;\n\ndescribe(\"Test Int64Property\", function () {\n\t/**\n\t * Get all the objects we need in this test here.\n\t */\n\tbefore(function () {\n\t\tPropertyFactory = require(\"../..\").PropertyFactory;\n\t\tBaseProperty = require(\"../..\").BaseProperty;\n\t\tChangeSet = require(\"@fluid-experimental/property-changeset\").ChangeSet;\n\t\tInt64 = require(\"@fluid-experimental/property-common\").Int64;\n\t\tUint64 = require(\"@fluid-experimental/property-common\").Uint64;\n\t\tMSG = require(\"@fluid-experimental/property-common\").constants.MSG;\n\n\t\tTestInt64ArrayTemplate = {\n\t\t\ttypeid: \"autodesk.tests:Int64TestID-1.0.0\",\n\t\t\tproperties: [\n\t\t\t\t{ id: \"myInt64\", typeid: \"Int64\" },\n\t\t\t\t{ id: \"myUint64\", typeid: \"Uint64\" },\n\t\t\t],\n\t\t};\n\t\tPropertyFactory._reregister(TestInt64ArrayTemplate);\n\n\t\tnodeProp = PropertyFactory.create(\"autodesk.tests:Int64TestID-1.0.0\");\n\t\tcontainedInt64Prop = nodeProp._properties.myInt64;\n\t\tdirectInt64Prop = PropertyFactory.create(\"Int64\");\n\t});\n\n\tit(\"should correctly set/get the values\", function () {\n\t\tcontainedInt64Prop.setValueHigh(33);\n\t\tcontainedInt64Prop.setValueLow(22);\n\t\texpect(containedInt64Prop.getValueLow()).to.be.equal(22);\n\t\texpect(containedInt64Prop.getValueHigh()).to.be.equal(33);\n\t\texpect(containedInt64Prop.value.getValueLow()).to.be.equal(22);\n\t\texpect(containedInt64Prop.value.getValueHigh()).to.be.equal(33);\n\t\tcontainedInt64Prop.value = new Int64(11, 12);\n\t\texpect(containedInt64Prop.getValueLow()).to.be.equal(11);\n\t\texpect(containedInt64Prop.getValueHigh()).to.be.equal(12);\n\t\texpect(containedInt64Prop.value.getValueLow()).to.be.equal(11);\n\t\texpect(containedInt64Prop.value.getValueHigh()).to.be.equal(12);\n\n\t\t// changing the value inderectly should be impossible\n\t\texpect(containedInt64Prop.value.setValueLow).to.not.exist;\n\t\texpect(containedInt64Prop.value.setValueHigh).to.not.exist;\n\t});\n\n\tit(\"should correctly setValue when passed a number\", function () {\n\t\tconst prop = PropertyFactory.create(\"Int64\");\n\t\tconst value = 123;\n\t\tprop.setValue(value);\n\t\texpect(prop.getValueLow()).to.equal(value);\n\t\texpect(prop.getValueHigh()).to.equal(0);\n\t\texpect(prop.toString()).to.equal(value.toString());\n\t});\n\n\tit(\"should correctly setValue when passed a negative number\", function () {\n\t\tconst prop = PropertyFactory.create(\"Int64\");\n\t\tconst value = -123;\n\t\tprop.setValue(value);\n\t\texpect(prop.toString()).to.equal(value.toString());\n\t});\n\n\tit(\"should correctly setValue when passed a large number (above MAX_SAFE_INT)\", function () {\n\t\tconst prop = PropertyFactory.create(\"Int64\");\n\t\tconst value = Math.pow(2, 53) - 1000;\n\t\tprop.setValue(value);\n\n\t\texpect(prop.toString()).to.equal(value.toString());\n\t\texpect(prop.getValueLow()).to.equal(4294966296);\n\t\texpect(prop.getValueHigh()).to.equal(2097151);\n\t});\n\n\tit(\"should correctly setValue when passed a large negative number (below MIN_SAFE_INT)\", function () {\n\t\tconst prop = PropertyFactory.create(\"Int64\");\n\t\tconst value = -Math.pow(2, 53) + 1000;\n\t\tprop.setValue(value);\n\n\t\texpect(prop.toString()).to.equal(value.toString());\n\t\texpect(prop.getValueLow()).to.equal(1000);\n\t\texpect(prop.getValueHigh()).to.equal(-2097152);\n\t});\n\n\tit(\"should correctly setValue when passed a string\", function () {\n\t\tconst prop = PropertyFactory.create(\"Int64\");\n\t\tprop.setValue(\"1234567890\");\n\t\texpect(prop.toString()).to.equal(\"1234567890\");\n\t});\n\n\tit(\"should throw error when passed a string with non numbers\", function () {\n\t\tconst prop = PropertyFactory.create(\"Int64\");\n\t\texpect(prop.setValue.bind(prop, \"error\")).to.throw(\n\t\t\tMSG.CANNOT_PARSE_INVALID_CHARACTERS + \"error\",\n\t\t);\n\t});\n\n\tit(\"should correctly convert to string\", function () {\n\t\tcontainedInt64Prop.value = new Int64(4294967295, 2147483647); // 2^63-1\n\t\texpect(containedInt64Prop.toString()).to.be.equal(\"9223372036854775807\");\n\n\t\tcontainedInt64Prop.value = new Int64(0, 2147483648); // -2^63\n\t\texpect(containedInt64Prop.toString()).to.be.equal(\"-9223372036854775808\");\n\n\t\tcontainedInt64Prop.value = new Int64(845094001, 1810905006);\n\t\texpect(containedInt64Prop.toString()).to.be.equal(\"7777777777777777777\");\n\n\t\tcontainedInt64Prop.value = new Int64(845094001, 0);\n\t\texpect(containedInt64Prop.toString()).to.be.equal(\"845094001\");\n\n\t\tcontainedInt64Prop.value = new Int64(0, 845094001);\n\t\texpect(containedInt64Prop.toString()).to.be.equal(\"3629651096340791296\");\n\n\t\tcontainedInt64Prop.value = new Int64(0, 0xffffffff);\n\t\texpect(containedInt64Prop.toString()).to.be.equal(\"-4294967296\");\n\n\t\tcontainedInt64Prop.value = new Int64(0xffffffff, 0xffffffff);\n\t\texpect(containedInt64Prop.toString()).to.be.equal(\"-1\");\n\t});\n\n\tit(\"int64.fromString should work correctly\", function () {\n\t\tcontainedInt64Prop.value = new Int64(0, 0);\n\t\texpect(containedInt64Prop.toString()).to.be.equal(\"0\");\n\n\t\tcontainedInt64Prop.fromString(\"3629651096340791296\");\n\t\texpect(containedInt64Prop.value.getValueHigh()).to.be.equal(845094001);\n\t\texpect(containedInt64Prop.value.getValueLow()).to.be.equal(0);\n\n\t\tcontainedInt64Prop.fromString(\"9223372036854775807\");\n\t\texpect(containedInt64Prop.value.getValueHigh()).to.be.equal(2147483647);\n\t\texpect(containedInt64Prop.value.getValueLow()).to.be.equal(4294967295);\n\n\t\tcontainedInt64Prop.fromString(\"-1\");\n\t\texpect(containedInt64Prop.toString()).to.be.equal(\"-1\");\n\n\t\tcontainedInt64Prop.fromString(\"0\");\n\t\texpect(containedInt64Prop.toString()).to.be.equal(\"0\");\n\n\t\tcontainedInt64Prop.fromString(\"18446744073709551615\");\n\t\texpect(containedInt64Prop.value.getValueHigh()).to.be.equal(0xffffffff);\n\t\texpect(containedInt64Prop.value.getValueLow()).to.be.equal(0xffffffff);\n\t});\n\n\tit(\"should correctly serialize/deserialize\", function () {\n\t\tcontainedInt64Prop.value = new Int64(11, 12);\n\n\t\tvar serialized = containedInt64Prop.serialize({ dirtyOnly: true });\n\t\texpect(serialized).to.deep.equal([11, 12]);\n\t\tcontainedInt64Prop.cleanDirty();\n\t\tserialized = containedInt64Prop.serialize({ dirtyOnly: true });\n\t\tassert.deepEqual(serialized, {});\n\n\t\tvar deserializeResult = directInt64Prop.deserialize(\n\t\t\tcontainedInt64Prop.serialize({ dirtyOnly: false }),\n\t\t);\n\t\texpect(deserializeResult).to.deep.equal([11, 12]);\n\t\tdeserializeResult = directInt64Prop.deserialize(\n\t\t\tcontainedInt64Prop.serialize({ dirtyOnly: false }),\n\t\t);\n\t\texpect(deserializeResult).to.not.exist;\n\t\texpect(directInt64Prop.getValueLow()).to.be.equal(11);\n\t\texpect(directInt64Prop.getValueHigh()).to.be.equal(12);\n\n\t\tvar otherNodeProp = PropertyFactory.create(\"autodesk.tests:Int64TestID-1.0.0\");\n\t\totherNodeProp.deserialize(nodeProp.serialize({ dirtyOnly: false }));\n\t\texpect(otherNodeProp._properties.myInt64.getValueLow()).to.be.equal(11);\n\t\texpect(otherNodeProp._properties.myInt64.getValueHigh()).to.be.equal(12);\n\t});\n\n\tit(\"should correctly dirty on set\", function () {\n\t\tdirectInt64Prop.cleanDirty();\n\t\texpect(directInt64Prop.isDirty()).to.be.false;\n\t\tdirectInt64Prop.value = new Int64(32, 42);\n\t\texpect(directInt64Prop.isDirty()).to.be.true;\n\n\t\tdirectInt64Prop.cleanDirty();\n\t\texpect(directInt64Prop.isDirty()).to.be.false;\n\t\tdirectInt64Prop.setValueHigh(66);\n\t\texpect(directInt64Prop.isDirty()).to.be.true;\n\t\tdirectInt64Prop.cleanDirty();\n\t\tdirectInt64Prop.setValueHigh(66);\n\t\texpect(directInt64Prop.isDirty()).to.be.false;\n\n\t\tdirectInt64Prop.cleanDirty();\n\t\texpect(directInt64Prop.isDirty()).to.be.false;\n\t\tdirectInt64Prop.setValueLow(33);\n\t\texpect(directInt64Prop.isDirty()).to.be.true;\n\t\tdirectInt64Prop.cleanDirty();\n\t\tdirectInt64Prop.setValueLow(33);\n\t\texpect(directInt64Prop.isDirty()).to.be.false;\n\t});\n\n\tit(\"should not violate the ChangeSet Specificaton\", function () {\n\t\tcontainedInt64Prop.value = new Int64(32, 42);\n\t\tnodeProp._properties.myUint64.value = new Uint64(99, 110);\n\t\texpect(nodeProp.serialize({ dirtyOnly: false })).to.deep.equal({\n\t\t\tInt64: {\n\t\t\t\tmyInt64: [32, 42],\n\t\t\t},\n\t\t\tUint64: {\n\t\t\t\tmyUint64: [99, 110],\n\t\t\t},\n\t\t});\n\t});\n\n\tdescribe(\"squashing\", function () {\n\t\t// Helper function to test the squashing for different containers\n\t\tvar innerTestChangeSetSquashing = function (\n\t\t\tio_testProperty,\n\t\t\tio_intProperty,\n\t\t\tio_initialChangeset,\n\t\t\tin_options,\n\t\t\tin_collection,\n\t\t) {\n\t\t\tvar squashedChangeset = new ChangeSet();\n\t\t\tio_testProperty.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\tvar callbacks = in_options.callbacks;\n\t\t\tfor (var i = 0; i < callbacks.length; i++) {\n\t\t\t\tcallbacks[i](io_intProperty);\n\t\t\t\tvar changes = io_testProperty.serialize({ dirtyOnly: true });\n\t\t\t\tio_testProperty.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\t\t\t\tsquashedChangeset.applyChangeSet(changes);\n\t\t\t\t// regression test for not-deep-copying array changes\n\t\t\t\tif (changes.modify) {\n\t\t\t\t\tchanges.modify.Int64.intProperty[0] = 888;\n\t\t\t\t} else {\n\t\t\t\t\tchanges.Int64.myInt64[0] = 999;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tio_initialChangeset.applyChangeSet(squashedChangeset.getSerializedChangeSet());\n\t\t};\n\n\t\t//\n\t\t// Helper function which takes a sequence of callbacks that are successively 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\tvar testProperty = PropertyFactory.create(\"autodesk.tests:Int64TestID-1.0.0\");\n\t\t\tvar nodeTestProperty = PropertyFactory.create(\"NodeProperty\");\n\t\t\tvar int64InNodeProperty = PropertyFactory.create(\"Int64\");\n\t\t\tnodeTestProperty.insert(\"intProperty\", int64InNodeProperty);\n\t\t\tvar mapTestProperty = PropertyFactory.create(\"map<>\");\n\t\t\tvar int64InMapProperty = PropertyFactory.create(\"Int64\");\n\t\t\tmapTestProperty.insert(\"intProperty\", int64InMapProperty);\n\n\t\t\tif (in_options.pre) {\n\t\t\t\tin_options.pre(testProperty._properties.intProperty);\n\t\t\t\tin_options.pre(int64InNodeProperty);\n\t\t\t\tin_options.pre(int64InMapProperty);\n\t\t\t}\n\n\t\t\tvar initialChangeset = new ChangeSet(testProperty.serialize({ dirtyOnly: false }));\n\t\t\tinitialChangeset.setIsNormalized(true);\n\t\t\tvar initialChangesetNode = new ChangeSet(\n\t\t\t\tnodeTestProperty.serialize({ dirtyOnly: false }),\n\t\t\t);\n\t\t\tinitialChangesetNode.setIsNormalized(true);\n\t\t\tvar initialChangesetMap = new ChangeSet(mapTestProperty.serialize({ dirtyOnly: false }));\n\t\t\tinitialChangesetMap.setIsNormalized(true);\n\n\t\t\tinnerTestChangeSetSquashing(\n\t\t\t\ttestProperty,\n\t\t\t\ttestProperty._properties.myInt64,\n\t\t\t\tinitialChangeset,\n\t\t\t\tin_options,\n\t\t\t);\n\t\t\tinnerTestChangeSetSquashing(\n\t\t\t\tnodeTestProperty,\n\t\t\t\tint64InNodeProperty,\n\t\t\t\tinitialChangesetNode,\n\t\t\t\tin_options,\n\t\t\t\ttrue,\n\t\t\t);\n\t\t\tinnerTestChangeSetSquashing(\n\t\t\t\tmapTestProperty,\n\t\t\t\tint64InMapProperty,\n\t\t\t\tinitialChangesetMap,\n\t\t\t\tin_options,\n\t\t\t\ttrue,\n\t\t\t);\n\n\t\t\tvar initialChangeset = initialChangeset.getSerializedChangeSet().Int64.intProperty;\n\t\t\texpect(initialChangeset).to.deep.equal(\n\t\t\t\ttestProperty.serialize({ dirtyOnly: false }).Int64.intProperty,\n\t\t\t);\n\n\t\t\tvar nodeInitialChangeset =\n\t\t\t\tinitialChangesetNode.getSerializedChangeSet().insert.Int64.intProperty;\n\t\t\texpect(nodeInitialChangeset).to.deep.equal(\n\t\t\t\tnodeTestProperty.serialize({ dirtyOnly: false }).insert.Int64.intProperty,\n\t\t\t);\n\n\t\t\tvar mapInitialChangeset =\n\t\t\t\tinitialChangesetMap.getSerializedChangeSet().insert.Int64.intProperty;\n\t\t\texpect(mapInitialChangeset).to.deep.equal(\n\t\t\t\tmapTestProperty.serialize({ dirtyOnly: false }).insert.Int64.intProperty,\n\t\t\t);\n\t\t};\n\n\t\tit(\"should correctly squash 64bit properties\", function () {\n\t\t\ttestChangeSetSquashing({\n\t\t\t\tcallbacks: [\n\t\t\t\t\tfunction (io_prop) {\n\t\t\t\t\t\tio_prop.setValueHigh(1);\n\t\t\t\t\t},\n\t\t\t\t\tfunction (io_prop) {\n\t\t\t\t\t\tio_prop.setValueHigh(2);\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t});\n\n\t\tit(\"should correctly squash low/high 64bit property changes\", function () {\n\t\t\ttestChangeSetSquashing({\n\t\t\t\tcallbacks: [\n\t\t\t\t\tfunction (io_prop) {\n\t\t\t\t\t\tio_prop.setValueHigh(1);\n\t\t\t\t\t},\n\t\t\t\t\tfunction (io_prop) {\n\t\t\t\t\t\tio_prop.setValueLow(2);\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t});\n\n\t\tit(\"should squash two ChangeSets, one inserts the other modifies the same Int64 property\", function () {\n\t\t\tvar nodeTestProperty = PropertyFactory.create(\"NodeProperty\");\n\t\t\tvar int64Property = PropertyFactory.create(\"Int64\");\n\t\t\tnodeTestProperty.insert(\"myProp\", int64Property);\n\n\t\t\tvar changeSet1 = new ChangeSet(nodeTestProperty.serialize({ dirtyOnly: true }));\n\n\t\t\tnodeTestProperty.cleanDirty();\n\t\t\tnodeTestProperty.resolvePath(\"myProp\").setValueHigh(100);\n\t\t\tvar changeSet2 = new ChangeSet(nodeTestProperty.serialize({ dirtyOnly: true }));\n\n\t\t\tvar nodeTestProperty = PropertyFactory.create(\"NodeProperty\");\n\t\t\tvar int64Property = PropertyFactory.create(\"Int64\");\n\t\t\tint64Property.setValueHigh(100);\n\t\t\tnodeTestProperty.insert(\"myProp\", int64Property);\n\t\t\tvar expectedChangeSet = nodeTestProperty.serialize({ dirtyOnly: true });\n\n\t\t\tchangeSet1.applyChangeSet(changeSet2);\n\n\t\t\texpect(\n\t\t\t\tchangeSet1.getSerializedChangeSet().insert.Int64.myProp ===\n\t\t\t\t\tchangeSet2.getSerializedChangeSet().modify.Int64.myProp,\n\t\t\t).to.be.false;\n\t\t\texpect(changeSet1.getSerializedChangeSet()).to.eql(expectedChangeSet);\n\t\t});\n\n\t\tit(\"should squash two ChangeSets, one inserts the other modifies the same Int64 property\", function () {\n\t\t\tvar nodeTestProperty = PropertyFactory.create(\"NodeProperty\");\n\t\t\tvar Uint64Property = PropertyFactory.create(\"Uint64\");\n\t\t\tnodeTestProperty.insert(\"myProp\", Uint64Property);\n\n\t\t\tvar changeSet1 = new ChangeSet(nodeTestProperty.serialize({ dirtyOnly: true }));\n\n\t\t\tnodeTestProperty.cleanDirty();\n\t\t\tnodeTestProperty.resolvePath(\"myProp\").setValueHigh(100);\n\t\t\tvar changeSet2 = new ChangeSet(nodeTestProperty.serialize({ dirtyOnly: true }));\n\n\t\t\tvar nodeTestProperty = PropertyFactory.create(\"NodeProperty\");\n\t\t\tvar Uint64Property = PropertyFactory.create(\"Uint64\");\n\t\t\tUint64Property.setValueHigh(100);\n\t\t\tnodeTestProperty.insert(\"myProp\", Uint64Property);\n\t\t\tvar expectedChangeSet = nodeTestProperty.serialize({ dirtyOnly: true });\n\n\t\t\tchangeSet1.applyChangeSet(changeSet2);\n\n\t\t\texpect(\n\t\t\t\tchangeSet1.getSerializedChangeSet().insert.Uint64.myProp ===\n\t\t\t\t\tchangeSet2.getSerializedChangeSet().modify.Uint64.myProp,\n\t\t\t).to.be.false;\n\t\t\texpect(changeSet1.getSerializedChangeSet()).to.eql(expectedChangeSet);\n\t\t});\n\t});\n\n\tdescribe(\"rebasing\", function () {\n\t\tvar createPropertyForRebaseTestByTemplate = function () {\n\t\t\treturn PropertyFactory.create(\"autodesk.tests:Int64TestID-1.0.0\");\n\t\t};\n\n\t\tvar createNodePropertyForRebase = function () {\n\t\t\tvar nodeTestProperty = PropertyFactory.create(\"NodeProperty\");\n\t\t\tvar int64InNodeProperty = PropertyFactory.create(\"Int64\");\n\t\t\tnodeTestProperty.insert(\"myInt64\", int64InNodeProperty);\n\t\t\treturn nodeTestProperty;\n\t\t};\n\n\t\tvar createMapPropertyForRebase = function () {\n\t\t\tvar mapTestProperty = PropertyFactory.create(\"map<>\");\n\t\t\tvar int64InNodeProperty = PropertyFactory.create(\"Int64\");\n\t\t\tmapTestProperty.insert(\"myInt64\", int64InNodeProperty);\n\t\t\treturn mapTestProperty;\n\t\t};\n\n\t\tvar getIntPropertyFromNode = function (in_testProperty) {\n\t\t\treturn in_testProperty._properties.myInt64;\n\t\t};\n\n\t\tvar getIntPropertyFromMap = function (in_testProperty) {\n\t\t\treturn in_testProperty.get(\"myInt64\");\n\t\t};\n\n\t\tvar testRebasingInner = function (\n\t\t\tin_creator,\n\t\t\tin_getInnerProperty,\n\t\t\tin_options,\n\t\t\tin_isCollection,\n\t\t) {\n\t\t\t// Prepare the initial state\n\t\t\tvar baseProperty1 = in_creator();\n\t\t\tif (in_options.prepare) {\n\t\t\t\tin_options.prepare(in_getInnerProperty(baseProperty1));\n\t\t\t}\n\t\t\t// Create two copies of this state\n\t\t\tvar baseProperty2 = in_creator();\n\t\t\tbaseProperty2.deserialize(baseProperty1.serialize({ dirtyOnly: false }));\n\t\t\tvar baseProperty3 = in_creator();\n\t\t\tbaseProperty3.deserialize(baseProperty1.serialize({ dirtyOnly: false }));\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({ dirtyOnly: false });\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(in_getInnerProperty(baseProperty1));\n\t\t\t}\n\t\t\tif (in_options.op2) {\n\t\t\t\tin_options.op2(in_getInnerProperty(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.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(in_getInnerProperty(baseProperty3));\n\t\t\t\t}\n\t\t\t\tif (in_options.op2) {\n\t\t\t\t\tin_options.op2(in_getInnerProperty(baseProperty3));\n\t\t\t\t}\n\t\t\t\tvar finalChangeSet = baseProperty3.serialize({ dirtyOnly: false });\n\t\t\t\tif (in_isCollection && finalChangeSet.insert) {\n\t\t\t\t\tfinalChangeSet = finalChangeSet.insert;\n\t\t\t\t}\n\n\t\t\t\tvar combinedSerialized = combinedChangeSet.getSerializedChangeSet();\n\t\t\t\tif (in_isCollection && combinedSerialized.insert) {\n\t\t\t\t\tcombinedSerialized = combinedSerialized.insert;\n\t\t\t\t}\n\n\t\t\t\texpect(combinedSerialized).to.deep.equal(finalChangeSet);\n\t\t\t}\n\n\t\t\tif (in_options.checkResult) {\n\t\t\t\tif (in_isCollection && changeSet2.modify) {\n\t\t\t\t\tchangeSet2 = changeSet2.modify;\n\t\t\t\t}\n\t\t\t\tin_options.checkResult(conflicts, changeSet2, combinedChangeSet);\n\t\t\t}\n\t\t};\n\n\t\tvar testRebasing = function (in_options) {\n\t\t\ttestRebasingInner(\n\t\t\t\tcreatePropertyForRebaseTestByTemplate,\n\t\t\t\tgetIntPropertyFromNode,\n\t\t\t\tin_options,\n\t\t\t);\n\t\t\ttestRebasingInner(createNodePropertyForRebase, getIntPropertyFromNode, in_options, true);\n\t\t\ttestRebasingInner(createMapPropertyForRebase, getIntPropertyFromMap, in_options, true);\n\t\t};\n\n\t\tit(\"with two modifies should be possible and report a conflict\", function () {\n\t\t\ttestRebasing({\n\t\t\t\top1: function (io_prop) {\n\t\t\t\t\tio_prop.setValueHigh(1);\n\t\t\t\t},\n\t\t\t\top2: function (io_prop) {\n\t\t\t\t\tio_prop.setValueHigh(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(changeSet.Int64.myInt64).to.deep.equal([0, 2]);\n\t\t\t\t\texpect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\tit(\"with low/high modifies should be possible and report a conflict\", function () {\n\t\t\ttestRebasing({\n\t\t\t\top1: function (io_prop) {\n\t\t\t\t\tio_prop.setValueHigh(1);\n\t\t\t\t},\n\t\t\t\top2: function (io_prop) {\n\t\t\t\t\tio_prop.setValueLow(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(conflicts).to.have.length(1);\n\t\t\t\t\texpect(changeSet.Int64.myInt64).to.deep.equal([2, 0]);\n\t\t\t\t\texpect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t});\n});\n"]}
|
|
1
|
+
{"version":3,"file":"int64Property.spec.js","sourceRoot":"","sources":["../../../src/test/properties/int64Property.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 the functions of 64 bit integer properties\n * described in /src/shared/property_sets/properties/int_property.js\n */\n\nvar PropertyFactory,\n\tnodeProp,\n\tcontainedInt64Prop,\n\tdirectInt64Prop,\n\tInt64,\n\tUint64,\n\tBaseProperty,\n\tChangeSet,\n\tTestInt64ArrayTemplate,\n\tMSG;\n\ndescribe(\"Test Int64Property\", function () {\n\t/**\n\t * Get all the objects we need in this test here.\n\t */\n\tbefore(function () {\n\t\tPropertyFactory = require(\"../..\").PropertyFactory;\n\t\tBaseProperty = require(\"../..\").BaseProperty;\n\t\tChangeSet = require(\"@fluid-experimental/property-changeset\").ChangeSet;\n\t\tInt64 = require(\"@fluid-experimental/property-common\").Int64;\n\t\tUint64 = require(\"@fluid-experimental/property-common\").Uint64;\n\t\tMSG = require(\"@fluid-experimental/property-common\").constants.MSG;\n\n\t\tTestInt64ArrayTemplate = {\n\t\t\ttypeid: \"autodesk.tests:Int64TestID-1.0.0\",\n\t\t\tproperties: [\n\t\t\t\t{ id: \"myInt64\", typeid: \"Int64\" },\n\t\t\t\t{ id: \"myUint64\", typeid: \"Uint64\" },\n\t\t\t],\n\t\t};\n\t\tPropertyFactory._reregister(TestInt64ArrayTemplate);\n\n\t\tnodeProp = PropertyFactory.create(\"autodesk.tests:Int64TestID-1.0.0\");\n\t\tcontainedInt64Prop = nodeProp._properties.myInt64;\n\t\tdirectInt64Prop = PropertyFactory.create(\"Int64\");\n\t});\n\n\tit(\"should correctly set/get the values\", function () {\n\t\tcontainedInt64Prop.setValueHigh(33);\n\t\tcontainedInt64Prop.setValueLow(22);\n\t\texpect(containedInt64Prop.getValueLow()).to.be.equal(22);\n\t\texpect(containedInt64Prop.getValueHigh()).to.be.equal(33);\n\t\texpect(containedInt64Prop.value.getValueLow()).to.be.equal(22);\n\t\texpect(containedInt64Prop.value.getValueHigh()).to.be.equal(33);\n\t\tcontainedInt64Prop.value = new Int64(11, 12);\n\t\texpect(containedInt64Prop.getValueLow()).to.be.equal(11);\n\t\texpect(containedInt64Prop.getValueHigh()).to.be.equal(12);\n\t\texpect(containedInt64Prop.value.getValueLow()).to.be.equal(11);\n\t\texpect(containedInt64Prop.value.getValueHigh()).to.be.equal(12);\n\n\t\t// changing the value inderectly should be impossible\n\t\texpect(containedInt64Prop.value.setValueLow).to.not.exist;\n\t\texpect(containedInt64Prop.value.setValueHigh).to.not.exist;\n\t});\n\n\tit(\"should correctly setValue when passed a number\", function () {\n\t\tconst prop = PropertyFactory.create(\"Int64\");\n\t\tconst value = 123;\n\t\tprop.setValue(value);\n\t\texpect(prop.getValueLow()).to.equal(value);\n\t\texpect(prop.getValueHigh()).to.equal(0);\n\t\texpect(prop.toString()).to.equal(value.toString());\n\t});\n\n\tit(\"should correctly setValue when passed a negative number\", function () {\n\t\tconst prop = PropertyFactory.create(\"Int64\");\n\t\tconst value = -123;\n\t\tprop.setValue(value);\n\t\texpect(prop.toString()).to.equal(value.toString());\n\t});\n\n\tit(\"should correctly setValue when passed a large number (above MAX_SAFE_INT)\", function () {\n\t\tconst prop = PropertyFactory.create(\"Int64\");\n\t\tconst value = Math.pow(2, 53) - 1000;\n\t\tprop.setValue(value);\n\n\t\texpect(prop.toString()).to.equal(value.toString());\n\t\texpect(prop.getValueLow()).to.equal(4294966296);\n\t\texpect(prop.getValueHigh()).to.equal(2097151);\n\t});\n\n\tit(\"should correctly setValue when passed a large negative number (below MIN_SAFE_INT)\", function () {\n\t\tconst prop = PropertyFactory.create(\"Int64\");\n\t\tconst value = -Math.pow(2, 53) + 1000;\n\t\tprop.setValue(value);\n\n\t\texpect(prop.toString()).to.equal(value.toString());\n\t\texpect(prop.getValueLow()).to.equal(1000);\n\t\texpect(prop.getValueHigh()).to.equal(-2097152);\n\t});\n\n\tit(\"should correctly setValue when passed a string\", function () {\n\t\tconst prop = PropertyFactory.create(\"Int64\");\n\t\tprop.setValue(\"1234567890\");\n\t\texpect(prop.toString()).to.equal(\"1234567890\");\n\t});\n\n\tit(\"should throw error when passed a string with non numbers\", function () {\n\t\tconst prop = PropertyFactory.create(\"Int64\");\n\t\texpect(prop.setValue.bind(prop, \"error\")).to.throw(\n\t\t\tMSG.CANNOT_PARSE_INVALID_CHARACTERS + \"error\",\n\t\t);\n\t});\n\n\tit(\"should correctly convert to string\", function () {\n\t\tcontainedInt64Prop.value = new Int64(4294967295, 2147483647); // 2^63-1\n\t\texpect(containedInt64Prop.toString()).to.be.equal(\"9223372036854775807\");\n\n\t\tcontainedInt64Prop.value = new Int64(0, 2147483648); // -2^63\n\t\texpect(containedInt64Prop.toString()).to.be.equal(\"-9223372036854775808\");\n\n\t\tcontainedInt64Prop.value = new Int64(845094001, 1810905006);\n\t\texpect(containedInt64Prop.toString()).to.be.equal(\"7777777777777777777\");\n\n\t\tcontainedInt64Prop.value = new Int64(845094001, 0);\n\t\texpect(containedInt64Prop.toString()).to.be.equal(\"845094001\");\n\n\t\tcontainedInt64Prop.value = new Int64(0, 845094001);\n\t\texpect(containedInt64Prop.toString()).to.be.equal(\"3629651096340791296\");\n\n\t\tcontainedInt64Prop.value = new Int64(0, 0xffffffff);\n\t\texpect(containedInt64Prop.toString()).to.be.equal(\"-4294967296\");\n\n\t\tcontainedInt64Prop.value = new Int64(0xffffffff, 0xffffffff);\n\t\texpect(containedInt64Prop.toString()).to.be.equal(\"-1\");\n\t});\n\n\tit(\"int64.fromString should work correctly\", function () {\n\t\tcontainedInt64Prop.value = new Int64(0, 0);\n\t\texpect(containedInt64Prop.toString()).to.be.equal(\"0\");\n\n\t\tcontainedInt64Prop.fromString(\"3629651096340791296\");\n\t\texpect(containedInt64Prop.value.getValueHigh()).to.be.equal(845094001);\n\t\texpect(containedInt64Prop.value.getValueLow()).to.be.equal(0);\n\n\t\tcontainedInt64Prop.fromString(\"9223372036854775807\");\n\t\texpect(containedInt64Prop.value.getValueHigh()).to.be.equal(2147483647);\n\t\texpect(containedInt64Prop.value.getValueLow()).to.be.equal(4294967295);\n\n\t\tcontainedInt64Prop.fromString(\"-1\");\n\t\texpect(containedInt64Prop.toString()).to.be.equal(\"-1\");\n\n\t\tcontainedInt64Prop.fromString(\"0\");\n\t\texpect(containedInt64Prop.toString()).to.be.equal(\"0\");\n\n\t\tcontainedInt64Prop.fromString(\"18446744073709551615\");\n\t\texpect(containedInt64Prop.value.getValueHigh()).to.be.equal(0xffffffff);\n\t\texpect(containedInt64Prop.value.getValueLow()).to.be.equal(0xffffffff);\n\t});\n\n\tit(\"should correctly serialize/deserialize\", function () {\n\t\tcontainedInt64Prop.value = new Int64(11, 12);\n\n\t\tvar serialized = containedInt64Prop.serialize({ dirtyOnly: true });\n\t\texpect(serialized).to.deep.equal([11, 12]);\n\t\tcontainedInt64Prop.cleanDirty();\n\t\tserialized = containedInt64Prop.serialize({ dirtyOnly: true });\n\t\tassert.deepEqual(serialized, {});\n\n\t\tvar deserializeResult = directInt64Prop.deserialize(\n\t\t\tcontainedInt64Prop.serialize({ dirtyOnly: false }),\n\t\t);\n\t\texpect(deserializeResult).to.deep.equal([11, 12]);\n\t\tdeserializeResult = directInt64Prop.deserialize(\n\t\t\tcontainedInt64Prop.serialize({ dirtyOnly: false }),\n\t\t);\n\t\texpect(deserializeResult).to.not.exist;\n\t\texpect(directInt64Prop.getValueLow()).to.be.equal(11);\n\t\texpect(directInt64Prop.getValueHigh()).to.be.equal(12);\n\n\t\tvar otherNodeProp = PropertyFactory.create(\"autodesk.tests:Int64TestID-1.0.0\");\n\t\totherNodeProp.deserialize(nodeProp.serialize({ dirtyOnly: false }));\n\t\texpect(otherNodeProp._properties.myInt64.getValueLow()).to.be.equal(11);\n\t\texpect(otherNodeProp._properties.myInt64.getValueHigh()).to.be.equal(12);\n\t});\n\n\tit(\"should correctly dirty on set\", function () {\n\t\tdirectInt64Prop.cleanDirty();\n\t\texpect(directInt64Prop.isDirty()).to.be.false;\n\t\tdirectInt64Prop.value = new Int64(32, 42);\n\t\texpect(directInt64Prop.isDirty()).to.be.true;\n\n\t\tdirectInt64Prop.cleanDirty();\n\t\texpect(directInt64Prop.isDirty()).to.be.false;\n\t\tdirectInt64Prop.setValueHigh(66);\n\t\texpect(directInt64Prop.isDirty()).to.be.true;\n\t\tdirectInt64Prop.cleanDirty();\n\t\tdirectInt64Prop.setValueHigh(66);\n\t\texpect(directInt64Prop.isDirty()).to.be.false;\n\n\t\tdirectInt64Prop.cleanDirty();\n\t\texpect(directInt64Prop.isDirty()).to.be.false;\n\t\tdirectInt64Prop.setValueLow(33);\n\t\texpect(directInt64Prop.isDirty()).to.be.true;\n\t\tdirectInt64Prop.cleanDirty();\n\t\tdirectInt64Prop.setValueLow(33);\n\t\texpect(directInt64Prop.isDirty()).to.be.false;\n\t});\n\n\tit(\"should not violate the ChangeSet Specificaton\", function () {\n\t\tcontainedInt64Prop.value = new Int64(32, 42);\n\t\tnodeProp._properties.myUint64.value = new Uint64(99, 110);\n\t\texpect(nodeProp.serialize({ dirtyOnly: false })).to.deep.equal({\n\t\t\tInt64: {\n\t\t\t\tmyInt64: [32, 42],\n\t\t\t},\n\t\t\tUint64: {\n\t\t\t\tmyUint64: [99, 110],\n\t\t\t},\n\t\t});\n\t});\n\n\tdescribe(\"squashing\", function () {\n\t\t// Helper function to test the squashing for different containers\n\t\tvar innerTestChangeSetSquashing = function (\n\t\t\tio_testProperty,\n\t\t\tio_intProperty,\n\t\t\tio_initialChangeset,\n\t\t\tin_options,\n\t\t\tin_collection,\n\t\t) {\n\t\t\tvar squashedChangeset = new ChangeSet();\n\t\t\tio_testProperty.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\tvar callbacks = in_options.callbacks;\n\t\t\tfor (var i = 0; i < callbacks.length; i++) {\n\t\t\t\tcallbacks[i](io_intProperty);\n\t\t\t\tvar changes = io_testProperty.serialize({ dirtyOnly: true });\n\t\t\t\tio_testProperty.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\t\t\t\tsquashedChangeset.applyChangeSet(changes);\n\t\t\t\t// regression test for not-deep-copying array changes\n\t\t\t\tif (changes.modify) {\n\t\t\t\t\tchanges.modify.Int64.intProperty[0] = 888;\n\t\t\t\t} else {\n\t\t\t\t\tchanges.Int64.myInt64[0] = 999;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tio_initialChangeset.applyChangeSet(squashedChangeset.getSerializedChangeSet());\n\t\t};\n\n\t\t//\n\t\t// Helper function which takes a sequence of callbacks that are successively 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\tvar testProperty = PropertyFactory.create(\"autodesk.tests:Int64TestID-1.0.0\");\n\t\t\tvar nodeTestProperty = PropertyFactory.create(\"NodeProperty\");\n\t\t\tvar int64InNodeProperty = PropertyFactory.create(\"Int64\");\n\t\t\tnodeTestProperty.insert(\"intProperty\", int64InNodeProperty);\n\t\t\tvar mapTestProperty = PropertyFactory.create(\"map<>\");\n\t\t\tvar int64InMapProperty = PropertyFactory.create(\"Int64\");\n\t\t\tmapTestProperty.insert(\"intProperty\", int64InMapProperty);\n\n\t\t\tif (in_options.pre) {\n\t\t\t\tin_options.pre(testProperty._properties.intProperty);\n\t\t\t\tin_options.pre(int64InNodeProperty);\n\t\t\t\tin_options.pre(int64InMapProperty);\n\t\t\t}\n\n\t\t\tvar initialChangeset = new ChangeSet(testProperty.serialize({ dirtyOnly: false }));\n\t\t\tinitialChangeset.setIsNormalized(true);\n\t\t\tvar initialChangesetNode = new ChangeSet(\n\t\t\t\tnodeTestProperty.serialize({ dirtyOnly: false }),\n\t\t\t);\n\t\t\tinitialChangesetNode.setIsNormalized(true);\n\t\t\tvar initialChangesetMap = new ChangeSet(mapTestProperty.serialize({ dirtyOnly: false }));\n\t\t\tinitialChangesetMap.setIsNormalized(true);\n\n\t\t\tinnerTestChangeSetSquashing(\n\t\t\t\ttestProperty,\n\t\t\t\ttestProperty._properties.myInt64,\n\t\t\t\tinitialChangeset,\n\t\t\t\tin_options,\n\t\t\t);\n\t\t\tinnerTestChangeSetSquashing(\n\t\t\t\tnodeTestProperty,\n\t\t\t\tint64InNodeProperty,\n\t\t\t\tinitialChangesetNode,\n\t\t\t\tin_options,\n\t\t\t\ttrue,\n\t\t\t);\n\t\t\tinnerTestChangeSetSquashing(\n\t\t\t\tmapTestProperty,\n\t\t\t\tint64InMapProperty,\n\t\t\t\tinitialChangesetMap,\n\t\t\t\tin_options,\n\t\t\t\ttrue,\n\t\t\t);\n\n\t\t\tvar initialChangesetSerialized =\n\t\t\t\tinitialChangeset.getSerializedChangeSet().Int64.intProperty;\n\t\t\texpect(initialChangesetSerialized).to.deep.equal(\n\t\t\t\ttestProperty.serialize({ dirtyOnly: false }).Int64.intProperty,\n\t\t\t);\n\n\t\t\tvar nodeInitialChangeset =\n\t\t\t\tinitialChangesetNode.getSerializedChangeSet().insert.Int64.intProperty;\n\t\t\texpect(nodeInitialChangeset).to.deep.equal(\n\t\t\t\tnodeTestProperty.serialize({ dirtyOnly: false }).insert.Int64.intProperty,\n\t\t\t);\n\n\t\t\tvar mapInitialChangeset =\n\t\t\t\tinitialChangesetMap.getSerializedChangeSet().insert.Int64.intProperty;\n\t\t\texpect(mapInitialChangeset).to.deep.equal(\n\t\t\t\tmapTestProperty.serialize({ dirtyOnly: false }).insert.Int64.intProperty,\n\t\t\t);\n\t\t};\n\n\t\tit(\"should correctly squash 64bit properties\", function () {\n\t\t\ttestChangeSetSquashing({\n\t\t\t\tcallbacks: [\n\t\t\t\t\tfunction (io_prop) {\n\t\t\t\t\t\tio_prop.setValueHigh(1);\n\t\t\t\t\t},\n\t\t\t\t\tfunction (io_prop) {\n\t\t\t\t\t\tio_prop.setValueHigh(2);\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t});\n\n\t\tit(\"should correctly squash low/high 64bit property changes\", function () {\n\t\t\ttestChangeSetSquashing({\n\t\t\t\tcallbacks: [\n\t\t\t\t\tfunction (io_prop) {\n\t\t\t\t\t\tio_prop.setValueHigh(1);\n\t\t\t\t\t},\n\t\t\t\t\tfunction (io_prop) {\n\t\t\t\t\t\tio_prop.setValueLow(2);\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t});\n\n\t\tit(\"should squash two ChangeSets, one inserts the other modifies the same Int64 property\", function () {\n\t\t\tvar nodeTestProperty = PropertyFactory.create(\"NodeProperty\");\n\t\t\tvar int64Property = PropertyFactory.create(\"Int64\");\n\t\t\tnodeTestProperty.insert(\"myProp\", int64Property);\n\n\t\t\tvar changeSet1 = new ChangeSet(nodeTestProperty.serialize({ dirtyOnly: true }));\n\n\t\t\tnodeTestProperty.cleanDirty();\n\t\t\tnodeTestProperty.resolvePath(\"myProp\").setValueHigh(100);\n\t\t\tvar changeSet2 = new ChangeSet(nodeTestProperty.serialize({ dirtyOnly: true }));\n\n\t\t\tvar nodeTestProperty = PropertyFactory.create(\"NodeProperty\");\n\t\t\tvar int64Property = PropertyFactory.create(\"Int64\");\n\t\t\tint64Property.setValueHigh(100);\n\t\t\tnodeTestProperty.insert(\"myProp\", int64Property);\n\t\t\tvar expectedChangeSet = nodeTestProperty.serialize({ dirtyOnly: true });\n\n\t\t\tchangeSet1.applyChangeSet(changeSet2);\n\n\t\t\texpect(\n\t\t\t\tchangeSet1.getSerializedChangeSet().insert.Int64.myProp ===\n\t\t\t\t\tchangeSet2.getSerializedChangeSet().modify.Int64.myProp,\n\t\t\t).to.be.false;\n\t\t\texpect(changeSet1.getSerializedChangeSet()).to.eql(expectedChangeSet);\n\t\t});\n\n\t\tit(\"should squash two ChangeSets, one inserts the other modifies the same Int64 property\", function () {\n\t\t\tvar nodeTestProperty = PropertyFactory.create(\"NodeProperty\");\n\t\t\tvar Uint64Property = PropertyFactory.create(\"Uint64\");\n\t\t\tnodeTestProperty.insert(\"myProp\", Uint64Property);\n\n\t\t\tvar changeSet1 = new ChangeSet(nodeTestProperty.serialize({ dirtyOnly: true }));\n\n\t\t\tnodeTestProperty.cleanDirty();\n\t\t\tnodeTestProperty.resolvePath(\"myProp\").setValueHigh(100);\n\t\t\tvar changeSet2 = new ChangeSet(nodeTestProperty.serialize({ dirtyOnly: true }));\n\n\t\t\tvar nodeTestProperty = PropertyFactory.create(\"NodeProperty\");\n\t\t\tvar Uint64Property = PropertyFactory.create(\"Uint64\");\n\t\t\tUint64Property.setValueHigh(100);\n\t\t\tnodeTestProperty.insert(\"myProp\", Uint64Property);\n\t\t\tvar expectedChangeSet = nodeTestProperty.serialize({ dirtyOnly: true });\n\n\t\t\tchangeSet1.applyChangeSet(changeSet2);\n\n\t\t\texpect(\n\t\t\t\tchangeSet1.getSerializedChangeSet().insert.Uint64.myProp ===\n\t\t\t\t\tchangeSet2.getSerializedChangeSet().modify.Uint64.myProp,\n\t\t\t).to.be.false;\n\t\t\texpect(changeSet1.getSerializedChangeSet()).to.eql(expectedChangeSet);\n\t\t});\n\t});\n\n\tdescribe(\"rebasing\", function () {\n\t\tvar createPropertyForRebaseTestByTemplate = function () {\n\t\t\treturn PropertyFactory.create(\"autodesk.tests:Int64TestID-1.0.0\");\n\t\t};\n\n\t\tvar createNodePropertyForRebase = function () {\n\t\t\tvar nodeTestProperty = PropertyFactory.create(\"NodeProperty\");\n\t\t\tvar int64InNodeProperty = PropertyFactory.create(\"Int64\");\n\t\t\tnodeTestProperty.insert(\"myInt64\", int64InNodeProperty);\n\t\t\treturn nodeTestProperty;\n\t\t};\n\n\t\tvar createMapPropertyForRebase = function () {\n\t\t\tvar mapTestProperty = PropertyFactory.create(\"map<>\");\n\t\t\tvar int64InNodeProperty = PropertyFactory.create(\"Int64\");\n\t\t\tmapTestProperty.insert(\"myInt64\", int64InNodeProperty);\n\t\t\treturn mapTestProperty;\n\t\t};\n\n\t\tvar getIntPropertyFromNode = function (in_testProperty) {\n\t\t\treturn in_testProperty._properties.myInt64;\n\t\t};\n\n\t\tvar getIntPropertyFromMap = function (in_testProperty) {\n\t\t\treturn in_testProperty.get(\"myInt64\");\n\t\t};\n\n\t\tvar testRebasingInner = function (\n\t\t\tin_creator,\n\t\t\tin_getInnerProperty,\n\t\t\tin_options,\n\t\t\tin_isCollection,\n\t\t) {\n\t\t\t// Prepare the initial state\n\t\t\tvar baseProperty1 = in_creator();\n\t\t\tif (in_options.prepare) {\n\t\t\t\tin_options.prepare(in_getInnerProperty(baseProperty1));\n\t\t\t}\n\t\t\t// Create two copies of this state\n\t\t\tvar baseProperty2 = in_creator();\n\t\t\tbaseProperty2.deserialize(baseProperty1.serialize({ dirtyOnly: false }));\n\t\t\tvar baseProperty3 = in_creator();\n\t\t\tbaseProperty3.deserialize(baseProperty1.serialize({ dirtyOnly: false }));\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({ dirtyOnly: false });\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(in_getInnerProperty(baseProperty1));\n\t\t\t}\n\t\t\tif (in_options.op2) {\n\t\t\t\tin_options.op2(in_getInnerProperty(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.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(in_getInnerProperty(baseProperty3));\n\t\t\t\t}\n\t\t\t\tif (in_options.op2) {\n\t\t\t\t\tin_options.op2(in_getInnerProperty(baseProperty3));\n\t\t\t\t}\n\t\t\t\tvar finalChangeSet = baseProperty3.serialize({ dirtyOnly: false });\n\t\t\t\tif (in_isCollection && finalChangeSet.insert) {\n\t\t\t\t\tfinalChangeSet = finalChangeSet.insert;\n\t\t\t\t}\n\n\t\t\t\tvar combinedSerialized = combinedChangeSet.getSerializedChangeSet();\n\t\t\t\tif (in_isCollection && combinedSerialized.insert) {\n\t\t\t\t\tcombinedSerialized = combinedSerialized.insert;\n\t\t\t\t}\n\n\t\t\t\texpect(combinedSerialized).to.deep.equal(finalChangeSet);\n\t\t\t}\n\n\t\t\tif (in_options.checkResult) {\n\t\t\t\tif (in_isCollection && changeSet2.modify) {\n\t\t\t\t\tchangeSet2 = changeSet2.modify;\n\t\t\t\t}\n\t\t\t\tin_options.checkResult(conflicts, changeSet2, combinedChangeSet);\n\t\t\t}\n\t\t};\n\n\t\tvar testRebasing = function (in_options) {\n\t\t\ttestRebasingInner(\n\t\t\t\tcreatePropertyForRebaseTestByTemplate,\n\t\t\t\tgetIntPropertyFromNode,\n\t\t\t\tin_options,\n\t\t\t);\n\t\t\ttestRebasingInner(createNodePropertyForRebase, getIntPropertyFromNode, in_options, true);\n\t\t\ttestRebasingInner(createMapPropertyForRebase, getIntPropertyFromMap, in_options, true);\n\t\t};\n\n\t\tit(\"with two modifies should be possible and report a conflict\", function () {\n\t\t\ttestRebasing({\n\t\t\t\top1: function (io_prop) {\n\t\t\t\t\tio_prop.setValueHigh(1);\n\t\t\t\t},\n\t\t\t\top2: function (io_prop) {\n\t\t\t\t\tio_prop.setValueHigh(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(changeSet.Int64.myInt64).to.deep.equal([0, 2]);\n\t\t\t\t\texpect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\tit(\"with low/high modifies should be possible and report a conflict\", function () {\n\t\t\ttestRebasing({\n\t\t\t\top1: function (io_prop) {\n\t\t\t\t\tio_prop.setValueHigh(1);\n\t\t\t\t},\n\t\t\t\top2: function (io_prop) {\n\t\t\t\t\tio_prop.setValueLow(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(conflicts).to.have.length(1);\n\t\t\t\t\texpect(changeSet.Int64.myInt64).to.deep.equal([2, 0]);\n\t\t\t\t\texpect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t});\n});\n"]}
|
|
@@ -2,13 +2,10 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
/* globals */
|
|
6
|
-
let _;
|
|
5
|
+
/* globals expect */
|
|
7
6
|
let PropertyFactory;
|
|
8
7
|
let PsetUtils;
|
|
9
8
|
let DeferredPromise;
|
|
10
|
-
let ChangeSet;
|
|
11
|
-
let deepCopy;
|
|
12
9
|
const AllProperties = {
|
|
13
10
|
typeid: "mysample:all-1.0.0",
|
|
14
11
|
inherits: "NamedProperty",
|
|
@@ -51,9 +48,6 @@ describe("property-properties.Utils isLeafNode", function () {
|
|
|
51
48
|
*/
|
|
52
49
|
before(function () {
|
|
53
50
|
PropertyFactory = require("../..").PropertyFactory;
|
|
54
|
-
ChangeSet = require("@fluid-experimental/property-changeset").ChangeSet;
|
|
55
|
-
_ = require("lodash");
|
|
56
|
-
deepCopy = _.cloneDeep;
|
|
57
51
|
PropertyFactory.register(AllProperties);
|
|
58
52
|
PropertyFactory.register({
|
|
59
53
|
typeid: "autodesk.tests:entry-1.0.0",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isLeafNode.spec.js","sourceRoot":"","sources":["../../../src/test/properties/isLeafNode.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 */\n\nlet _;\nlet PropertyFactory;\nlet PsetUtils;\nlet DeferredPromise;\nlet ChangeSet;\nlet deepCopy;\nconst AllProperties = {\n\ttypeid: \"mysample:all-1.0.0\",\n\tinherits: \"NamedProperty\",\n\tconstants: [\n\t\t{ id: \"const_int8\", typeid: \"Int8\", value: 111 },\n\t\t{ id: \"const_int16\", typeid: \"Int16\", value: 111 },\n\t\t{ id: \"const_int32\", typeid: \"Int32\", value: 111 },\n\t\t{ id: \"const_bool\", typeid: \"Bool\", value: true },\n\t\t{ id: \"const_string\", typeid: \"String\", value: \"This is a string\" },\n\t],\n\tproperties: [\n\t\t{ id: \"int8\", typeid: \"Int8\" },\n\t\t{ id: \"int16\", typeid: \"Int16\" },\n\t\t{ id: \"int32\", typeid: \"Int32\" },\n\t\t{ id: \"int64\", typeid: \"Int64\" },\n\t\t{ id: \"uint32\", typeid: \"Uint32\" },\n\t\t{ id: \"uint64\", typeid: \"Uint64\" },\n\t\t{ id: \"float32\", typeid: \"Float32\" },\n\t\t{ id: \"float64\", typeid: \"Float64\" },\n\t\t{ id: \"bool\", typeid: \"Bool\" },\n\t\t{ id: \"string\", typeid: \"String\" },\n\t\t{ id: \"nodeProp\", typeid: \"NodeProperty\" },\n\t\t{\n\t\t\tid: \"nestedProps\",\n\t\t\tproperties: [\n\t\t\t\t{ id: \"string\", typeid: \"String\" },\n\t\t\t\t{ id: \"bool\", typeid: \"Bool\" },\n\t\t\t],\n\t\t},\n\t],\n};\n\nvar createPropertyInsertAndCommit = function (workspace, typeid, context, propId) {\n\tconst prop = PropertyFactory.create(typeid, context);\n\tworkspace.insert(propId, prop);\n};\n\ndescribe(\"property-properties.Utils isLeafNode\", function () {\n\tlet root;\n\n\t/**\n\t * Get all the objects we need in this test here.\n\t */\n\tbefore(function () {\n\t\tPropertyFactory = require(\"../..\").PropertyFactory;\n\t\tChangeSet = require(\"@fluid-experimental/property-changeset\").ChangeSet;\n\t\t_ = require(\"lodash\");\n\t\tdeepCopy = _.cloneDeep;\n\n\t\tPropertyFactory.register(AllProperties);\n\t\tPropertyFactory.register({\n\t\t\ttypeid: \"autodesk.tests:entry-1.0.0\",\n\t\t\tproperties: [{ id: \"string\", typeid: \"String\" }],\n\t\t});\n\t\tPropertyFactory.register({\n\t\t\ttypeid: \"autodesk.tests:namedEntry-1.0.0\",\n\t\t\tinherits: [\"NamedProperty\"],\n\t\t\tproperties: [{ id: \"string\", typeid: \"String\" }],\n\t\t});\n\t\tPropertyFactory.register({\n\t\t\ttypeid: \"autodesk.tests:array-1.0.0\",\n\t\t\tproperties: [\n\t\t\t\t{\n\t\t\t\t\tid: \"array\",\n\t\t\t\t\ttypeid: \"autodesk.tests:entry-1.0.0\",\n\t\t\t\t\tcontext: \"array\",\n\t\t\t\t\tvalue: [{ string: \"I am a string 1\" }, { string: \"I am a string 2\" }],\n\t\t\t\t},\n\t\t\t],\n\t\t});\n\t\tPropertyFactory.register({\n\t\t\ttypeid: \"autodesk.tests:set-1.0.0\",\n\t\t\tproperties: [\n\t\t\t\t{\n\t\t\t\t\tid: \"set\",\n\t\t\t\t\ttypeid: \"autodesk.tests:namedEntry-1.0.0\",\n\t\t\t\t\tcontext: \"set\",\n\t\t\t\t\tvalue: [{ string: \"I am a string 1\" }, { string: \"I am a string 2\" }],\n\t\t\t\t},\n\t\t\t],\n\t\t});\n\t\tPropertyFactory.register({\n\t\t\ttypeid: \"autodesk.tests:map-1.0.0\",\n\t\t\tproperties: [\n\t\t\t\t{\n\t\t\t\t\tid: \"map\",\n\t\t\t\t\ttypeid: \"autodesk.tests:entry-1.0.0\",\n\t\t\t\t\tcontext: \"map\",\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\tkey1: { string: \"I am a string 1\" },\n\t\t\t\t\t\tkey2: { string: \"I am a string 2\" },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t});\n\n\t\tPsetUtils = require(\"@fluid-experimental/property-changeset\").Utils;\n\t\tDeferredPromise = require(\"@fluid-experimental/property-common\").DeferredPromise;\n\t});\n\n\tbeforeEach(async function () {\n\t\troot = PropertyFactory.create(\"NodeProperty\");\n\t});\n\n\tit.skip(\"should match leaf for primitives properties\", async function () {\n\t\tlet leafNodesCount = 0;\n\t\tcreatePropertyInsertAndCommit(root, \"mysample:all-1.0.0\", \"single\", \"singleProp\");\n\n\t\tconst changeSet = root.getRoot().serialize();\n\n\t\tconst propertyCb = (node, cb) => {\n\t\t\tif (node.isLeafNode()) {\n\t\t\t\tleafNodesCount++;\n\t\t\t}\n\t\t\treturn process.nextTick(cb);\n\t\t};\n\n\t\tconst dp = new DeferredPromise();\n\t\tPsetUtils.traverseChangeSetRecursivelyAsync(\n\t\t\tchangeSet,\n\t\t\t{ preCallback: propertyCb },\n\t\t\tdp.getCb(),\n\t\t);\n\t\tawait dp;\n\n\t\texpect(leafNodesCount).to.eql(19);\n\t});\n\n\tit(\"should see an empty array as a leaf\", async function () {\n\t\tlet leafNodesCount = 0;\n\t\tcreatePropertyInsertAndCommit(root, \"mysample:all-1.0.0\", \"array\", \"arrayProp\");\n\n\t\tconst changeSet = root.getRoot().serialize();\n\n\t\tconst propertyCb = (node, cb) => {\n\t\t\tif (node.isLeafNode()) {\n\t\t\t\tleafNodesCount++;\n\t\t\t}\n\t\t\treturn process.nextTick(cb);\n\t\t};\n\n\t\tconst dp = new DeferredPromise();\n\t\tPsetUtils.traverseChangeSetRecursivelyAsync(\n\t\t\tchangeSet,\n\t\t\t{ preCallback: propertyCb },\n\t\t\tdp.getCb(),\n\t\t);\n\t\tawait dp;\n\n\t\texpect(leafNodesCount).to.eql(1);\n\t});\n\n\tit(\"should see an empty map as a leaf\", async function () {\n\t\tlet leafNodesCount = 0;\n\t\tcreatePropertyInsertAndCommit(root, \"mysample:all-1.0.0\", \"map\", \"mapProp\");\n\n\t\tconst changeSet = root.getRoot().serialize();\n\n\t\tconst propertyCb = (node, cb) => {\n\t\t\tif (node.isLeafNode()) {\n\t\t\t\tleafNodesCount++;\n\t\t\t}\n\t\t\treturn process.nextTick(cb);\n\t\t};\n\n\t\tconst dp = new DeferredPromise();\n\t\tPsetUtils.traverseChangeSetRecursivelyAsync(\n\t\t\tchangeSet,\n\t\t\t{ preCallback: propertyCb },\n\t\t\tdp.getCb(),\n\t\t);\n\t\tawait dp;\n\n\t\texpect(leafNodesCount).to.eql(1);\n\t});\n\n\tit(\"should see an empty set as a leaf\", async function () {\n\t\tlet leafNodesCount = 0;\n\t\tcreatePropertyInsertAndCommit(root, \"mysample:all-1.0.0\", \"set\", \"setProp\");\n\n\t\tconst changeSet = root.getRoot().serialize();\n\n\t\tconst propertyCb = (node, cb) => {\n\t\t\tif (node.isLeafNode()) {\n\t\t\t\tleafNodesCount++;\n\t\t\t}\n\t\t\treturn process.nextTick(cb);\n\t\t};\n\n\t\tconst dp = new DeferredPromise();\n\t\tPsetUtils.traverseChangeSetRecursivelyAsync(\n\t\t\tchangeSet,\n\t\t\t{ preCallback: propertyCb },\n\t\t\tdp.getCb(),\n\t\t);\n\t\tawait dp;\n\n\t\texpect(leafNodesCount).to.eql(1);\n\t});\n\n\tit(\"should count primitives in an array as leafs\", async function () {\n\t\tlet leafNodesCount = 0;\n\t\tconst array = PropertyFactory.create(\"autodesk.tests:array-1.0.0\");\n\t\troot.insert(\"arrayProp\", array);\n\n\t\tconst changeSet = root.serialize();\n\n\t\tconst propertyCb = (node, cb) => {\n\t\t\tif (node.isLeafNode()) {\n\t\t\t\tleafNodesCount++;\n\t\t\t}\n\t\t\treturn process.nextTick(cb);\n\t\t};\n\t\tconst dp = new DeferredPromise();\n\t\tPsetUtils.traverseChangeSetRecursivelyAsync(\n\t\t\tchangeSet,\n\t\t\t{ preCallback: propertyCb },\n\t\t\tdp.getCb(),\n\t\t);\n\t\tawait dp;\n\n\t\texpect(leafNodesCount).to.eql(2);\n\t});\n\n\tit(\"should count primitives in an set as leafs\", async function () {\n\t\tlet leafNodesCount = 0;\n\t\tconst set = PropertyFactory.create(\"autodesk.tests:set-1.0.0\");\n\t\troot.insert(\"setProp\", set);\n\n\t\tconst changeSet = root.serialize();\n\n\t\tconst propertyCb = (node, cb) => {\n\t\t\tif (node.isLeafNode()) {\n\t\t\t\tleafNodesCount++;\n\t\t\t}\n\t\t\treturn process.nextTick(cb);\n\t\t};\n\t\tconst dp = new DeferredPromise();\n\t\tPsetUtils.traverseChangeSetRecursivelyAsync(\n\t\t\tchangeSet,\n\t\t\t{ preCallback: propertyCb },\n\t\t\tdp.getCb(),\n\t\t);\n\t\tawait dp;\n\n\t\texpect(leafNodesCount).to.eql(4);\n\t});\n\n\tit(\"should count primitives in an map as leafs\", async function () {\n\t\tlet leafNodesCount = 0;\n\t\tconst map = PropertyFactory.create(\"autodesk.tests:map-1.0.0\");\n\t\troot.insert(\"mapProp\", map);\n\n\t\tconst changeSet = root.serialize();\n\n\t\tconst propertyCb = (node, cb) => {\n\t\t\tif (node.isLeafNode()) {\n\t\t\t\tleafNodesCount++;\n\t\t\t}\n\t\t\treturn process.nextTick(cb);\n\t\t};\n\t\tconst dp = new DeferredPromise();\n\t\tPsetUtils.traverseChangeSetRecursivelyAsync(\n\t\t\tchangeSet,\n\t\t\t{ preCallback: propertyCb },\n\t\t\tdp.getCb(),\n\t\t);\n\t\tawait dp;\n\n\t\texpect(leafNodesCount).to.eql(2);\n\t});\n\n\tit(\"should count remove as leafs in reversible changeset\", async function () {\n\t\tlet leafNodesCount = 0;\n\t\tconst map = PropertyFactory.create(\"autodesk.tests:map-1.0.0\");\n\t\troot.insert(\"mapProp\", map);\n\n\t\troot.cleanDirty();\n\t\tmap.get(\"map\").remove(\"key1\");\n\t\tconst changeSet = root.getPendingChanges().getSerializedChangeSet();\n\n\t\tconst propertyCb = (node, cb) => {\n\t\t\tif (node.isLeafNode()) {\n\t\t\t\tleafNodesCount++;\n\t\t\t}\n\t\t\treturn process.nextTick(cb);\n\t\t};\n\t\tconst dp = new DeferredPromise();\n\t\tPsetUtils.traverseChangeSetRecursivelyAsync(\n\t\t\tchangeSet,\n\t\t\t{ preCallback: propertyCb },\n\t\t\tdp.getCb(),\n\t\t);\n\t\tawait dp;\n\n\t\texpect(leafNodesCount).to.eql(1);\n\t});\n\n\tit(\"should count remove as leafs\", async function () {\n\t\tlet leafNodesCount = 0;\n\t\tconst map = PropertyFactory.create(\"autodesk.tests:map-1.0.0\");\n\t\troot.insert(\"mapProp\", map);\n\t\troot.cleanDirty();\n\n\t\tmap.get(\"map\").remove(\"key1\");\n\n\t\tconst changeSet = root.getPendingChanges();\n\t\tchangeSet._stripReversibleChangeSet();\n\t\tconst nonReversibleChangesetSerialized = changeSet.getSerializedChangeSet();\n\n\t\tconst propertyCb = (node, cb) => {\n\t\t\tif (node.isLeafNode()) {\n\t\t\t\tleafNodesCount++;\n\t\t\t}\n\t\t\treturn process.nextTick(cb);\n\t\t};\n\t\tconst dp = new DeferredPromise();\n\t\tPsetUtils.traverseChangeSetRecursivelyAsync(\n\t\t\tnonReversibleChangesetSerialized,\n\t\t\t{ preCallback: propertyCb },\n\t\t\tdp.getCb(),\n\t\t);\n\t\tawait dp;\n\n\t\texpect(leafNodesCount).to.eql(1);\n\t});\n});\n"]}
|
|
1
|
+
{"version":3,"file":"isLeafNode.spec.js","sourceRoot":"","sources":["../../../src/test/properties/isLeafNode.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 expect */\n\nlet PropertyFactory;\nlet PsetUtils;\nlet DeferredPromise;\nconst AllProperties = {\n\ttypeid: \"mysample:all-1.0.0\",\n\tinherits: \"NamedProperty\",\n\tconstants: [\n\t\t{ id: \"const_int8\", typeid: \"Int8\", value: 111 },\n\t\t{ id: \"const_int16\", typeid: \"Int16\", value: 111 },\n\t\t{ id: \"const_int32\", typeid: \"Int32\", value: 111 },\n\t\t{ id: \"const_bool\", typeid: \"Bool\", value: true },\n\t\t{ id: \"const_string\", typeid: \"String\", value: \"This is a string\" },\n\t],\n\tproperties: [\n\t\t{ id: \"int8\", typeid: \"Int8\" },\n\t\t{ id: \"int16\", typeid: \"Int16\" },\n\t\t{ id: \"int32\", typeid: \"Int32\" },\n\t\t{ id: \"int64\", typeid: \"Int64\" },\n\t\t{ id: \"uint32\", typeid: \"Uint32\" },\n\t\t{ id: \"uint64\", typeid: \"Uint64\" },\n\t\t{ id: \"float32\", typeid: \"Float32\" },\n\t\t{ id: \"float64\", typeid: \"Float64\" },\n\t\t{ id: \"bool\", typeid: \"Bool\" },\n\t\t{ id: \"string\", typeid: \"String\" },\n\t\t{ id: \"nodeProp\", typeid: \"NodeProperty\" },\n\t\t{\n\t\t\tid: \"nestedProps\",\n\t\t\tproperties: [\n\t\t\t\t{ id: \"string\", typeid: \"String\" },\n\t\t\t\t{ id: \"bool\", typeid: \"Bool\" },\n\t\t\t],\n\t\t},\n\t],\n};\n\nvar createPropertyInsertAndCommit = function (workspace, typeid, context, propId) {\n\tconst prop = PropertyFactory.create(typeid, context);\n\tworkspace.insert(propId, prop);\n};\n\ndescribe(\"property-properties.Utils isLeafNode\", function () {\n\tlet root;\n\n\t/**\n\t * Get all the objects we need in this test here.\n\t */\n\tbefore(function () {\n\t\tPropertyFactory = require(\"../..\").PropertyFactory;\n\n\t\tPropertyFactory.register(AllProperties);\n\t\tPropertyFactory.register({\n\t\t\ttypeid: \"autodesk.tests:entry-1.0.0\",\n\t\t\tproperties: [{ id: \"string\", typeid: \"String\" }],\n\t\t});\n\t\tPropertyFactory.register({\n\t\t\ttypeid: \"autodesk.tests:namedEntry-1.0.0\",\n\t\t\tinherits: [\"NamedProperty\"],\n\t\t\tproperties: [{ id: \"string\", typeid: \"String\" }],\n\t\t});\n\t\tPropertyFactory.register({\n\t\t\ttypeid: \"autodesk.tests:array-1.0.0\",\n\t\t\tproperties: [\n\t\t\t\t{\n\t\t\t\t\tid: \"array\",\n\t\t\t\t\ttypeid: \"autodesk.tests:entry-1.0.0\",\n\t\t\t\t\tcontext: \"array\",\n\t\t\t\t\tvalue: [{ string: \"I am a string 1\" }, { string: \"I am a string 2\" }],\n\t\t\t\t},\n\t\t\t],\n\t\t});\n\t\tPropertyFactory.register({\n\t\t\ttypeid: \"autodesk.tests:set-1.0.0\",\n\t\t\tproperties: [\n\t\t\t\t{\n\t\t\t\t\tid: \"set\",\n\t\t\t\t\ttypeid: \"autodesk.tests:namedEntry-1.0.0\",\n\t\t\t\t\tcontext: \"set\",\n\t\t\t\t\tvalue: [{ string: \"I am a string 1\" }, { string: \"I am a string 2\" }],\n\t\t\t\t},\n\t\t\t],\n\t\t});\n\t\tPropertyFactory.register({\n\t\t\ttypeid: \"autodesk.tests:map-1.0.0\",\n\t\t\tproperties: [\n\t\t\t\t{\n\t\t\t\t\tid: \"map\",\n\t\t\t\t\ttypeid: \"autodesk.tests:entry-1.0.0\",\n\t\t\t\t\tcontext: \"map\",\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\tkey1: { string: \"I am a string 1\" },\n\t\t\t\t\t\tkey2: { string: \"I am a string 2\" },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t});\n\n\t\tPsetUtils = require(\"@fluid-experimental/property-changeset\").Utils;\n\t\tDeferredPromise = require(\"@fluid-experimental/property-common\").DeferredPromise;\n\t});\n\n\tbeforeEach(async function () {\n\t\troot = PropertyFactory.create(\"NodeProperty\");\n\t});\n\n\tit.skip(\"should match leaf for primitives properties\", async function () {\n\t\tlet leafNodesCount = 0;\n\t\tcreatePropertyInsertAndCommit(root, \"mysample:all-1.0.0\", \"single\", \"singleProp\");\n\n\t\tconst changeSet = root.getRoot().serialize();\n\n\t\tconst propertyCb = (node, cb) => {\n\t\t\tif (node.isLeafNode()) {\n\t\t\t\tleafNodesCount++;\n\t\t\t}\n\t\t\treturn process.nextTick(cb);\n\t\t};\n\n\t\tconst dp = new DeferredPromise();\n\t\tPsetUtils.traverseChangeSetRecursivelyAsync(\n\t\t\tchangeSet,\n\t\t\t{ preCallback: propertyCb },\n\t\t\tdp.getCb(),\n\t\t);\n\t\tawait dp;\n\n\t\texpect(leafNodesCount).to.eql(19);\n\t});\n\n\tit(\"should see an empty array as a leaf\", async function () {\n\t\tlet leafNodesCount = 0;\n\t\tcreatePropertyInsertAndCommit(root, \"mysample:all-1.0.0\", \"array\", \"arrayProp\");\n\n\t\tconst changeSet = root.getRoot().serialize();\n\n\t\tconst propertyCb = (node, cb) => {\n\t\t\tif (node.isLeafNode()) {\n\t\t\t\tleafNodesCount++;\n\t\t\t}\n\t\t\treturn process.nextTick(cb);\n\t\t};\n\n\t\tconst dp = new DeferredPromise();\n\t\tPsetUtils.traverseChangeSetRecursivelyAsync(\n\t\t\tchangeSet,\n\t\t\t{ preCallback: propertyCb },\n\t\t\tdp.getCb(),\n\t\t);\n\t\tawait dp;\n\n\t\texpect(leafNodesCount).to.eql(1);\n\t});\n\n\tit(\"should see an empty map as a leaf\", async function () {\n\t\tlet leafNodesCount = 0;\n\t\tcreatePropertyInsertAndCommit(root, \"mysample:all-1.0.0\", \"map\", \"mapProp\");\n\n\t\tconst changeSet = root.getRoot().serialize();\n\n\t\tconst propertyCb = (node, cb) => {\n\t\t\tif (node.isLeafNode()) {\n\t\t\t\tleafNodesCount++;\n\t\t\t}\n\t\t\treturn process.nextTick(cb);\n\t\t};\n\n\t\tconst dp = new DeferredPromise();\n\t\tPsetUtils.traverseChangeSetRecursivelyAsync(\n\t\t\tchangeSet,\n\t\t\t{ preCallback: propertyCb },\n\t\t\tdp.getCb(),\n\t\t);\n\t\tawait dp;\n\n\t\texpect(leafNodesCount).to.eql(1);\n\t});\n\n\tit(\"should see an empty set as a leaf\", async function () {\n\t\tlet leafNodesCount = 0;\n\t\tcreatePropertyInsertAndCommit(root, \"mysample:all-1.0.0\", \"set\", \"setProp\");\n\n\t\tconst changeSet = root.getRoot().serialize();\n\n\t\tconst propertyCb = (node, cb) => {\n\t\t\tif (node.isLeafNode()) {\n\t\t\t\tleafNodesCount++;\n\t\t\t}\n\t\t\treturn process.nextTick(cb);\n\t\t};\n\n\t\tconst dp = new DeferredPromise();\n\t\tPsetUtils.traverseChangeSetRecursivelyAsync(\n\t\t\tchangeSet,\n\t\t\t{ preCallback: propertyCb },\n\t\t\tdp.getCb(),\n\t\t);\n\t\tawait dp;\n\n\t\texpect(leafNodesCount).to.eql(1);\n\t});\n\n\tit(\"should count primitives in an array as leafs\", async function () {\n\t\tlet leafNodesCount = 0;\n\t\tconst array = PropertyFactory.create(\"autodesk.tests:array-1.0.0\");\n\t\troot.insert(\"arrayProp\", array);\n\n\t\tconst changeSet = root.serialize();\n\n\t\tconst propertyCb = (node, cb) => {\n\t\t\tif (node.isLeafNode()) {\n\t\t\t\tleafNodesCount++;\n\t\t\t}\n\t\t\treturn process.nextTick(cb);\n\t\t};\n\t\tconst dp = new DeferredPromise();\n\t\tPsetUtils.traverseChangeSetRecursivelyAsync(\n\t\t\tchangeSet,\n\t\t\t{ preCallback: propertyCb },\n\t\t\tdp.getCb(),\n\t\t);\n\t\tawait dp;\n\n\t\texpect(leafNodesCount).to.eql(2);\n\t});\n\n\tit(\"should count primitives in an set as leafs\", async function () {\n\t\tlet leafNodesCount = 0;\n\t\tconst set = PropertyFactory.create(\"autodesk.tests:set-1.0.0\");\n\t\troot.insert(\"setProp\", set);\n\n\t\tconst changeSet = root.serialize();\n\n\t\tconst propertyCb = (node, cb) => {\n\t\t\tif (node.isLeafNode()) {\n\t\t\t\tleafNodesCount++;\n\t\t\t}\n\t\t\treturn process.nextTick(cb);\n\t\t};\n\t\tconst dp = new DeferredPromise();\n\t\tPsetUtils.traverseChangeSetRecursivelyAsync(\n\t\t\tchangeSet,\n\t\t\t{ preCallback: propertyCb },\n\t\t\tdp.getCb(),\n\t\t);\n\t\tawait dp;\n\n\t\texpect(leafNodesCount).to.eql(4);\n\t});\n\n\tit(\"should count primitives in an map as leafs\", async function () {\n\t\tlet leafNodesCount = 0;\n\t\tconst map = PropertyFactory.create(\"autodesk.tests:map-1.0.0\");\n\t\troot.insert(\"mapProp\", map);\n\n\t\tconst changeSet = root.serialize();\n\n\t\tconst propertyCb = (node, cb) => {\n\t\t\tif (node.isLeafNode()) {\n\t\t\t\tleafNodesCount++;\n\t\t\t}\n\t\t\treturn process.nextTick(cb);\n\t\t};\n\t\tconst dp = new DeferredPromise();\n\t\tPsetUtils.traverseChangeSetRecursivelyAsync(\n\t\t\tchangeSet,\n\t\t\t{ preCallback: propertyCb },\n\t\t\tdp.getCb(),\n\t\t);\n\t\tawait dp;\n\n\t\texpect(leafNodesCount).to.eql(2);\n\t});\n\n\tit(\"should count remove as leafs in reversible changeset\", async function () {\n\t\tlet leafNodesCount = 0;\n\t\tconst map = PropertyFactory.create(\"autodesk.tests:map-1.0.0\");\n\t\troot.insert(\"mapProp\", map);\n\n\t\troot.cleanDirty();\n\t\tmap.get(\"map\").remove(\"key1\");\n\t\tconst changeSet = root.getPendingChanges().getSerializedChangeSet();\n\n\t\tconst propertyCb = (node, cb) => {\n\t\t\tif (node.isLeafNode()) {\n\t\t\t\tleafNodesCount++;\n\t\t\t}\n\t\t\treturn process.nextTick(cb);\n\t\t};\n\t\tconst dp = new DeferredPromise();\n\t\tPsetUtils.traverseChangeSetRecursivelyAsync(\n\t\t\tchangeSet,\n\t\t\t{ preCallback: propertyCb },\n\t\t\tdp.getCb(),\n\t\t);\n\t\tawait dp;\n\n\t\texpect(leafNodesCount).to.eql(1);\n\t});\n\n\tit(\"should count remove as leafs\", async function () {\n\t\tlet leafNodesCount = 0;\n\t\tconst map = PropertyFactory.create(\"autodesk.tests:map-1.0.0\");\n\t\troot.insert(\"mapProp\", map);\n\t\troot.cleanDirty();\n\n\t\tmap.get(\"map\").remove(\"key1\");\n\n\t\tconst changeSet = root.getPendingChanges();\n\t\tchangeSet._stripReversibleChangeSet();\n\t\tconst nonReversibleChangesetSerialized = changeSet.getSerializedChangeSet();\n\n\t\tconst propertyCb = (node, cb) => {\n\t\t\tif (node.isLeafNode()) {\n\t\t\t\tleafNodesCount++;\n\t\t\t}\n\t\t\treturn process.nextTick(cb);\n\t\t};\n\t\tconst dp = new DeferredPromise();\n\t\tPsetUtils.traverseChangeSetRecursivelyAsync(\n\t\t\tnonReversibleChangesetSerialized,\n\t\t\t{ preCallback: propertyCb },\n\t\t\tdp.getCb(),\n\t\t);\n\t\tawait dp;\n\n\t\texpect(leafNodesCount).to.eql(1);\n\t});\n});\n"]}
|
|
@@ -2,14 +2,13 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
/* globals assert */
|
|
5
|
+
/* globals assert, expect */
|
|
6
6
|
/**
|
|
7
7
|
* @fileoverview In this file, we will test the map property object described in /src/properties/namedNodeProperty.js
|
|
8
8
|
*/
|
|
9
9
|
const { isGUID } = require("@fluid-experimental/property-common").GuidUtils;
|
|
10
10
|
const { PropertyFactory } = require("../..");
|
|
11
11
|
const { ContainerProperty } = require("../..");
|
|
12
|
-
const { NamedNodeProperty } = require("../../properties/namedNodeProperty");
|
|
13
12
|
describe("NamedNodeProperty", function () {
|
|
14
13
|
before(function () {
|
|
15
14
|
// Register a templates
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namedNodeProperty.spec.js","sourceRoot":"","sources":["../../../src/test/properties/namedNodeProperty.spec.js"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,
|
|
1
|
+
{"version":3,"file":"namedNodeProperty.spec.js","sourceRoot":"","sources":["../../../src/test/properties/namedNodeProperty.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, expect */\n\n/**\n * @fileoverview In this file, we will test the map property object described in /src/properties/namedNodeProperty.js\n */\n\nconst { isGUID } = require(\"@fluid-experimental/property-common\").GuidUtils;\n\nconst { PropertyFactory } = require(\"../..\");\nconst { ContainerProperty } = require(\"../..\");\n\ndescribe(\"NamedNodeProperty\", function () {\n\tbefore(function () {\n\t\t// Register a templates\n\t\tvar InheritingDirectlyTemplate = {\n\t\t\ttypeid: \"autodesk.tests:InheritingDirectly-1.0.0\",\n\t\t\tinherits: [\"NamedNodeProperty\"],\n\t\t};\n\t\tvar InheritingSeparatelyTemplate = {\n\t\t\ttypeid: \"autodesk.tests:InheritingSeparately-1.0.0\",\n\t\t\tinherits: [\"NamedProperty\", \"NodeProperty\"],\n\t\t};\n\n\t\tPropertyFactory._reregister(InheritingDirectlyTemplate);\n\t\tPropertyFactory._reregister(InheritingSeparatelyTemplate);\n\t});\n\n\tdescribe(\"Creation and ID\", function () {\n\t\tit(\"should be possible to create a NamedNodeProperty directly\", function () {\n\t\t\tconst typeid = \"NamedNodeProperty\";\n\t\t\tvar property = PropertyFactory.create(typeid);\n\t\t\texpect(property).to.be.an.instanceof(ContainerProperty);\n\n\t\t\texpect(PropertyFactory.inheritsFrom(typeid, \"NamedNodeProperty\")).to.be.true;\n\t\t\texpect(PropertyFactory.inheritsFrom(typeid, \"NamedProperty\")).to.be.true;\n\t\t\texpect(PropertyFactory.inheritsFrom(typeid, \"NodeProperty\")).to.be.true;\n\t\t});\n\n\t\tit(\"should be possible to create it via a template that inherits from NamedNodeProperty\", function () {\n\t\t\tconst typeid = \"autodesk.tests:InheritingDirectly-1.0.0\";\n\t\t\tvar property = PropertyFactory.create(typeid);\n\t\t\texpect(property).to.be.an.instanceof(ContainerProperty);\n\n\t\t\texpect(PropertyFactory.inheritsFrom(typeid, \"NamedNodeProperty\")).to.be.true;\n\t\t\texpect(PropertyFactory.inheritsFrom(typeid, \"NamedProperty\")).to.be.true;\n\t\t\texpect(PropertyFactory.inheritsFrom(typeid, \"NodeProperty\")).to.be.true;\n\t\t});\n\n\t\tit(\"should be possible to create a NamedNodeProperty by inheriting from Named and NodeProperty\", function () {\n\t\t\tconst typeid = \"autodesk.tests:InheritingSeparately-1.0.0\";\n\t\t\tconst property = PropertyFactory.create(typeid);\n\t\t\texpect(property).to.be.an.instanceof(ContainerProperty);\n\n\t\t\texpect(PropertyFactory.inheritsFrom(typeid, \"NamedNodeProperty\")).to.be.false;\n\t\t\texpect(PropertyFactory.inheritsFrom(typeid, \"NamedProperty\")).to.be.true;\n\t\t\texpect(PropertyFactory.inheritsFrom(typeid, \"NodeProperty\")).to.be.true;\n\t\t});\n\n\t\tit(\"a GUID should be assigned on creation\", function () {\n\t\t\tvar property = PropertyFactory.create(\"autodesk.tests:InheritingDirectly-1.0.0\");\n\t\t\texpect(property.getGuid()).not.to.be.not.empty;\n\t\t\tassert(isGUID(property.getGuid()));\n\n\t\t\texpect(property.getGuid()).to.equal(property.getId());\n\t\t});\n\n\t\tit(\"the ID sould be overwritable\", function () {\n\t\t\tvar property = PropertyFactory.create(\"autodesk.tests:InheritingDirectly-1.0.0\");\n\t\t\tproperty._setId(\"test\");\n\t\t\texpect(property.getId()).to.equal(\"test\");\n\t\t});\n\t});\n});\n"]}
|
|
@@ -1484,7 +1484,7 @@ describe("NodeProperty", function () {
|
|
|
1484
1484
|
getPathCoverageSpy = sinon.spy(PathHelper, "getPathCoverage");
|
|
1485
1485
|
});
|
|
1486
1486
|
afterEach(function () {
|
|
1487
|
-
|
|
1487
|
+
getPathCoverageSpy.restore();
|
|
1488
1488
|
});
|
|
1489
1489
|
after(function () { });
|
|
1490
1490
|
it("should succeed if property is included in a path 1", function () {
|