@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.
Files changed (266) hide show
  1. package/README.md +1 -0
  2. package/dist/containerSerializer.d.ts.map +1 -1
  3. package/dist/containerSerializer.js +5 -5
  4. package/dist/containerSerializer.js.map +1 -1
  5. package/dist/enableValidations.js.map +1 -1
  6. package/dist/index.d.ts +19 -19
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/properties/abstractStaticCollectionProperty.d.ts +10 -10
  10. package/dist/properties/abstractStaticCollectionProperty.d.ts.map +1 -1
  11. package/dist/properties/abstractStaticCollectionProperty.js +70 -53
  12. package/dist/properties/abstractStaticCollectionProperty.js.map +1 -1
  13. package/dist/properties/arrayProperty.d.ts.map +1 -1
  14. package/dist/properties/arrayProperty.js +152 -103
  15. package/dist/properties/arrayProperty.js.map +1 -1
  16. package/dist/properties/baseProperty.d.ts +4 -4
  17. package/dist/properties/baseProperty.d.ts.map +1 -1
  18. package/dist/properties/baseProperty.js +69 -47
  19. package/dist/properties/baseProperty.js.map +1 -1
  20. package/dist/properties/boolProperty.d.ts.map +1 -1
  21. package/dist/properties/boolProperty.js +3 -3
  22. package/dist/properties/boolProperty.js.map +1 -1
  23. package/dist/properties/containerProperty.d.ts +8 -8
  24. package/dist/properties/containerProperty.d.ts.map +1 -1
  25. package/dist/properties/containerProperty.js +33 -26
  26. package/dist/properties/containerProperty.js.map +1 -1
  27. package/dist/properties/enumArrayProperty.d.ts.map +1 -1
  28. package/dist/properties/enumArrayProperty.js +14 -14
  29. package/dist/properties/enumArrayProperty.js.map +1 -1
  30. package/dist/properties/enumProperty.d.ts.map +1 -1
  31. package/dist/properties/enumProperty.js +17 -17
  32. package/dist/properties/enumProperty.js.map +1 -1
  33. package/dist/properties/floatProperties.js +4 -4
  34. package/dist/properties/floatProperties.js.map +1 -1
  35. package/dist/properties/index.d.ts +23 -23
  36. package/dist/properties/index.d.ts.map +1 -1
  37. package/dist/properties/index.js.map +1 -1
  38. package/dist/properties/indexedCollectionBaseProperty.d.ts.map +1 -1
  39. package/dist/properties/indexedCollectionBaseProperty.js +47 -37
  40. package/dist/properties/indexedCollectionBaseProperty.js.map +1 -1
  41. package/dist/properties/intProperties.d.ts.map +1 -1
  42. package/dist/properties/intProperties.js +10 -10
  43. package/dist/properties/intProperties.js.map +1 -1
  44. package/dist/properties/lazyLoadedProperties.js.map +1 -1
  45. package/dist/properties/mapProperty.d.ts.map +1 -1
  46. package/dist/properties/mapProperty.js +21 -17
  47. package/dist/properties/mapProperty.js.map +1 -1
  48. package/dist/properties/namedNodeProperty.d.ts.map +1 -1
  49. package/dist/properties/namedNodeProperty.js +3 -3
  50. package/dist/properties/namedNodeProperty.js.map +1 -1
  51. package/dist/properties/namedProperty.d.ts.map +1 -1
  52. package/dist/properties/namedProperty.js +7 -5
  53. package/dist/properties/namedProperty.js.map +1 -1
  54. package/dist/properties/nodeProperty.d.ts.map +1 -1
  55. package/dist/properties/nodeProperty.js +5 -3
  56. package/dist/properties/nodeProperty.js.map +1 -1
  57. package/dist/properties/primitiveTypeCasts.d.ts.map +1 -1
  58. package/dist/properties/primitiveTypeCasts.js +9 -9
  59. package/dist/properties/primitiveTypeCasts.js.map +1 -1
  60. package/dist/properties/referenceArrayProperty.d.ts.map +1 -1
  61. package/dist/properties/referenceArrayProperty.js +31 -25
  62. package/dist/properties/referenceArrayProperty.js.map +1 -1
  63. package/dist/properties/referenceMapProperty.d.ts.map +1 -1
  64. package/dist/properties/referenceMapProperty.js +18 -18
  65. package/dist/properties/referenceMapProperty.js.map +1 -1
  66. package/dist/properties/referenceProperty.d.ts.map +1 -1
  67. package/dist/properties/referenceProperty.js +33 -29
  68. package/dist/properties/referenceProperty.js.map +1 -1
  69. package/dist/properties/setProperty.d.ts.map +1 -1
  70. package/dist/properties/setProperty.js +31 -29
  71. package/dist/properties/setProperty.js.map +1 -1
  72. package/dist/properties/stringProperty.d.ts.map +1 -1
  73. package/dist/properties/stringProperty.js +56 -40
  74. package/dist/properties/stringProperty.js.map +1 -1
  75. package/dist/properties/uintProperties.js +5 -5
  76. package/dist/properties/uintProperties.js.map +1 -1
  77. package/dist/properties/valueArrayProperty.d.ts +1 -1
  78. package/dist/properties/valueArrayProperty.d.ts.map +1 -1
  79. package/dist/properties/valueArrayProperty.js +30 -29
  80. package/dist/properties/valueArrayProperty.js.map +1 -1
  81. package/dist/properties/valueMapProperty.d.ts.map +1 -1
  82. package/dist/properties/valueMapProperty.js +31 -29
  83. package/dist/properties/valueMapProperty.js.map +1 -1
  84. package/dist/properties/valueProperty.d.ts.map +1 -1
  85. package/dist/properties/valueProperty.js +11 -9
  86. package/dist/properties/valueProperty.js.map +1 -1
  87. package/dist/propertyFactory.d.ts.map +1 -1
  88. package/dist/propertyFactory.js +309 -252
  89. package/dist/propertyFactory.js.map +1 -1
  90. package/dist/propertyTemplate.d.ts +17 -17
  91. package/dist/propertyTemplate.d.ts.map +1 -1
  92. package/dist/propertyTemplate.js +64 -45
  93. package/dist/propertyTemplate.js.map +1 -1
  94. package/dist/propertyTemplateWrapper.d.ts.map +1 -1
  95. package/dist/propertyTemplateWrapper.js +40 -25
  96. package/dist/propertyTemplateWrapper.js.map +1 -1
  97. package/dist/propertyUtils.d.ts.map +1 -1
  98. package/dist/propertyUtils.js.map +1 -1
  99. package/dist/test/properties/arrayProperty.spec.js +566 -490
  100. package/dist/test/properties/arrayProperty.spec.js.map +1 -1
  101. package/dist/test/properties/baseProperty.spec.js +293 -280
  102. package/dist/test/properties/baseProperty.spec.js.map +1 -1
  103. package/dist/test/properties/containerProperty.spec.js +100 -94
  104. package/dist/test/properties/containerProperty.spec.js.map +1 -1
  105. package/dist/test/properties/customArrayProperty.spec.js +174 -147
  106. package/dist/test/properties/customArrayProperty.spec.js.map +1 -1
  107. package/dist/test/properties/enumArrayProperty.spec.js +67 -63
  108. package/dist/test/properties/enumArrayProperty.spec.js.map +1 -1
  109. package/dist/test/properties/enumProperty.spec.js +115 -97
  110. package/dist/test/properties/enumProperty.spec.js.map +1 -1
  111. package/dist/test/properties/float32.spec.js +5 -5
  112. package/dist/test/properties/float32.spec.js.map +1 -1
  113. package/dist/test/properties/int64ArrayProperty.spec.js +157 -93
  114. package/dist/test/properties/int64ArrayProperty.spec.js.map +1 -1
  115. package/dist/test/properties/int64MapProperty.spec.js +185 -166
  116. package/dist/test/properties/int64MapProperty.spec.js.map +1 -1
  117. package/dist/test/properties/int64Property.spec.js +109 -109
  118. package/dist/test/properties/int64Property.spec.js.map +1 -1
  119. package/dist/test/properties/isLeafNode.spec.js +75 -76
  120. package/dist/test/properties/isLeafNode.spec.js.map +1 -1
  121. package/dist/test/properties/mapProperty.spec.js +571 -531
  122. package/dist/test/properties/mapProperty.spec.js.map +1 -1
  123. package/dist/test/properties/namedNodeProperty.spec.js +31 -31
  124. package/dist/test/properties/namedNodeProperty.spec.js.map +1 -1
  125. package/dist/test/properties/nodeProperty.spec.js +805 -795
  126. package/dist/test/properties/nodeProperty.spec.js.map +1 -1
  127. package/dist/test/properties/referenceProperty.spec.js +729 -679
  128. package/dist/test/properties/referenceProperty.spec.js.map +1 -1
  129. package/dist/test/properties/relationshipProperty.spec.js +16 -16
  130. package/dist/test/properties/relationshipProperty.spec.js.map +1 -1
  131. package/dist/test/properties/setProperty.spec.js +288 -227
  132. package/dist/test/properties/setProperty.spec.js.map +1 -1
  133. package/dist/test/properties/stringProperty.spec.js +326 -318
  134. package/dist/test/properties/stringProperty.spec.js.map +1 -1
  135. package/dist/test/properties/uint64Property.spec.js +46 -36
  136. package/dist/test/properties/uint64Property.spec.js.map +1 -1
  137. package/dist/test/properties/valueMapProperty.spec.js +259 -246
  138. package/dist/test/properties/valueMapProperty.spec.js.map +1 -1
  139. package/dist/test/properties/valueProperty.spec.js +49 -43
  140. package/dist/test/properties/valueProperty.spec.js.map +1 -1
  141. package/dist/test/propertyFactory.spec.js +2038 -1631
  142. package/dist/test/propertyFactory.spec.js.map +1 -1
  143. package/dist/test/propertyTemplateWrapper.spec.js +72 -102
  144. package/dist/test/propertyTemplateWrapper.spec.js.map +1 -1
  145. package/dist/test/propertyUtils.spec.js +22 -21
  146. package/dist/test/propertyUtils.spec.js.map +1 -1
  147. package/dist/test/reversibleChangeset.spec.js +857 -703
  148. package/dist/test/reversibleChangeset.spec.js.map +1 -1
  149. package/dist/test/setup.js +5 -5
  150. package/dist/test/setup.js.map +1 -1
  151. package/dist/test/tsconfig.tsbuildinfo +1 -1
  152. package/dist/test/utils.spec.js +1334 -1144
  153. package/dist/test/utils.spec.js.map +1 -1
  154. package/dist/test/validation/badMissingSemverInTypeid.js +20 -20
  155. package/dist/test/validation/badMissingSemverInTypeid.js.map +1 -1
  156. package/dist/test/validation/badPrimitiveTypeid.js +12 -12
  157. package/dist/test/validation/badPrimitiveTypeid.js.map +1 -1
  158. package/dist/test/validation/goodColorId.js +91 -91
  159. package/dist/test/validation/goodColorId.js.map +1 -1
  160. package/dist/test/validation/goodColorPalette.js +4 -4
  161. package/dist/test/validation/goodColorPalette.js.map +1 -1
  162. package/dist/test/validation/goodPointId.js +20 -20
  163. package/dist/test/validation/goodPointId.js.map +1 -1
  164. package/dist/test/validation/reversibleChangeSetTestData.js +23841 -2
  165. package/dist/test/validation/reversibleChangeSetTestData.js.map +1 -1
  166. package/lib/containerSerializer.d.ts.map +1 -1
  167. package/lib/containerSerializer.js +5 -5
  168. package/lib/containerSerializer.js.map +1 -1
  169. package/lib/enableValidations.js.map +1 -1
  170. package/lib/index.d.ts +19 -19
  171. package/lib/index.d.ts.map +1 -1
  172. package/lib/index.js +19 -19
  173. package/lib/index.js.map +1 -1
  174. package/lib/properties/abstractStaticCollectionProperty.d.ts +10 -10
  175. package/lib/properties/abstractStaticCollectionProperty.d.ts.map +1 -1
  176. package/lib/properties/abstractStaticCollectionProperty.js +70 -53
  177. package/lib/properties/abstractStaticCollectionProperty.js.map +1 -1
  178. package/lib/properties/arrayProperty.d.ts.map +1 -1
  179. package/lib/properties/arrayProperty.js +152 -103
  180. package/lib/properties/arrayProperty.js.map +1 -1
  181. package/lib/properties/baseProperty.d.ts +4 -4
  182. package/lib/properties/baseProperty.d.ts.map +1 -1
  183. package/lib/properties/baseProperty.js +73 -51
  184. package/lib/properties/baseProperty.js.map +1 -1
  185. package/lib/properties/boolProperty.d.ts.map +1 -1
  186. package/lib/properties/boolProperty.js +3 -3
  187. package/lib/properties/boolProperty.js.map +1 -1
  188. package/lib/properties/containerProperty.d.ts +8 -8
  189. package/lib/properties/containerProperty.d.ts.map +1 -1
  190. package/lib/properties/containerProperty.js +33 -26
  191. package/lib/properties/containerProperty.js.map +1 -1
  192. package/lib/properties/enumArrayProperty.d.ts.map +1 -1
  193. package/lib/properties/enumArrayProperty.js +14 -14
  194. package/lib/properties/enumArrayProperty.js.map +1 -1
  195. package/lib/properties/enumProperty.d.ts.map +1 -1
  196. package/lib/properties/enumProperty.js +17 -17
  197. package/lib/properties/enumProperty.js.map +1 -1
  198. package/lib/properties/floatProperties.js +4 -4
  199. package/lib/properties/floatProperties.js.map +1 -1
  200. package/lib/properties/index.d.ts +23 -23
  201. package/lib/properties/index.d.ts.map +1 -1
  202. package/lib/properties/index.js +23 -23
  203. package/lib/properties/index.js.map +1 -1
  204. package/lib/properties/indexedCollectionBaseProperty.d.ts.map +1 -1
  205. package/lib/properties/indexedCollectionBaseProperty.js +47 -37
  206. package/lib/properties/indexedCollectionBaseProperty.js.map +1 -1
  207. package/lib/properties/intProperties.d.ts.map +1 -1
  208. package/lib/properties/intProperties.js +10 -10
  209. package/lib/properties/intProperties.js.map +1 -1
  210. package/lib/properties/lazyLoadedProperties.js.map +1 -1
  211. package/lib/properties/mapProperty.d.ts.map +1 -1
  212. package/lib/properties/mapProperty.js +21 -17
  213. package/lib/properties/mapProperty.js.map +1 -1
  214. package/lib/properties/namedNodeProperty.d.ts.map +1 -1
  215. package/lib/properties/namedNodeProperty.js +3 -3
  216. package/lib/properties/namedNodeProperty.js.map +1 -1
  217. package/lib/properties/namedProperty.d.ts.map +1 -1
  218. package/lib/properties/namedProperty.js +7 -5
  219. package/lib/properties/namedProperty.js.map +1 -1
  220. package/lib/properties/nodeProperty.d.ts.map +1 -1
  221. package/lib/properties/nodeProperty.js +5 -3
  222. package/lib/properties/nodeProperty.js.map +1 -1
  223. package/lib/properties/primitiveTypeCasts.d.ts.map +1 -1
  224. package/lib/properties/primitiveTypeCasts.js +9 -9
  225. package/lib/properties/primitiveTypeCasts.js.map +1 -1
  226. package/lib/properties/referenceArrayProperty.d.ts.map +1 -1
  227. package/lib/properties/referenceArrayProperty.js +31 -25
  228. package/lib/properties/referenceArrayProperty.js.map +1 -1
  229. package/lib/properties/referenceMapProperty.d.ts.map +1 -1
  230. package/lib/properties/referenceMapProperty.js +18 -18
  231. package/lib/properties/referenceMapProperty.js.map +1 -1
  232. package/lib/properties/referenceProperty.d.ts.map +1 -1
  233. package/lib/properties/referenceProperty.js +33 -29
  234. package/lib/properties/referenceProperty.js.map +1 -1
  235. package/lib/properties/setProperty.d.ts.map +1 -1
  236. package/lib/properties/setProperty.js +31 -29
  237. package/lib/properties/setProperty.js.map +1 -1
  238. package/lib/properties/stringProperty.d.ts.map +1 -1
  239. package/lib/properties/stringProperty.js +56 -40
  240. package/lib/properties/stringProperty.js.map +1 -1
  241. package/lib/properties/uintProperties.js +5 -5
  242. package/lib/properties/uintProperties.js.map +1 -1
  243. package/lib/properties/valueArrayProperty.d.ts +1 -1
  244. package/lib/properties/valueArrayProperty.d.ts.map +1 -1
  245. package/lib/properties/valueArrayProperty.js +30 -29
  246. package/lib/properties/valueArrayProperty.js.map +1 -1
  247. package/lib/properties/valueMapProperty.d.ts.map +1 -1
  248. package/lib/properties/valueMapProperty.js +31 -29
  249. package/lib/properties/valueMapProperty.js.map +1 -1
  250. package/lib/properties/valueProperty.d.ts.map +1 -1
  251. package/lib/properties/valueProperty.js +11 -9
  252. package/lib/properties/valueProperty.js.map +1 -1
  253. package/lib/propertyFactory.d.ts.map +1 -1
  254. package/lib/propertyFactory.js +309 -252
  255. package/lib/propertyFactory.js.map +1 -1
  256. package/lib/propertyTemplate.d.ts +17 -17
  257. package/lib/propertyTemplate.d.ts.map +1 -1
  258. package/lib/propertyTemplate.js +64 -45
  259. package/lib/propertyTemplate.js.map +1 -1
  260. package/lib/propertyTemplateWrapper.d.ts.map +1 -1
  261. package/lib/propertyTemplateWrapper.js +40 -25
  262. package/lib/propertyTemplateWrapper.js.map +1 -1
  263. package/lib/propertyUtils.d.ts.map +1 -1
  264. package/lib/propertyUtils.js.map +1 -1
  265. package/package.json +28 -28
  266. 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: 'mysample:all-1.0.0',
14
- inherits: 'NamedProperty',
13
+ typeid: "mysample:all-1.0.0",
14
+ inherits: "NamedProperty",
15
15
  constants: [
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' },
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: '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' },
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: 'nestedProps',
35
+ id: "nestedProps",
36
36
  properties: [
37
- { id: 'string', typeid: 'String' },
38
- { id: 'bool', typeid: 'Bool' },
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('property-properties.Utils isLeafNode', function () {
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('../..').PropertyFactory;
54
- ChangeSet = require('@fluid-experimental/property-changeset').ChangeSet;
55
- _ = require('lodash');
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: 'autodesk.tests:entry-1.0.0',
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: 'autodesk.tests:namedEntry-1.0.0',
66
- inherits: ['NamedProperty'],
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: 'autodesk.tests:array-1.0.0',
68
+ typeid: "autodesk.tests:array-1.0.0",
73
69
  properties: [
74
70
  {
75
- id: 'array', typeid: 'autodesk.tests:entry-1.0.0', context: 'array', value: [
76
- { string: 'I am a string 1' },
77
- { string: 'I am a string 2' },
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: 'autodesk.tests:set-1.0.0',
79
+ typeid: "autodesk.tests:set-1.0.0",
84
80
  properties: [
85
81
  {
86
- id: 'set', typeid: 'autodesk.tests:namedEntry-1.0.0', context: 'set', value: [
87
- { string: 'I am a string 1' },
88
- { string: 'I am a string 2' },
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: 'autodesk.tests:map-1.0.0',
90
+ typeid: "autodesk.tests:map-1.0.0",
95
91
  properties: [
96
92
  {
97
- id: 'map', typeid: 'autodesk.tests:entry-1.0.0', context: 'map', value: {
98
- key1: { string: 'I am a string 1' },
99
- key2: { string: 'I am a string 2' },
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('@fluid-experimental/property-changeset').Utils;
105
- DeferredPromise = require('@fluid-experimental/property-common').DeferredPromise;
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('NodeProperty');
107
+ root = PropertyFactory.create("NodeProperty");
109
108
  });
110
- it.skip('should match leaf for primitives properties', async function () {
109
+ it.skip("should match leaf for primitives properties", async function () {
111
110
  let leafNodesCount = 0;
112
- createPropertyInsertAndCommit(root, 'mysample:all-1.0.0', 'single', 'singleProp');
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('should see an empty array as a leaf', async function () {
124
+ it("should see an empty array as a leaf", async function () {
126
125
  let leafNodesCount = 0;
127
- createPropertyInsertAndCommit(root, 'mysample:all-1.0.0', 'array', 'arrayProp');
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('should see an empty map as a leaf', async function () {
139
+ it("should see an empty map as a leaf", async function () {
141
140
  let leafNodesCount = 0;
142
- createPropertyInsertAndCommit(root, 'mysample:all-1.0.0', 'map', 'mapProp');
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('should see an empty set as a leaf', async function () {
154
+ it("should see an empty set as a leaf", async function () {
156
155
  let leafNodesCount = 0;
157
- createPropertyInsertAndCommit(root, 'mysample:all-1.0.0', 'set', 'setProp');
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('should count primitives in an array as leafs', async function () {
169
+ it("should count primitives in an array as leafs", async function () {
171
170
  let leafNodesCount = 0;
172
- const array = PropertyFactory.create('autodesk.tests:array-1.0.0');
173
- root.insert('arrayProp', array);
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('should count primitives in an set as leafs', async function () {
185
+ it("should count primitives in an set as leafs", async function () {
187
186
  let leafNodesCount = 0;
188
- const set = PropertyFactory.create('autodesk.tests:set-1.0.0');
189
- root.insert('setProp', set);
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('should count primitives in an map as leafs', async function () {
201
+ it("should count primitives in an map as leafs", async function () {
203
202
  let leafNodesCount = 0;
204
- const map = PropertyFactory.create('autodesk.tests:map-1.0.0');
205
- root.insert('mapProp', map);
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('should count remove as leafs in reversible changeset', async function () {
217
+ it("should count remove as leafs in reversible changeset", async function () {
219
218
  let leafNodesCount = 0;
220
- const map = PropertyFactory.create('autodesk.tests:map-1.0.0');
221
- root.insert('mapProp', map);
219
+ const map = PropertyFactory.create("autodesk.tests:map-1.0.0");
220
+ root.insert("mapProp", map);
222
221
  root.cleanDirty();
223
- map.get('map').remove('key1');
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('should count remove as leafs', async function () {
235
+ it("should count remove as leafs", async function () {
237
236
  let leafNodesCount = 0;
238
- const map = PropertyFactory.create('autodesk.tests:map-1.0.0');
239
- root.insert('mapProp', map);
237
+ const map = PropertyFactory.create("autodesk.tests:map-1.0.0");
238
+ root.insert("mapProp", map);
240
239
  root.cleanDirty();
241
- map.get('map').remove('key1');
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"]}