@fluid-experimental/property-properties 2.0.0-internal.3.0.2 → 2.0.0-internal.3.2.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/README.md +1 -0
- package/dist/containerSerializer.d.ts.map +1 -1
- package/dist/containerSerializer.js +5 -5
- package/dist/containerSerializer.js.map +1 -1
- package/dist/enableValidations.js.map +1 -1
- package/dist/index.d.ts +19 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/properties/abstractStaticCollectionProperty.d.ts +10 -10
- package/dist/properties/abstractStaticCollectionProperty.d.ts.map +1 -1
- package/dist/properties/abstractStaticCollectionProperty.js +70 -53
- package/dist/properties/abstractStaticCollectionProperty.js.map +1 -1
- package/dist/properties/arrayProperty.d.ts.map +1 -1
- package/dist/properties/arrayProperty.js +152 -103
- package/dist/properties/arrayProperty.js.map +1 -1
- package/dist/properties/baseProperty.d.ts +4 -4
- package/dist/properties/baseProperty.d.ts.map +1 -1
- package/dist/properties/baseProperty.js +69 -47
- package/dist/properties/baseProperty.js.map +1 -1
- package/dist/properties/boolProperty.d.ts.map +1 -1
- package/dist/properties/boolProperty.js +3 -3
- package/dist/properties/boolProperty.js.map +1 -1
- package/dist/properties/containerProperty.d.ts +8 -8
- package/dist/properties/containerProperty.d.ts.map +1 -1
- package/dist/properties/containerProperty.js +33 -26
- package/dist/properties/containerProperty.js.map +1 -1
- package/dist/properties/enumArrayProperty.d.ts.map +1 -1
- package/dist/properties/enumArrayProperty.js +14 -14
- package/dist/properties/enumArrayProperty.js.map +1 -1
- package/dist/properties/enumProperty.d.ts.map +1 -1
- package/dist/properties/enumProperty.js +17 -17
- package/dist/properties/enumProperty.js.map +1 -1
- package/dist/properties/floatProperties.js +4 -4
- package/dist/properties/floatProperties.js.map +1 -1
- package/dist/properties/index.d.ts +23 -23
- package/dist/properties/index.d.ts.map +1 -1
- package/dist/properties/index.js.map +1 -1
- package/dist/properties/indexedCollectionBaseProperty.d.ts.map +1 -1
- package/dist/properties/indexedCollectionBaseProperty.js +47 -37
- package/dist/properties/indexedCollectionBaseProperty.js.map +1 -1
- package/dist/properties/intProperties.d.ts.map +1 -1
- package/dist/properties/intProperties.js +10 -10
- package/dist/properties/intProperties.js.map +1 -1
- package/dist/properties/lazyLoadedProperties.js.map +1 -1
- package/dist/properties/mapProperty.d.ts.map +1 -1
- package/dist/properties/mapProperty.js +21 -17
- package/dist/properties/mapProperty.js.map +1 -1
- package/dist/properties/namedNodeProperty.d.ts.map +1 -1
- package/dist/properties/namedNodeProperty.js +3 -3
- package/dist/properties/namedNodeProperty.js.map +1 -1
- package/dist/properties/namedProperty.d.ts.map +1 -1
- package/dist/properties/namedProperty.js +7 -5
- package/dist/properties/namedProperty.js.map +1 -1
- package/dist/properties/nodeProperty.d.ts.map +1 -1
- package/dist/properties/nodeProperty.js +5 -3
- package/dist/properties/nodeProperty.js.map +1 -1
- package/dist/properties/primitiveTypeCasts.d.ts.map +1 -1
- package/dist/properties/primitiveTypeCasts.js +9 -9
- package/dist/properties/primitiveTypeCasts.js.map +1 -1
- package/dist/properties/referenceArrayProperty.d.ts.map +1 -1
- package/dist/properties/referenceArrayProperty.js +31 -25
- package/dist/properties/referenceArrayProperty.js.map +1 -1
- package/dist/properties/referenceMapProperty.d.ts.map +1 -1
- package/dist/properties/referenceMapProperty.js +18 -18
- package/dist/properties/referenceMapProperty.js.map +1 -1
- package/dist/properties/referenceProperty.d.ts.map +1 -1
- package/dist/properties/referenceProperty.js +33 -29
- package/dist/properties/referenceProperty.js.map +1 -1
- package/dist/properties/setProperty.d.ts.map +1 -1
- package/dist/properties/setProperty.js +31 -29
- package/dist/properties/setProperty.js.map +1 -1
- package/dist/properties/stringProperty.d.ts.map +1 -1
- package/dist/properties/stringProperty.js +56 -40
- package/dist/properties/stringProperty.js.map +1 -1
- package/dist/properties/uintProperties.js +5 -5
- package/dist/properties/uintProperties.js.map +1 -1
- package/dist/properties/valueArrayProperty.d.ts +1 -1
- package/dist/properties/valueArrayProperty.d.ts.map +1 -1
- package/dist/properties/valueArrayProperty.js +30 -29
- package/dist/properties/valueArrayProperty.js.map +1 -1
- package/dist/properties/valueMapProperty.d.ts.map +1 -1
- package/dist/properties/valueMapProperty.js +31 -29
- package/dist/properties/valueMapProperty.js.map +1 -1
- package/dist/properties/valueProperty.d.ts.map +1 -1
- package/dist/properties/valueProperty.js +11 -9
- package/dist/properties/valueProperty.js.map +1 -1
- package/dist/propertyFactory.d.ts.map +1 -1
- package/dist/propertyFactory.js +309 -252
- package/dist/propertyFactory.js.map +1 -1
- package/dist/propertyTemplate.d.ts +17 -17
- package/dist/propertyTemplate.d.ts.map +1 -1
- package/dist/propertyTemplate.js +64 -45
- package/dist/propertyTemplate.js.map +1 -1
- package/dist/propertyTemplateWrapper.d.ts.map +1 -1
- package/dist/propertyTemplateWrapper.js +40 -25
- package/dist/propertyTemplateWrapper.js.map +1 -1
- package/dist/propertyUtils.d.ts.map +1 -1
- package/dist/propertyUtils.js.map +1 -1
- package/dist/test/properties/arrayProperty.spec.js +566 -490
- package/dist/test/properties/arrayProperty.spec.js.map +1 -1
- package/dist/test/properties/baseProperty.spec.js +293 -280
- package/dist/test/properties/baseProperty.spec.js.map +1 -1
- package/dist/test/properties/containerProperty.spec.js +100 -94
- package/dist/test/properties/containerProperty.spec.js.map +1 -1
- package/dist/test/properties/customArrayProperty.spec.js +174 -147
- package/dist/test/properties/customArrayProperty.spec.js.map +1 -1
- package/dist/test/properties/enumArrayProperty.spec.js +67 -63
- package/dist/test/properties/enumArrayProperty.spec.js.map +1 -1
- package/dist/test/properties/enumProperty.spec.js +115 -97
- package/dist/test/properties/enumProperty.spec.js.map +1 -1
- package/dist/test/properties/float32.spec.js +5 -5
- package/dist/test/properties/float32.spec.js.map +1 -1
- package/dist/test/properties/int64ArrayProperty.spec.js +157 -93
- package/dist/test/properties/int64ArrayProperty.spec.js.map +1 -1
- package/dist/test/properties/int64MapProperty.spec.js +185 -166
- package/dist/test/properties/int64MapProperty.spec.js.map +1 -1
- package/dist/test/properties/int64Property.spec.js +109 -109
- package/dist/test/properties/int64Property.spec.js.map +1 -1
- package/dist/test/properties/isLeafNode.spec.js +75 -76
- package/dist/test/properties/isLeafNode.spec.js.map +1 -1
- package/dist/test/properties/mapProperty.spec.js +571 -531
- package/dist/test/properties/mapProperty.spec.js.map +1 -1
- package/dist/test/properties/namedNodeProperty.spec.js +31 -31
- package/dist/test/properties/namedNodeProperty.spec.js.map +1 -1
- package/dist/test/properties/nodeProperty.spec.js +805 -795
- package/dist/test/properties/nodeProperty.spec.js.map +1 -1
- package/dist/test/properties/referenceProperty.spec.js +729 -679
- package/dist/test/properties/referenceProperty.spec.js.map +1 -1
- package/dist/test/properties/relationshipProperty.spec.js +16 -16
- package/dist/test/properties/relationshipProperty.spec.js.map +1 -1
- package/dist/test/properties/setProperty.spec.js +288 -227
- package/dist/test/properties/setProperty.spec.js.map +1 -1
- package/dist/test/properties/stringProperty.spec.js +326 -318
- package/dist/test/properties/stringProperty.spec.js.map +1 -1
- package/dist/test/properties/uint64Property.spec.js +46 -36
- package/dist/test/properties/uint64Property.spec.js.map +1 -1
- package/dist/test/properties/valueMapProperty.spec.js +259 -246
- package/dist/test/properties/valueMapProperty.spec.js.map +1 -1
- package/dist/test/properties/valueProperty.spec.js +49 -43
- package/dist/test/properties/valueProperty.spec.js.map +1 -1
- package/dist/test/propertyFactory.spec.js +2038 -1631
- package/dist/test/propertyFactory.spec.js.map +1 -1
- package/dist/test/propertyTemplateWrapper.spec.js +72 -102
- package/dist/test/propertyTemplateWrapper.spec.js.map +1 -1
- package/dist/test/propertyUtils.spec.js +22 -21
- package/dist/test/propertyUtils.spec.js.map +1 -1
- package/dist/test/reversibleChangeset.spec.js +857 -703
- package/dist/test/reversibleChangeset.spec.js.map +1 -1
- package/dist/test/setup.js +5 -5
- package/dist/test/setup.js.map +1 -1
- package/dist/test/tsconfig.tsbuildinfo +1 -1
- package/dist/test/utils.spec.js +1334 -1144
- package/dist/test/utils.spec.js.map +1 -1
- package/dist/test/validation/badMissingSemverInTypeid.js +20 -20
- package/dist/test/validation/badMissingSemverInTypeid.js.map +1 -1
- package/dist/test/validation/badPrimitiveTypeid.js +12 -12
- package/dist/test/validation/badPrimitiveTypeid.js.map +1 -1
- package/dist/test/validation/goodColorId.js +91 -91
- package/dist/test/validation/goodColorId.js.map +1 -1
- package/dist/test/validation/goodColorPalette.js +4 -4
- package/dist/test/validation/goodColorPalette.js.map +1 -1
- package/dist/test/validation/goodPointId.js +20 -20
- package/dist/test/validation/goodPointId.js.map +1 -1
- package/dist/test/validation/reversibleChangeSetTestData.js +23841 -2
- package/dist/test/validation/reversibleChangeSetTestData.js.map +1 -1
- package/lib/containerSerializer.d.ts.map +1 -1
- package/lib/containerSerializer.js +5 -5
- package/lib/containerSerializer.js.map +1 -1
- package/lib/enableValidations.js.map +1 -1
- package/lib/index.d.ts +19 -19
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +19 -19
- package/lib/index.js.map +1 -1
- package/lib/properties/abstractStaticCollectionProperty.d.ts +10 -10
- package/lib/properties/abstractStaticCollectionProperty.d.ts.map +1 -1
- package/lib/properties/abstractStaticCollectionProperty.js +70 -53
- package/lib/properties/abstractStaticCollectionProperty.js.map +1 -1
- package/lib/properties/arrayProperty.d.ts.map +1 -1
- package/lib/properties/arrayProperty.js +152 -103
- package/lib/properties/arrayProperty.js.map +1 -1
- package/lib/properties/baseProperty.d.ts +4 -4
- package/lib/properties/baseProperty.d.ts.map +1 -1
- package/lib/properties/baseProperty.js +73 -51
- package/lib/properties/baseProperty.js.map +1 -1
- package/lib/properties/boolProperty.d.ts.map +1 -1
- package/lib/properties/boolProperty.js +3 -3
- package/lib/properties/boolProperty.js.map +1 -1
- package/lib/properties/containerProperty.d.ts +8 -8
- package/lib/properties/containerProperty.d.ts.map +1 -1
- package/lib/properties/containerProperty.js +33 -26
- package/lib/properties/containerProperty.js.map +1 -1
- package/lib/properties/enumArrayProperty.d.ts.map +1 -1
- package/lib/properties/enumArrayProperty.js +14 -14
- package/lib/properties/enumArrayProperty.js.map +1 -1
- package/lib/properties/enumProperty.d.ts.map +1 -1
- package/lib/properties/enumProperty.js +17 -17
- package/lib/properties/enumProperty.js.map +1 -1
- package/lib/properties/floatProperties.js +4 -4
- package/lib/properties/floatProperties.js.map +1 -1
- package/lib/properties/index.d.ts +23 -23
- package/lib/properties/index.d.ts.map +1 -1
- package/lib/properties/index.js +23 -23
- package/lib/properties/index.js.map +1 -1
- package/lib/properties/indexedCollectionBaseProperty.d.ts.map +1 -1
- package/lib/properties/indexedCollectionBaseProperty.js +47 -37
- package/lib/properties/indexedCollectionBaseProperty.js.map +1 -1
- package/lib/properties/intProperties.d.ts.map +1 -1
- package/lib/properties/intProperties.js +10 -10
- package/lib/properties/intProperties.js.map +1 -1
- package/lib/properties/lazyLoadedProperties.js.map +1 -1
- package/lib/properties/mapProperty.d.ts.map +1 -1
- package/lib/properties/mapProperty.js +21 -17
- package/lib/properties/mapProperty.js.map +1 -1
- package/lib/properties/namedNodeProperty.d.ts.map +1 -1
- package/lib/properties/namedNodeProperty.js +3 -3
- package/lib/properties/namedNodeProperty.js.map +1 -1
- package/lib/properties/namedProperty.d.ts.map +1 -1
- package/lib/properties/namedProperty.js +7 -5
- package/lib/properties/namedProperty.js.map +1 -1
- package/lib/properties/nodeProperty.d.ts.map +1 -1
- package/lib/properties/nodeProperty.js +5 -3
- package/lib/properties/nodeProperty.js.map +1 -1
- package/lib/properties/primitiveTypeCasts.d.ts.map +1 -1
- package/lib/properties/primitiveTypeCasts.js +9 -9
- package/lib/properties/primitiveTypeCasts.js.map +1 -1
- package/lib/properties/referenceArrayProperty.d.ts.map +1 -1
- package/lib/properties/referenceArrayProperty.js +31 -25
- package/lib/properties/referenceArrayProperty.js.map +1 -1
- package/lib/properties/referenceMapProperty.d.ts.map +1 -1
- package/lib/properties/referenceMapProperty.js +18 -18
- package/lib/properties/referenceMapProperty.js.map +1 -1
- package/lib/properties/referenceProperty.d.ts.map +1 -1
- package/lib/properties/referenceProperty.js +33 -29
- package/lib/properties/referenceProperty.js.map +1 -1
- package/lib/properties/setProperty.d.ts.map +1 -1
- package/lib/properties/setProperty.js +31 -29
- package/lib/properties/setProperty.js.map +1 -1
- package/lib/properties/stringProperty.d.ts.map +1 -1
- package/lib/properties/stringProperty.js +56 -40
- package/lib/properties/stringProperty.js.map +1 -1
- package/lib/properties/uintProperties.js +5 -5
- package/lib/properties/uintProperties.js.map +1 -1
- package/lib/properties/valueArrayProperty.d.ts +1 -1
- package/lib/properties/valueArrayProperty.d.ts.map +1 -1
- package/lib/properties/valueArrayProperty.js +30 -29
- package/lib/properties/valueArrayProperty.js.map +1 -1
- package/lib/properties/valueMapProperty.d.ts.map +1 -1
- package/lib/properties/valueMapProperty.js +31 -29
- package/lib/properties/valueMapProperty.js.map +1 -1
- package/lib/properties/valueProperty.d.ts.map +1 -1
- package/lib/properties/valueProperty.js +11 -9
- package/lib/properties/valueProperty.js.map +1 -1
- package/lib/propertyFactory.d.ts.map +1 -1
- package/lib/propertyFactory.js +309 -252
- package/lib/propertyFactory.js.map +1 -1
- package/lib/propertyTemplate.d.ts +17 -17
- package/lib/propertyTemplate.d.ts.map +1 -1
- package/lib/propertyTemplate.js +64 -45
- package/lib/propertyTemplate.js.map +1 -1
- package/lib/propertyTemplateWrapper.d.ts.map +1 -1
- package/lib/propertyTemplateWrapper.js +40 -25
- package/lib/propertyTemplateWrapper.js.map +1 -1
- package/lib/propertyUtils.d.ts.map +1 -1
- package/lib/propertyUtils.js.map +1 -1
- package/package.json +28 -28
- package/src/index.d.ts +2750 -2681
|
@@ -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, nodeProp, containedInt64Prop, directInt64Prop, Int64, Uint64,\n BaseProperty, ChangeSet, TestInt64ArrayTemplate, MSG;\n\ndescribe('Test Int64Property', function() {\n /**\n * Get all the objects we need in this test here.\n */\n before(function() {\n PropertyFactory = require('../..').PropertyFactory;\n BaseProperty = require('../..').BaseProperty;\n ChangeSet = require('@fluid-experimental/property-changeset').ChangeSet;\n Int64 = require('@fluid-experimental/property-common').Int64;\n Uint64 = require('@fluid-experimental/property-common').Uint64;\n MSG = require('@fluid-experimental/property-common').constants.MSG;\n\n TestInt64ArrayTemplate = {\n typeid: 'autodesk.tests:Int64TestID-1.0.0',\n properties: [\n { id: 'myInt64', typeid: 'Int64' },\n { id: 'myUint64', typeid: 'Uint64' },\n ],\n };\n PropertyFactory._reregister(TestInt64ArrayTemplate);\n\n nodeProp = PropertyFactory.create('autodesk.tests:Int64TestID-1.0.0');\n containedInt64Prop = nodeProp._properties.myInt64;\n directInt64Prop = PropertyFactory.create('Int64');\n });\n\n it('should correctly set/get the values', function() {\n containedInt64Prop.setValueHigh(33);\n containedInt64Prop.setValueLow(22);\n expect(containedInt64Prop.getValueLow()).to.be.equal(22);\n expect(containedInt64Prop.getValueHigh()).to.be.equal(33);\n expect(containedInt64Prop.value.getValueLow()).to.be.equal(22);\n expect(containedInt64Prop.value.getValueHigh()).to.be.equal(33);\n containedInt64Prop.value = new Int64(11, 12);\n expect(containedInt64Prop.getValueLow()).to.be.equal(11);\n expect(containedInt64Prop.getValueHigh()).to.be.equal(12);\n expect(containedInt64Prop.value.getValueLow()).to.be.equal(11);\n expect(containedInt64Prop.value.getValueHigh()).to.be.equal(12);\n\n // changing the value inderectly should be impossible\n expect(containedInt64Prop.value.setValueLow).to.not.exist;\n expect(containedInt64Prop.value.setValueHigh).to.not.exist;\n });\n\n it('should correctly setValue when passed a number', function() {\n const prop = PropertyFactory.create('Int64');\n const value = 123;\n prop.setValue(value);\n expect(prop.getValueLow()).to.equal(value);\n expect(prop.getValueHigh()).to.equal(0);\n expect(prop.toString()).to.equal(value.toString());\n });\n\n it('should correctly setValue when passed a negative number', function() {\n const prop = PropertyFactory.create('Int64');\n const value = -123;\n prop.setValue(value);\n expect(prop.toString()).to.equal(value.toString());\n });\n\n it('should correctly setValue when passed a large number (above MAX_SAFE_INT)', function() {\n const prop = PropertyFactory.create('Int64');\n const value = Math.pow(2, 53) - 1000;\n prop.setValue(value);\n\n expect(prop.toString()).to.equal(value.toString());\n expect(prop.getValueLow()).to.equal(4294966296);\n expect(prop.getValueHigh()).to.equal(2097151);\n });\n\n it('should correctly setValue when passed a large negative number (below MIN_SAFE_INT)', function() {\n const prop = PropertyFactory.create('Int64');\n const value = -Math.pow(2, 53) + 1000;\n prop.setValue(value);\n\n expect(prop.toString()).to.equal(value.toString());\n expect(prop.getValueLow()).to.equal(1000);\n expect(prop.getValueHigh()).to.equal(-2097152);\n });\n\n it('should correctly setValue when passed a string', function() {\n const prop = PropertyFactory.create('Int64');\n prop.setValue('1234567890');\n expect(prop.toString()).to.equal('1234567890');\n });\n\n it('should throw error when passed a string with non numbers', function() {\n const prop = PropertyFactory.create('Int64');\n expect(prop.setValue.bind(prop, 'error')).to.throw(MSG.CANNOT_PARSE_INVALID_CHARACTERS + 'error');\n });\n\n it('should correctly convert to string', function() {\n containedInt64Prop.value = new Int64(4294967295, 2147483647); // 2^63-1\n expect(containedInt64Prop.toString()).to.be.equal('9223372036854775807');\n\n containedInt64Prop.value = new Int64(0, 2147483648); // -2^63\n expect(containedInt64Prop.toString()).to.be.equal('-9223372036854775808');\n\n containedInt64Prop.value = new Int64(845094001, 1810905006);\n expect(containedInt64Prop.toString()).to.be.equal('7777777777777777777');\n\n containedInt64Prop.value = new Int64(845094001, 0);\n expect(containedInt64Prop.toString()).to.be.equal('845094001');\n\n containedInt64Prop.value = new Int64(0, 845094001);\n expect(containedInt64Prop.toString()).to.be.equal('3629651096340791296');\n\n containedInt64Prop.value = new Int64(0, 0xFFFFFFFF);\n expect(containedInt64Prop.toString()).to.be.equal('-4294967296');\n\n containedInt64Prop.value = new Int64(0xFFFFFFFF, 0xFFFFFFFF);\n expect(containedInt64Prop.toString()).to.be.equal('-1');\n });\n\n it('int64.fromString should work correctly', function() {\n containedInt64Prop.value = new Int64(0, 0);\n expect(containedInt64Prop.toString()).to.be.equal('0');\n\n containedInt64Prop.fromString('3629651096340791296');\n expect(containedInt64Prop.value.getValueHigh()).to.be.equal(845094001);\n expect(containedInt64Prop.value.getValueLow()).to.be.equal(0);\n\n containedInt64Prop.fromString('9223372036854775807');\n expect(containedInt64Prop.value.getValueHigh()).to.be.equal(2147483647);\n expect(containedInt64Prop.value.getValueLow()).to.be.equal(4294967295);\n\n containedInt64Prop.fromString('-1');\n expect(containedInt64Prop.toString()).to.be.equal('-1');\n\n containedInt64Prop.fromString('0');\n expect(containedInt64Prop.toString()).to.be.equal('0');\n\n containedInt64Prop.fromString('18446744073709551615');\n expect(containedInt64Prop.value.getValueHigh()).to.be.equal(0xFFFFFFFF);\n expect(containedInt64Prop.value.getValueLow()).to.be.equal(0xFFFFFFFF);\n });\n\n it('should correctly serialize/deserialize', function() {\n containedInt64Prop.value = new Int64(11, 12);\n\n var serialized = containedInt64Prop.serialize({ 'dirtyOnly': true });\n expect(serialized).to.deep.equal([11, 12]);\n containedInt64Prop.cleanDirty();\n serialized = containedInt64Prop.serialize({ 'dirtyOnly': true });\n assert.deepEqual(serialized, {});\n\n var deserializeResult = directInt64Prop.deserialize(containedInt64Prop.serialize({ 'dirtyOnly': false }));\n expect(deserializeResult).to.deep.equal([11, 12]);\n deserializeResult = directInt64Prop.deserialize(containedInt64Prop.serialize({ 'dirtyOnly': false }));\n expect(deserializeResult).to.not.exist;\n expect(directInt64Prop.getValueLow()).to.be.equal(11);\n expect(directInt64Prop.getValueHigh()).to.be.equal(12);\n\n var otherNodeProp = PropertyFactory.create('autodesk.tests:Int64TestID-1.0.0');\n otherNodeProp.deserialize(nodeProp.serialize({ 'dirtyOnly': false }));\n expect(otherNodeProp._properties.myInt64.getValueLow()).to.be.equal(11);\n expect(otherNodeProp._properties.myInt64.getValueHigh()).to.be.equal(12);\n });\n\n it('should correctly dirty on set', function() {\n directInt64Prop.cleanDirty();\n expect(directInt64Prop.isDirty()).to.be.false;\n directInt64Prop.value = new Int64(32, 42);\n expect(directInt64Prop.isDirty()).to.be.true;\n\n directInt64Prop.cleanDirty();\n expect(directInt64Prop.isDirty()).to.be.false;\n directInt64Prop.setValueHigh(66);\n expect(directInt64Prop.isDirty()).to.be.true;\n directInt64Prop.cleanDirty();\n directInt64Prop.setValueHigh(66);\n expect(directInt64Prop.isDirty()).to.be.false;\n\n directInt64Prop.cleanDirty();\n expect(directInt64Prop.isDirty()).to.be.false;\n directInt64Prop.setValueLow(33);\n expect(directInt64Prop.isDirty()).to.be.true;\n directInt64Prop.cleanDirty();\n directInt64Prop.setValueLow(33);\n expect(directInt64Prop.isDirty()).to.be.false;\n });\n\n it('should not violate the ChangeSet Specificaton', function() {\n containedInt64Prop.value = new Int64(32, 42);\n nodeProp._properties.myUint64.value = new Uint64(99, 110);\n expect(nodeProp.serialize({ 'dirtyOnly': false })).to.deep.equal(\n {\n Int64: {\n myInt64: [32, 42],\n },\n Uint64: {\n myUint64: [99, 110],\n },\n },\n );\n });\n\n describe('squashing', function() {\n // Helper function to test the squashing for different containers\n var innerTestChangeSetSquashing = function(io_testProperty, io_intProperty,\n io_initialChangeset, in_options, in_collection) {\n var squashedChangeset = new ChangeSet();\n io_testProperty.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n var callbacks = in_options.callbacks;\n for (var i = 0; i < callbacks.length; i++) {\n callbacks[i](io_intProperty);\n var changes = io_testProperty.serialize({ 'dirtyOnly': true });\n io_testProperty.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n squashedChangeset.applyChangeSet(changes);\n // regression test for not-deep-copying array changes\n if (changes.modify) {\n changes.modify.Int64.intProperty[0] = 888;\n } else {\n changes.Int64.myInt64[0] = 999;\n }\n }\n\n io_initialChangeset.applyChangeSet(squashedChangeset.getSerializedChangeSet());\n };\n\n //\n // Helper function which takes a sequence of callbacks that are successively executed\n // and the changes applied by the callbacks are separately tracked and squashed in a\n // a ChangeSet. This ChangeSet is then compared to the state in the property object\n //\n // Optionally, a a callback which controls the initial state before the squashing can\n // be given as first parameter\n //\n var testChangeSetSquashing = function(in_options) {\n var testProperty = PropertyFactory.create('autodesk.tests:Int64TestID-1.0.0');\n var nodeTestProperty = PropertyFactory.create('NodeProperty');\n var int64InNodeProperty = PropertyFactory.create('Int64');\n nodeTestProperty.insert('intProperty', int64InNodeProperty);\n var mapTestProperty = PropertyFactory.create('map<>');\n var int64InMapProperty = PropertyFactory.create('Int64');\n mapTestProperty.insert('intProperty', int64InMapProperty);\n\n if (in_options.pre) {\n in_options.pre(testProperty._properties.intProperty);\n in_options.pre(int64InNodeProperty);\n in_options.pre(int64InMapProperty);\n }\n\n var initialChangeset = new ChangeSet(testProperty.serialize({ 'dirtyOnly': false }));\n initialChangeset.setIsNormalized(true);\n var initialChangesetNode = new ChangeSet(nodeTestProperty.serialize({ 'dirtyOnly': false }));\n initialChangesetNode.setIsNormalized(true);\n var initialChangesetMap = new ChangeSet(mapTestProperty.serialize({ 'dirtyOnly': false }));\n initialChangesetMap.setIsNormalized(true);\n\n innerTestChangeSetSquashing(testProperty,\n testProperty._properties.myInt64, initialChangeset, in_options);\n innerTestChangeSetSquashing(nodeTestProperty,\n int64InNodeProperty, initialChangesetNode, in_options, true);\n innerTestChangeSetSquashing(mapTestProperty,\n int64InMapProperty, initialChangesetMap, in_options, true);\n\n var initialChangeset = initialChangeset.getSerializedChangeSet().Int64.intProperty;\n expect(initialChangeset).to.deep.equal(testProperty.serialize({ 'dirtyOnly': false }).Int64.intProperty);\n\n var nodeInitialChangeset = initialChangesetNode.getSerializedChangeSet().insert.Int64.intProperty;\n expect(nodeInitialChangeset).to.deep.equal(nodeTestProperty.serialize(\n { 'dirtyOnly': false }).insert.Int64.intProperty);\n\n var mapInitialChangeset = initialChangesetMap.getSerializedChangeSet().insert.Int64.intProperty;\n expect(mapInitialChangeset).to.deep.equal(mapTestProperty.serialize(\n { 'dirtyOnly': false }).insert.Int64.intProperty);\n };\n\n it('should correctly squash 64bit properties', function() {\n testChangeSetSquashing({\n callbacks: [\n function(io_prop) {\n io_prop.setValueHigh(1);\n },\n function(io_prop) {\n io_prop.setValueHigh(2);\n },\n ],\n });\n });\n\n it('should correctly squash low/high 64bit property changes', function() {\n testChangeSetSquashing({\n callbacks: [\n function(io_prop) {\n io_prop.setValueHigh(1);\n },\n function(io_prop) {\n io_prop.setValueLow(2);\n },\n ],\n });\n });\n\n it('should squash two ChangeSets, one inserts the other modifies the same Int64 property', function() {\n var nodeTestProperty = PropertyFactory.create('NodeProperty');\n var int64Property = PropertyFactory.create('Int64');\n nodeTestProperty.insert('myProp', int64Property);\n\n var changeSet1 = new ChangeSet(nodeTestProperty.serialize({ dirtyOnly: true }));\n\n nodeTestProperty.cleanDirty();\n nodeTestProperty.resolvePath('myProp').setValueHigh(100);\n var changeSet2 = new ChangeSet(nodeTestProperty.serialize({ dirtyOnly: true }));\n\n var nodeTestProperty = PropertyFactory.create('NodeProperty');\n var int64Property = PropertyFactory.create('Int64');\n int64Property.setValueHigh(100);\n nodeTestProperty.insert('myProp', int64Property);\n var expectedChangeSet = nodeTestProperty.serialize({ dirtyOnly: true });\n\n changeSet1.applyChangeSet(changeSet2);\n\n expect(\n changeSet1.getSerializedChangeSet().insert.Int64.myProp ===\n changeSet2.getSerializedChangeSet().modify.Int64.myProp,\n ).to.be.false;\n expect(changeSet1.getSerializedChangeSet()).to.eql(expectedChangeSet);\n });\n\n it('should squash two ChangeSets, one inserts the other modifies the same Int64 property', function() {\n var nodeTestProperty = PropertyFactory.create('NodeProperty');\n var Uint64Property = PropertyFactory.create('Uint64');\n nodeTestProperty.insert('myProp', Uint64Property);\n\n var changeSet1 = new ChangeSet(nodeTestProperty.serialize({ dirtyOnly: true }));\n\n nodeTestProperty.cleanDirty();\n nodeTestProperty.resolvePath('myProp').setValueHigh(100);\n var changeSet2 = new ChangeSet(nodeTestProperty.serialize({ dirtyOnly: true }));\n\n var nodeTestProperty = PropertyFactory.create('NodeProperty');\n var Uint64Property = PropertyFactory.create('Uint64');\n Uint64Property.setValueHigh(100);\n nodeTestProperty.insert('myProp', Uint64Property);\n var expectedChangeSet = nodeTestProperty.serialize({ dirtyOnly: true });\n\n changeSet1.applyChangeSet(changeSet2);\n\n expect(\n changeSet1.getSerializedChangeSet().insert.Uint64.myProp ===\n changeSet2.getSerializedChangeSet().modify.Uint64.myProp,\n ).to.be.false;\n expect(changeSet1.getSerializedChangeSet()).to.eql(expectedChangeSet);\n });\n });\n\n describe('rebasing', function() {\n var createPropertyForRebaseTestByTemplate = function() {\n return PropertyFactory.create('autodesk.tests:Int64TestID-1.0.0');\n };\n\n var createNodePropertyForRebase = function() {\n var nodeTestProperty = PropertyFactory.create('NodeProperty');\n var int64InNodeProperty = PropertyFactory.create('Int64');\n nodeTestProperty.insert('myInt64', int64InNodeProperty);\n return nodeTestProperty;\n };\n\n var createMapPropertyForRebase = function() {\n var mapTestProperty = PropertyFactory.create('map<>');\n var int64InNodeProperty = PropertyFactory.create('Int64');\n mapTestProperty.insert('myInt64', int64InNodeProperty);\n return mapTestProperty;\n };\n\n var getIntPropertyFromNode = function(in_testProperty) {\n return in_testProperty._properties.myInt64;\n };\n\n var getIntPropertyFromMap = function(in_testProperty) {\n return in_testProperty.get('myInt64');\n };\n\n var testRebasingInner = function(in_creator, in_getInnerProperty, in_options, in_isCollection) {\n // Prepare the initial state\n var baseProperty1 = in_creator();\n if (in_options.prepare) {\n in_options.prepare(in_getInnerProperty(baseProperty1));\n }\n // Create two copies of this state\n var baseProperty2 = in_creator();\n baseProperty2.deserialize(baseProperty1.serialize({ 'dirtyOnly': false }));\n var baseProperty3 = in_creator();\n baseProperty3.deserialize(baseProperty1.serialize({ 'dirtyOnly': false }));\n\n // Make sure the states are clear\n baseProperty1.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n baseProperty2.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n baseProperty3.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n\n var initialChangeSet = baseProperty1.serialize({ 'dirtyOnly': false });\n\n // Apply the operations to the two properties in parallel\n if (in_options.op1) {\n in_options.op1(in_getInnerProperty(baseProperty1));\n }\n if (in_options.op2) {\n in_options.op2(in_getInnerProperty(baseProperty2));\n }\n\n // Get the ChangeSets\n var changeSet1 = new ChangeSet(baseProperty1.serialize({ 'dirtyOnly': true }));\n var changeSet2 = baseProperty2.serialize({ 'dirtyOnly': true });\n\n // Perform the actual rebase\n var conflicts = [];\n changeSet1._rebaseChangeSet(changeSet2, conflicts);\n\n var combinedChangeSet = new ChangeSet(initialChangeSet).clone();\n combinedChangeSet.setIsNormalized(true);\n combinedChangeSet.setIsNormalized(true);\n combinedChangeSet.applyChangeSet(changeSet1);\n combinedChangeSet.applyChangeSet(changeSet2);\n\n if (in_options.compareToSequential) {\n if (in_options.op1) {\n in_options.op1(in_getInnerProperty(baseProperty3));\n }\n if (in_options.op2) {\n in_options.op2(in_getInnerProperty(baseProperty3));\n }\n var finalChangeSet = baseProperty3.serialize({ 'dirtyOnly': false });\n if (in_isCollection && finalChangeSet.insert) {\n finalChangeSet = finalChangeSet.insert;\n }\n\n var combinedSerialized = combinedChangeSet.getSerializedChangeSet();\n if (in_isCollection && combinedSerialized.insert) {\n combinedSerialized = combinedSerialized.insert;\n }\n\n expect(combinedSerialized).to.deep.equal(finalChangeSet);\n }\n\n if (in_options.checkResult) {\n if (in_isCollection && changeSet2.modify) {\n changeSet2 = changeSet2.modify;\n }\n in_options.checkResult(conflicts, changeSet2, combinedChangeSet);\n }\n };\n\n var testRebasing = function(in_options) {\n testRebasingInner(createPropertyForRebaseTestByTemplate, getIntPropertyFromNode, in_options);\n testRebasingInner(createNodePropertyForRebase, getIntPropertyFromNode, in_options, true);\n testRebasingInner(createMapPropertyForRebase, getIntPropertyFromMap, in_options, true);\n };\n\n it('with two modifies should be possible and report a conflict', function() {\n testRebasing({\n op1: function(io_prop) {\n io_prop.setValueHigh(1);\n },\n op2: function(io_prop) {\n io_prop.setValueHigh(2);\n },\n compareToSequential: true,\n checkResult: function(conflicts, changeSet) {\n expect(conflicts).to.have.length(1);\n expect(changeSet.Int64.myInt64).to.deep.equal([0, 2]);\n expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);\n },\n });\n });\n\n it('with low/high modifies should be possible and report a conflict', function() {\n testRebasing({\n op1: function(io_prop) {\n io_prop.setValueHigh(1);\n },\n op2: function(io_prop) {\n io_prop.setValueLow(2);\n },\n compareToSequential: false,\n checkResult: function(conflicts, changeSet) {\n expect(conflicts).to.have.length(1);\n expect(changeSet.Int64.myInt64).to.deep.equal([2, 0]);\n expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);\n },\n });\n });\n });\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(\n\t\t\t\tmapTestProperty.serialize({ dirtyOnly: false }),\n\t\t\t);\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(\n\t\t\t\tcreateNodePropertyForRebase,\n\t\t\t\tgetIntPropertyFromNode,\n\t\t\t\tin_options,\n\t\t\t\ttrue,\n\t\t\t);\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"]}
|
|
@@ -10,32 +10,32 @@ let DeferredPromise;
|
|
|
10
10
|
let ChangeSet;
|
|
11
11
|
let deepCopy;
|
|
12
12
|
const AllProperties = {
|
|
13
|
-
typeid:
|
|
14
|
-
inherits:
|
|
13
|
+
typeid: "mysample:all-1.0.0",
|
|
14
|
+
inherits: "NamedProperty",
|
|
15
15
|
constants: [
|
|
16
|
-
{ id:
|
|
17
|
-
{ id:
|
|
18
|
-
{ id:
|
|
19
|
-
{ id:
|
|
20
|
-
{ id:
|
|
16
|
+
{ id: "const_int8", typeid: "Int8", value: 111 },
|
|
17
|
+
{ id: "const_int16", typeid: "Int16", value: 111 },
|
|
18
|
+
{ id: "const_int32", typeid: "Int32", value: 111 },
|
|
19
|
+
{ id: "const_bool", typeid: "Bool", value: true },
|
|
20
|
+
{ id: "const_string", typeid: "String", value: "This is a string" },
|
|
21
21
|
],
|
|
22
22
|
properties: [
|
|
23
|
-
{ id:
|
|
24
|
-
{ id:
|
|
25
|
-
{ id:
|
|
26
|
-
{ id:
|
|
27
|
-
{ id:
|
|
28
|
-
{ id:
|
|
29
|
-
{ id:
|
|
30
|
-
{ id:
|
|
31
|
-
{ id:
|
|
32
|
-
{ id:
|
|
33
|
-
{ id:
|
|
23
|
+
{ id: "int8", typeid: "Int8" },
|
|
24
|
+
{ id: "int16", typeid: "Int16" },
|
|
25
|
+
{ id: "int32", typeid: "Int32" },
|
|
26
|
+
{ id: "int64", typeid: "Int64" },
|
|
27
|
+
{ id: "uint32", typeid: "Uint32" },
|
|
28
|
+
{ id: "uint64", typeid: "Uint64" },
|
|
29
|
+
{ id: "float32", typeid: "Float32" },
|
|
30
|
+
{ id: "float64", typeid: "Float64" },
|
|
31
|
+
{ id: "bool", typeid: "Bool" },
|
|
32
|
+
{ id: "string", typeid: "String" },
|
|
33
|
+
{ id: "nodeProp", typeid: "NodeProperty" },
|
|
34
34
|
{
|
|
35
|
-
id:
|
|
35
|
+
id: "nestedProps",
|
|
36
36
|
properties: [
|
|
37
|
-
{ id:
|
|
38
|
-
{ id:
|
|
37
|
+
{ id: "string", typeid: "String" },
|
|
38
|
+
{ id: "bool", typeid: "Bool" },
|
|
39
39
|
],
|
|
40
40
|
},
|
|
41
41
|
],
|
|
@@ -44,72 +44,71 @@ var createPropertyInsertAndCommit = function (workspace, typeid, context, propId
|
|
|
44
44
|
const prop = PropertyFactory.create(typeid, context);
|
|
45
45
|
workspace.insert(propId, prop);
|
|
46
46
|
};
|
|
47
|
-
describe(
|
|
47
|
+
describe("property-properties.Utils isLeafNode", function () {
|
|
48
48
|
let root;
|
|
49
49
|
/**
|
|
50
50
|
* Get all the objects we need in this test here.
|
|
51
51
|
*/
|
|
52
52
|
before(function () {
|
|
53
|
-
PropertyFactory = require(
|
|
54
|
-
ChangeSet = require(
|
|
55
|
-
_ = require(
|
|
53
|
+
PropertyFactory = require("../..").PropertyFactory;
|
|
54
|
+
ChangeSet = require("@fluid-experimental/property-changeset").ChangeSet;
|
|
55
|
+
_ = require("lodash");
|
|
56
56
|
deepCopy = _.cloneDeep;
|
|
57
57
|
PropertyFactory.register(AllProperties);
|
|
58
58
|
PropertyFactory.register({
|
|
59
|
-
typeid:
|
|
60
|
-
properties: [
|
|
61
|
-
{ id: 'string', typeid: 'String' },
|
|
62
|
-
],
|
|
59
|
+
typeid: "autodesk.tests:entry-1.0.0",
|
|
60
|
+
properties: [{ id: "string", typeid: "String" }],
|
|
63
61
|
});
|
|
64
62
|
PropertyFactory.register({
|
|
65
|
-
typeid:
|
|
66
|
-
inherits: [
|
|
67
|
-
properties: [
|
|
68
|
-
{ id: 'string', typeid: 'String' },
|
|
69
|
-
],
|
|
63
|
+
typeid: "autodesk.tests:namedEntry-1.0.0",
|
|
64
|
+
inherits: ["NamedProperty"],
|
|
65
|
+
properties: [{ id: "string", typeid: "String" }],
|
|
70
66
|
});
|
|
71
67
|
PropertyFactory.register({
|
|
72
|
-
typeid:
|
|
68
|
+
typeid: "autodesk.tests:array-1.0.0",
|
|
73
69
|
properties: [
|
|
74
70
|
{
|
|
75
|
-
id:
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
],
|
|
71
|
+
id: "array",
|
|
72
|
+
typeid: "autodesk.tests:entry-1.0.0",
|
|
73
|
+
context: "array",
|
|
74
|
+
value: [{ string: "I am a string 1" }, { string: "I am a string 2" }],
|
|
79
75
|
},
|
|
80
76
|
],
|
|
81
77
|
});
|
|
82
78
|
PropertyFactory.register({
|
|
83
|
-
typeid:
|
|
79
|
+
typeid: "autodesk.tests:set-1.0.0",
|
|
84
80
|
properties: [
|
|
85
81
|
{
|
|
86
|
-
id:
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
],
|
|
82
|
+
id: "set",
|
|
83
|
+
typeid: "autodesk.tests:namedEntry-1.0.0",
|
|
84
|
+
context: "set",
|
|
85
|
+
value: [{ string: "I am a string 1" }, { string: "I am a string 2" }],
|
|
90
86
|
},
|
|
91
87
|
],
|
|
92
88
|
});
|
|
93
89
|
PropertyFactory.register({
|
|
94
|
-
typeid:
|
|
90
|
+
typeid: "autodesk.tests:map-1.0.0",
|
|
95
91
|
properties: [
|
|
96
92
|
{
|
|
97
|
-
id:
|
|
98
|
-
|
|
99
|
-
|
|
93
|
+
id: "map",
|
|
94
|
+
typeid: "autodesk.tests:entry-1.0.0",
|
|
95
|
+
context: "map",
|
|
96
|
+
value: {
|
|
97
|
+
key1: { string: "I am a string 1" },
|
|
98
|
+
key2: { string: "I am a string 2" },
|
|
100
99
|
},
|
|
101
100
|
},
|
|
102
101
|
],
|
|
103
102
|
});
|
|
104
|
-
PsetUtils = require(
|
|
105
|
-
DeferredPromise = require(
|
|
103
|
+
PsetUtils = require("@fluid-experimental/property-changeset").Utils;
|
|
104
|
+
DeferredPromise = require("@fluid-experimental/property-common").DeferredPromise;
|
|
106
105
|
});
|
|
107
106
|
beforeEach(async function () {
|
|
108
|
-
root = PropertyFactory.create(
|
|
107
|
+
root = PropertyFactory.create("NodeProperty");
|
|
109
108
|
});
|
|
110
|
-
it.skip(
|
|
109
|
+
it.skip("should match leaf for primitives properties", async function () {
|
|
111
110
|
let leafNodesCount = 0;
|
|
112
|
-
createPropertyInsertAndCommit(root,
|
|
111
|
+
createPropertyInsertAndCommit(root, "mysample:all-1.0.0", "single", "singleProp");
|
|
113
112
|
const changeSet = root.getRoot().serialize();
|
|
114
113
|
const propertyCb = (node, cb) => {
|
|
115
114
|
if (node.isLeafNode()) {
|
|
@@ -122,9 +121,9 @@ describe('property-properties.Utils isLeafNode', function () {
|
|
|
122
121
|
await dp;
|
|
123
122
|
expect(leafNodesCount).to.eql(19);
|
|
124
123
|
});
|
|
125
|
-
it(
|
|
124
|
+
it("should see an empty array as a leaf", async function () {
|
|
126
125
|
let leafNodesCount = 0;
|
|
127
|
-
createPropertyInsertAndCommit(root,
|
|
126
|
+
createPropertyInsertAndCommit(root, "mysample:all-1.0.0", "array", "arrayProp");
|
|
128
127
|
const changeSet = root.getRoot().serialize();
|
|
129
128
|
const propertyCb = (node, cb) => {
|
|
130
129
|
if (node.isLeafNode()) {
|
|
@@ -137,9 +136,9 @@ describe('property-properties.Utils isLeafNode', function () {
|
|
|
137
136
|
await dp;
|
|
138
137
|
expect(leafNodesCount).to.eql(1);
|
|
139
138
|
});
|
|
140
|
-
it(
|
|
139
|
+
it("should see an empty map as a leaf", async function () {
|
|
141
140
|
let leafNodesCount = 0;
|
|
142
|
-
createPropertyInsertAndCommit(root,
|
|
141
|
+
createPropertyInsertAndCommit(root, "mysample:all-1.0.0", "map", "mapProp");
|
|
143
142
|
const changeSet = root.getRoot().serialize();
|
|
144
143
|
const propertyCb = (node, cb) => {
|
|
145
144
|
if (node.isLeafNode()) {
|
|
@@ -152,9 +151,9 @@ describe('property-properties.Utils isLeafNode', function () {
|
|
|
152
151
|
await dp;
|
|
153
152
|
expect(leafNodesCount).to.eql(1);
|
|
154
153
|
});
|
|
155
|
-
it(
|
|
154
|
+
it("should see an empty set as a leaf", async function () {
|
|
156
155
|
let leafNodesCount = 0;
|
|
157
|
-
createPropertyInsertAndCommit(root,
|
|
156
|
+
createPropertyInsertAndCommit(root, "mysample:all-1.0.0", "set", "setProp");
|
|
158
157
|
const changeSet = root.getRoot().serialize();
|
|
159
158
|
const propertyCb = (node, cb) => {
|
|
160
159
|
if (node.isLeafNode()) {
|
|
@@ -167,10 +166,10 @@ describe('property-properties.Utils isLeafNode', function () {
|
|
|
167
166
|
await dp;
|
|
168
167
|
expect(leafNodesCount).to.eql(1);
|
|
169
168
|
});
|
|
170
|
-
it(
|
|
169
|
+
it("should count primitives in an array as leafs", async function () {
|
|
171
170
|
let leafNodesCount = 0;
|
|
172
|
-
const array = PropertyFactory.create(
|
|
173
|
-
root.insert(
|
|
171
|
+
const array = PropertyFactory.create("autodesk.tests:array-1.0.0");
|
|
172
|
+
root.insert("arrayProp", array);
|
|
174
173
|
const changeSet = root.serialize();
|
|
175
174
|
const propertyCb = (node, cb) => {
|
|
176
175
|
if (node.isLeafNode()) {
|
|
@@ -183,10 +182,10 @@ describe('property-properties.Utils isLeafNode', function () {
|
|
|
183
182
|
await dp;
|
|
184
183
|
expect(leafNodesCount).to.eql(2);
|
|
185
184
|
});
|
|
186
|
-
it(
|
|
185
|
+
it("should count primitives in an set as leafs", async function () {
|
|
187
186
|
let leafNodesCount = 0;
|
|
188
|
-
const set = PropertyFactory.create(
|
|
189
|
-
root.insert(
|
|
187
|
+
const set = PropertyFactory.create("autodesk.tests:set-1.0.0");
|
|
188
|
+
root.insert("setProp", set);
|
|
190
189
|
const changeSet = root.serialize();
|
|
191
190
|
const propertyCb = (node, cb) => {
|
|
192
191
|
if (node.isLeafNode()) {
|
|
@@ -199,10 +198,10 @@ describe('property-properties.Utils isLeafNode', function () {
|
|
|
199
198
|
await dp;
|
|
200
199
|
expect(leafNodesCount).to.eql(4);
|
|
201
200
|
});
|
|
202
|
-
it(
|
|
201
|
+
it("should count primitives in an map as leafs", async function () {
|
|
203
202
|
let leafNodesCount = 0;
|
|
204
|
-
const map = PropertyFactory.create(
|
|
205
|
-
root.insert(
|
|
203
|
+
const map = PropertyFactory.create("autodesk.tests:map-1.0.0");
|
|
204
|
+
root.insert("mapProp", map);
|
|
206
205
|
const changeSet = root.serialize();
|
|
207
206
|
const propertyCb = (node, cb) => {
|
|
208
207
|
if (node.isLeafNode()) {
|
|
@@ -215,12 +214,12 @@ describe('property-properties.Utils isLeafNode', function () {
|
|
|
215
214
|
await dp;
|
|
216
215
|
expect(leafNodesCount).to.eql(2);
|
|
217
216
|
});
|
|
218
|
-
it(
|
|
217
|
+
it("should count remove as leafs in reversible changeset", async function () {
|
|
219
218
|
let leafNodesCount = 0;
|
|
220
|
-
const map = PropertyFactory.create(
|
|
221
|
-
root.insert(
|
|
219
|
+
const map = PropertyFactory.create("autodesk.tests:map-1.0.0");
|
|
220
|
+
root.insert("mapProp", map);
|
|
222
221
|
root.cleanDirty();
|
|
223
|
-
map.get(
|
|
222
|
+
map.get("map").remove("key1");
|
|
224
223
|
const changeSet = root.getPendingChanges().getSerializedChangeSet();
|
|
225
224
|
const propertyCb = (node, cb) => {
|
|
226
225
|
if (node.isLeafNode()) {
|
|
@@ -233,12 +232,12 @@ describe('property-properties.Utils isLeafNode', function () {
|
|
|
233
232
|
await dp;
|
|
234
233
|
expect(leafNodesCount).to.eql(1);
|
|
235
234
|
});
|
|
236
|
-
it(
|
|
235
|
+
it("should count remove as leafs", async function () {
|
|
237
236
|
let leafNodesCount = 0;
|
|
238
|
-
const map = PropertyFactory.create(
|
|
239
|
-
root.insert(
|
|
237
|
+
const map = PropertyFactory.create("autodesk.tests:map-1.0.0");
|
|
238
|
+
root.insert("mapProp", map);
|
|
240
239
|
root.cleanDirty();
|
|
241
|
-
map.get(
|
|
240
|
+
map.get("map").remove("key1");
|
|
242
241
|
const changeSet = root.getPendingChanges();
|
|
243
242
|
changeSet._stripReversibleChangeSet();
|
|
244
243
|
const nonReversibleChangesetSerialized = changeSet.getSerializedChangeSet();
|
|
@@ -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 typeid: 'mysample:all-1.0.0',\n inherits: 'NamedProperty',\n constants: [\n { id: 'const_int8', typeid: 'Int8', value: 111 },\n { id: 'const_int16', typeid: 'Int16', value: 111 },\n { id: 'const_int32', typeid: 'Int32', value: 111 },\n { id: 'const_bool', typeid: 'Bool', value: true },\n { id: 'const_string', typeid: 'String', value: 'This is a string' },\n ],\n properties: [\n { id: 'int8', typeid: 'Int8' },\n { id: 'int16', typeid: 'Int16' },\n { id: 'int32', typeid: 'Int32' },\n { id: 'int64', typeid: 'Int64' },\n { id: 'uint32', typeid: 'Uint32' },\n { id: 'uint64', typeid: 'Uint64' },\n { id: 'float32', typeid: 'Float32' },\n { id: 'float64', typeid: 'Float64' },\n { id: 'bool', typeid: 'Bool' },\n { id: 'string', typeid: 'String' },\n { id: 'nodeProp', typeid: 'NodeProperty' },\n {\n id: 'nestedProps',\n properties: [\n { id: 'string', typeid: 'String' },\n { id: 'bool', typeid: 'Bool' },\n ],\n },\n ],\n};\n\nvar createPropertyInsertAndCommit = function(workspace, typeid, context, propId) {\n const prop = PropertyFactory.create(typeid, context);\n workspace.insert(propId, prop);\n};\n\ndescribe('property-properties.Utils isLeafNode', function() {\n let root;\n\n /**\n * Get all the objects we need in this test here.\n */\n before(function() {\n PropertyFactory = require('../..').PropertyFactory;\n ChangeSet = require('@fluid-experimental/property-changeset').ChangeSet;\n _ = require('lodash');\n deepCopy = _.cloneDeep;\n\n PropertyFactory.register(AllProperties);\n PropertyFactory.register({\n typeid: 'autodesk.tests:entry-1.0.0',\n properties: [\n { id: 'string', typeid: 'String' },\n ],\n });\n PropertyFactory.register({\n typeid: 'autodesk.tests:namedEntry-1.0.0',\n inherits: ['NamedProperty'],\n properties: [\n { id: 'string', typeid: 'String' },\n ],\n });\n PropertyFactory.register({\n typeid: 'autodesk.tests:array-1.0.0',\n properties: [\n {\n id: 'array', typeid: 'autodesk.tests:entry-1.0.0', context: 'array', value: [\n { string: 'I am a string 1' },\n { string: 'I am a string 2' },\n ],\n },\n ],\n });\n PropertyFactory.register({\n typeid: 'autodesk.tests:set-1.0.0',\n properties: [\n {\n id: 'set', typeid: 'autodesk.tests:namedEntry-1.0.0', context: 'set', value: [\n { string: 'I am a string 1' },\n { string: 'I am a string 2' },\n ],\n },\n ],\n });\n PropertyFactory.register({\n typeid: 'autodesk.tests:map-1.0.0',\n properties: [\n {\n id: 'map', typeid: 'autodesk.tests:entry-1.0.0', context: 'map', value: {\n key1: { string: 'I am a string 1' },\n key2: { string: 'I am a string 2' },\n },\n },\n ],\n });\n\n PsetUtils = require('@fluid-experimental/property-changeset').Utils;\n DeferredPromise = require('@fluid-experimental/property-common').DeferredPromise;\n });\n\n beforeEach(async function() {\n root = PropertyFactory.create('NodeProperty');\n });\n\n it.skip('should match leaf for primitives properties', async function() {\n let leafNodesCount = 0;\n createPropertyInsertAndCommit(root, 'mysample:all-1.0.0', 'single', 'singleProp');\n\n const changeSet = root.getRoot().serialize();\n\n const propertyCb = (node, cb) => {\n if (node.isLeafNode()) {\n leafNodesCount++;\n }\n return process.nextTick(cb);\n };\n\n const dp = new DeferredPromise();\n PsetUtils.traverseChangeSetRecursivelyAsync(changeSet, { preCallback: propertyCb }, dp.getCb());\n await dp;\n\n expect(leafNodesCount).to.eql(19);\n });\n\n it('should see an empty array as a leaf', async function() {\n let leafNodesCount = 0;\n createPropertyInsertAndCommit(root, 'mysample:all-1.0.0', 'array', 'arrayProp');\n\n const changeSet = root.getRoot().serialize();\n\n const propertyCb = (node, cb) => {\n if (node.isLeafNode()) {\n leafNodesCount++;\n }\n return process.nextTick(cb);\n };\n\n const dp = new DeferredPromise();\n PsetUtils.traverseChangeSetRecursivelyAsync(changeSet, { preCallback: propertyCb }, dp.getCb());\n await dp;\n\n expect(leafNodesCount).to.eql(1);\n });\n\n it('should see an empty map as a leaf', async function() {\n let leafNodesCount = 0;\n createPropertyInsertAndCommit(root, 'mysample:all-1.0.0', 'map', 'mapProp');\n\n const changeSet = root.getRoot().serialize();\n\n const propertyCb = (node, cb) => {\n if (node.isLeafNode()) {\n leafNodesCount++;\n }\n return process.nextTick(cb);\n };\n\n const dp = new DeferredPromise();\n PsetUtils.traverseChangeSetRecursivelyAsync(changeSet, { preCallback: propertyCb }, dp.getCb());\n await dp;\n\n expect(leafNodesCount).to.eql(1);\n });\n\n it('should see an empty set as a leaf', async function() {\n let leafNodesCount = 0;\n createPropertyInsertAndCommit(root, 'mysample:all-1.0.0', 'set', 'setProp');\n\n const changeSet = root.getRoot().serialize();\n\n const propertyCb = (node, cb) => {\n if (node.isLeafNode()) {\n leafNodesCount++;\n }\n return process.nextTick(cb);\n };\n\n const dp = new DeferredPromise();\n PsetUtils.traverseChangeSetRecursivelyAsync(changeSet, { preCallback: propertyCb }, dp.getCb());\n await dp;\n\n expect(leafNodesCount).to.eql(1);\n });\n\n it('should count primitives in an array as leafs', async function() {\n let leafNodesCount = 0;\n const array = PropertyFactory.create('autodesk.tests:array-1.0.0');\n root.insert('arrayProp', array);\n\n const changeSet = root.serialize();\n\n const propertyCb = (node, cb) => {\n if (node.isLeafNode()) {\n leafNodesCount++;\n }\n return process.nextTick(cb);\n };\n const dp = new DeferredPromise();\n PsetUtils.traverseChangeSetRecursivelyAsync(changeSet, { preCallback: propertyCb }, dp.getCb());\n await dp;\n\n expect(leafNodesCount).to.eql(2);\n });\n\n it('should count primitives in an set as leafs', async function() {\n let leafNodesCount = 0;\n const set = PropertyFactory.create('autodesk.tests:set-1.0.0');\n root.insert('setProp', set);\n\n const changeSet = root.serialize();\n\n const propertyCb = (node, cb) => {\n if (node.isLeafNode()) {\n leafNodesCount++;\n }\n return process.nextTick(cb);\n };\n const dp = new DeferredPromise();\n PsetUtils.traverseChangeSetRecursivelyAsync(changeSet, { preCallback: propertyCb }, dp.getCb());\n await dp;\n\n expect(leafNodesCount).to.eql(4);\n });\n\n it('should count primitives in an map as leafs', async function() {\n let leafNodesCount = 0;\n const map = PropertyFactory.create('autodesk.tests:map-1.0.0');\n root.insert('mapProp', map);\n\n const changeSet = root.serialize();\n\n const propertyCb = (node, cb) => {\n if (node.isLeafNode()) {\n leafNodesCount++;\n }\n return process.nextTick(cb);\n };\n const dp = new DeferredPromise();\n PsetUtils.traverseChangeSetRecursivelyAsync(changeSet, { preCallback: propertyCb }, dp.getCb());\n await dp;\n\n expect(leafNodesCount).to.eql(2);\n });\n\n it('should count remove as leafs in reversible changeset', async function() {\n let leafNodesCount = 0;\n const map = PropertyFactory.create('autodesk.tests:map-1.0.0');\n root.insert('mapProp', map);\n\n root.cleanDirty();\n map.get('map').remove('key1');\n const changeSet = root.getPendingChanges().getSerializedChangeSet();\n\n const propertyCb = (node, cb) => {\n if (node.isLeafNode()) {\n leafNodesCount++;\n }\n return process.nextTick(cb);\n };\n const dp = new DeferredPromise();\n PsetUtils.traverseChangeSetRecursivelyAsync(changeSet, { preCallback: propertyCb }, dp.getCb());\n await dp;\n\n expect(leafNodesCount).to.eql(1);\n });\n\n it('should count remove as leafs', async function() {\n let leafNodesCount = 0;\n const map = PropertyFactory.create('autodesk.tests:map-1.0.0');\n root.insert('mapProp', map);\n root.cleanDirty();\n\n map.get('map').remove('key1');\n\n const changeSet = root.getPendingChanges();\n changeSet._stripReversibleChangeSet();\n const nonReversibleChangesetSerialized = changeSet.getSerializedChangeSet();\n\n const propertyCb = (node, cb) => {\n if (node.isLeafNode()) {\n leafNodesCount++;\n }\n return process.nextTick(cb);\n };\n const dp = new DeferredPromise();\n PsetUtils.traverseChangeSetRecursivelyAsync(nonReversibleChangesetSerialized, { preCallback: propertyCb }, dp.getCb());\n await dp;\n\n expect(leafNodesCount).to.eql(1);\n });\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 */\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"]}
|