@fluid-experimental/property-properties 2.93.0 → 2.101.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/dist/test/properties/arrayProperty.spec.js +11 -12
  2. package/dist/test/properties/arrayProperty.spec.js.map +1 -1
  3. package/dist/test/properties/baseProperty.spec.js +4 -1
  4. package/dist/test/properties/baseProperty.spec.js.map +1 -1
  5. package/dist/test/properties/containerProperty.spec.js +1 -1
  6. package/dist/test/properties/containerProperty.spec.js.map +1 -1
  7. package/dist/test/properties/customArrayProperty.spec.js +2 -2
  8. package/dist/test/properties/customArrayProperty.spec.js.map +1 -1
  9. package/dist/test/properties/int64ArrayProperty.spec.js +4 -4
  10. package/dist/test/properties/int64ArrayProperty.spec.js.map +1 -1
  11. package/dist/test/properties/int64Property.spec.js +2 -2
  12. package/dist/test/properties/int64Property.spec.js.map +1 -1
  13. package/dist/test/properties/isLeafNode.spec.js +1 -7
  14. package/dist/test/properties/isLeafNode.spec.js.map +1 -1
  15. package/dist/test/properties/namedNodeProperty.spec.js +1 -2
  16. package/dist/test/properties/namedNodeProperty.spec.js.map +1 -1
  17. package/dist/test/properties/nodeProperty.spec.js +1 -1
  18. package/dist/test/properties/nodeProperty.spec.js.map +1 -1
  19. package/dist/test/properties/stringProperty.spec.js +6 -5
  20. package/dist/test/properties/stringProperty.spec.js.map +1 -1
  21. package/dist/test/properties/valueMapProperty.spec.js +8 -3
  22. package/dist/test/properties/valueMapProperty.spec.js.map +1 -1
  23. package/dist/test/properties/valueProperty.spec.js +5 -1
  24. package/dist/test/properties/valueProperty.spec.js.map +1 -1
  25. package/dist/test/propertyFactory.spec.js +15 -10
  26. package/dist/test/propertyFactory.spec.js.map +1 -1
  27. package/dist/test/tsconfig.tsbuildinfo +1 -1
  28. package/dist/test/utils.spec.js +13 -7
  29. package/dist/test/utils.spec.js.map +1 -1
  30. package/package.json +7 -6
@@ -461,7 +461,10 @@ describe("BaseProperty", function () {
461
461
  describe("Ancestry relations should be resolved correctly", function () {
462
462
  /**
463
463
  * creates a workspace
464
- * @return {property-properties.Workspace} workspace
464
+ * @return {Promise<import("../../index.js").NodeProperty>} workspace
465
+ * @privateRemarks
466
+ * The return type can be `Workspace` once package is updated to support modules. Then
467
+ * {Promise<import("@fluid-experimental/property-properties").Workspace>} may be used.
465
468
  */
466
469
  function createRootProperty() {
467
470
  return Promise.resolve(PropertyFactory.create("NodeProperty"));
@@ -1 +1 @@
1
- {"version":3,"file":"baseProperty.spec.js","sourceRoot":"","sources":["../../../src/test/properties/baseProperty.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/**\n * @fileoverview In this file, we will test the functions of a BaseProperty object\n * described in /src/properties/baseProperty.js\n */\n\nvar PropertyFactory, ChangeSet, MSG, BaseProperty;\n\ndescribe(\"BaseProperty\", 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\tChangeSet = require(\"@fluid-experimental/property-changeset\").ChangeSet;\n\t\tMSG = require(\"@fluid-experimental/property-common\").constants.MSG;\n\t\tBaseProperty = require(\"../..\").BaseProperty;\n\n\t\tvar TestPropertyObject = {\n\t\t\ttypeid: \"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\tproperties: [\n\t\t\t\t{ id: \"simple_property\", typeid: \"String\" },\n\t\t\t\t{ id: \"test.property\", typeid: \"String\" },\n\t\t\t\t{ id: 'test\"property\"', typeid: \"String\" },\n\t\t\t\t{\n\t\t\t\t\tid: \"test[property]\",\n\t\t\t\t\tproperties: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: \".property.\",\n\t\t\t\t\t\t\tproperties: [{ id: \"test\", typeid: \"String\" }],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\n\t\tPropertyFactory._reregister(TestPropertyObject);\n\t});\n\n\tdescribe(\"Serializing a BaseProperty with special characters\", function () {\n\t\tit(\"should be possible to serialize a property with special characters\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\tmyProp._properties[\"test.property\"].value = \"a\";\n\t\t\tmyProp._properties['test\"property\"'].value = \"b\";\n\t\t\tmyProp._properties[\"test[property]\"][\".property.\"][\"test\"].value = \"c\";\n\n\t\t\tvar serialized = myProp._serialize(false);\n\n\t\t\tvar myProp2 = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\tmyProp2.deserialize(serialized);\n\t\t\texpect(myProp2._properties[\"test.property\"].value).to.equal(\"a\");\n\t\t\texpect(myProp2._properties['test\"property\"'].value).to.equal(\"b\");\n\t\t\texpect(myProp2._properties[\"test[property]\"][\".property.\"][\"test\"].value).to.equal(\"c\");\n\t\t});\n\t});\n\n\tdescribe(\"Get should work\", function () {\n\t\t// Test whether .get accepts the correct parameters\n\t\tit(\"should accept an id (string) or an array of ids\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\tvar correctArrayFn = function () {\n\t\t\t\tmyProp.get([\"test\"]);\n\t\t\t};\n\t\t\tvar correctStringFn = function () {\n\t\t\t\tmyProp.get(\"test\");\n\t\t\t};\n\t\t\texpect(correctArrayFn).to.not.throw();\n\t\t\texpect(correctStringFn).to.not.throw();\n\t\t});\n\t\t// .get(['test1','test2']) === .get('test1').get('test2')\n\t\tit(\"when an array is passed, it should do a .get for each id in the array\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\texpect(myProp.get([\"test[property]\", \".property.\", \"test\"])).to.equal(\n\t\t\t\tmyProp.get(\"test[property]\").get(\".property.\").get(\"test\"),\n\t\t\t);\n\t\t});\n\n\t\tit(\"when an array is passed with a bad path, it should return undefined\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\texpect(myProp.get([\"wrong path\", \".property\", \"test\"])).to.be.undefined;\n\t\t});\n\n\t\tit(\"should work with raise level path tokens\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\texpect(\n\t\t\t\tmyProp.get([\n\t\t\t\t\t\"test[property]\",\n\t\t\t\t\t\".property.\",\n\t\t\t\t\tBaseProperty.PATH_TOKENS.UP,\n\t\t\t\t\t\".property.\",\n\t\t\t\t\t\"test\",\n\t\t\t\t]),\n\t\t\t).to.deep.equal(myProp.get(\"test[property]\").get(\".property.\").get(\"test\"));\n\t\t\texpect(\n\t\t\t\tmyProp.get([\n\t\t\t\t\t\"test[property]\",\n\t\t\t\t\t\".property.\",\n\t\t\t\t\tBaseProperty.PATH_TOKENS.UP,\n\t\t\t\t\tBaseProperty.PATH_TOKENS.UP,\n\t\t\t\t\t\"simple_property\",\n\t\t\t\t]),\n\t\t\t).to.deep.equal(myProp.get(\"simple_property\"));\n\t\t});\n\n\t\tit(\"should work with path root tokens\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\texpect(myProp.get([BaseProperty.PATH_TOKENS.ROOT])).to.equal(myProp);\n\t\t\texpect(myProp.get([BaseProperty.PATH_TOKENS.ROOT, \"simple_property\"])).to.equal(\n\t\t\t\tmyProp.get(\"simple_property\"),\n\t\t\t);\n\t\t\texpect(myProp.get(\"test[property]\").get([BaseProperty.PATH_TOKENS.ROOT])).to.equal(\n\t\t\t\tmyProp,\n\t\t\t);\n\t\t});\n\t});\n\n\tdescribe(\"GetValue should work\", function () {\n\t\tit(\"should return the value of a primitive property\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\tmyProp._properties[\"test.property\"].value = \"a\";\n\t\t\tvar myValue = myProp.getValue([\"test.property\"]);\n\t\t\texpect(myValue).to.equal(\"a\");\n\t\t});\n\n\t\tit(\"should work with an array of paths\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\tmyProp.get([\"test[property]\", \".property.\", \"test\"]).setValue(\"b\");\n\t\t\texpect(myProp.getValue([\"test[property]\", \".property.\", \"test\"])).to.equal(\"b\");\n\t\t});\n\n\t\tit(\"should throw if using .getValue on a non-primitive property\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\tvar incorrectFn = function () {\n\t\t\t\tmyProp.getValue([\"test[property]\"]);\n\t\t\t};\n\t\t\texpect(incorrectFn).to.throw();\n\t\t});\n\t});\n\n\tdescribe(\"GetValues should work\", function () {\n\t\tit(\"should return the values of a property\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\tmyProp.setValues({\n\t\t\t\t\"simple_property\": \"string1\",\n\t\t\t\t'test\"property\"': \"string3\",\n\t\t\t\t\"test[property]\": {\n\t\t\t\t\t\".property.\": {\n\t\t\t\t\t\ttest: \"string4\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t});\n\n\t\t\texpect(myProp.getValues()).to.deep.equal({\n\t\t\t\t\"simple_property\": \"string1\",\n\t\t\t\t\"test.property\": \"\",\n\t\t\t\t'test\"property\"': \"string3\",\n\t\t\t\t\"test[property]\": {\n\t\t\t\t\t\".property.\": {\n\t\t\t\t\t\ttest: \"string4\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\tit(\"setValues should accept the output of getValues as a valid input\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\tmyProp.setValues({\n\t\t\t\t\"simple_property\": \"string1\",\n\t\t\t\t'test\"property\"': \"string3\",\n\t\t\t\t\"test[property]\": {\n\t\t\t\t\t\".property.\": {\n\t\t\t\t\t\ttest: \"string4\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tvar correctFn = function () {\n\t\t\t\tmyProp.setValues(myProp.getValues());\n\t\t\t};\n\t\t\texpect(correctFn).to.not.throw();\n\t\t});\n\t});\n\n\tdescribe(\"setValues should work\", function () {\n\t\tit(\"should accept an object and set each values in that object\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\tmyProp.setValues({\n\t\t\t\t\"simple_property\": \"string1\",\n\t\t\t\t\"test[property]\": {\n\t\t\t\t\t\".property.\": {\n\t\t\t\t\t\ttest: \"string2\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t});\n\t\t\texpect(myProp.get(\"simple_property\").getValue()).to.equal(\"string1\");\n\t\t\texpect(myProp.get([\"test[property]\", \".property.\", \"test\"]).getValue()).to.equal(\n\t\t\t\t\"string2\",\n\t\t\t);\n\t\t});\n\t\tit(\"should throw if trying to insert in a non-exiting path\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\tvar invalidFunction = function () {\n\t\t\t\tmyProp.setValues({\n\t\t\t\t\t\"simple_property\": \"string1\",\n\t\t\t\t\t\"test[property]\": {\n\t\t\t\t\t\t\".property.\": {\n\t\t\t\t\t\t\ttest123: \"string2\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t};\n\t\t\t// TODO: move this to constants.js\n\t\t\texpect(invalidFunction).to.throw(MSG.SET_VALUES_PATH_INVALID + \"test123\");\n\t\t});\n\n\t\tit(\"should throw if trying to insert into a path that resolves to a property\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\tvar invalidFunction = function () {\n\t\t\t\tmyProp.setValues({\n\t\t\t\t\t\"simple_property\": \"string1\",\n\t\t\t\t\t\"test[property]\": {\n\t\t\t\t\t\t\".property.\": \"string2\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t};\n\t\t\texpect(invalidFunction).to.throw(MSG.SET_VALUES_PATH_PROPERTY + \".property.\");\n\t\t});\n\t});\n\n\tdescribe(\"Path resolution should work\", function () {\n\t\t// Test whether the right paths are returned\n\t\tit(\"should work with getAbsolutePath\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\n\t\t\texpect(myProp.get(\"simple_property\").getAbsolutePath()).to.equal(\"/simple_property\");\n\t\t\texpect(myProp.get(\"test.property\").getAbsolutePath()).to.equal('/\"test.property\"');\n\t\t\texpect(myProp.get('test\"property\"').getAbsolutePath()).to.equal('/\"test\\\\\"property\\\\\"\"');\n\t\t\texpect(myProp.get(\"test[property]\").getAbsolutePath()).to.equal('/\"test[property]\"');\n\t\t\texpect(myProp.get(\"test[property]\").get(\".property.\").getAbsolutePath()).to.equal(\n\t\t\t\t'/\"test[property]\".\".property.\"',\n\t\t\t);\n\t\t\texpect(\n\t\t\t\tmyProp.get(\"test[property]\").get(\".property.\").get(\"test\").getAbsolutePath(),\n\t\t\t).to.equal('/\"test[property]\".\".property.\".test');\n\t\t});\n\n\t\tit(\"should work with getRelativePath\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\tvar nested = myProp.get(\"test[property]\");\n\t\t\texpect(\n\t\t\t\tmyProp.get([\"test[property]\", \".property.\", \"test\"]).getRelativePath(nested),\n\t\t\t).to.equal('\".property.\".test');\n\t\t\texpect(\n\t\t\t\tmyProp\n\t\t\t\t\t.get([\"test[property]\", \".property.\", \"test\"])\n\t\t\t\t\t.getRelativePath(myProp.get(\"simple_property\")),\n\t\t\t).to.equal('../\"test[property]\".\".property.\".test');\n\t\t\texpect(\n\t\t\t\tnested.getRelativePath(myProp.get([\"test[property]\", \".property.\", \"test\"])),\n\t\t\t).to.equal(\"../../\");\n\t\t});\n\n\t\t// Test that path resolution works\n\t\tit(\"should work with resolvePath\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\n\t\t\texpect(myProp.resolvePath(\"simple_property\")).to.equal(myProp.get(\"simple_property\"));\n\t\t\texpect(myProp.resolvePath('\"test.property\"')).to.equal(myProp.get(\"test.property\"));\n\t\t\texpect(myProp.resolvePath('\"test\\\\\"property\\\\\"\"')).to.equal(\n\t\t\t\tmyProp.get('test\"property\"'),\n\t\t\t);\n\t\t\texpect(myProp.resolvePath('\"test[property]\"')).to.equal(myProp.get(\"test[property]\"));\n\t\t\texpect(myProp.resolvePath('\"test[property]\".\".property.\"')).to.equal(\n\t\t\t\tmyProp.get(\"test[property]\").get(\".property.\"),\n\t\t\t);\n\t\t\texpect(myProp.resolvePath('\"test[property]\".\".property.\".test')).to.equal(\n\t\t\t\tmyProp.get(\"test[property]\").get(\".property.\").get(\"test\"),\n\t\t\t);\n\n\t\t\texpect(myProp.resolvePath(\"/\")).to.equal(myProp);\n\t\t\texpect(myProp.resolvePath(\"/simple_property\")).to.equal(myProp.get(\"simple_property\"));\n\t\t\texpect(myProp.get(\"simple_property\").resolvePath(\"/\")).to.equal(myProp);\n\t\t\texpect(myProp.get(\"simple_property\").resolvePath(\"/simple_property\")).to.equal(\n\t\t\t\tmyProp.get(\"simple_property\"),\n\t\t\t);\n\t\t});\n\n\t\tit(\"should return undefined for invalid paths\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\n\t\t\texpect(myProp.resolvePath(\"invalid_path\")).to.be.undefined;\n\t\t\texpect(myProp.resolvePath(\"invalid_path.invalid_child\")).to.be.undefined;\n\t\t});\n\t});\n\n\tdescribe(\"cleanDirty\", function () {\n\t\tit(\"should work for paths with special characters\", function () {\n\t\t\tvar property = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\tproperty.resolvePath('\"test[property]\".\".property.\".test').value = \"test\";\n\t\t\tproperty.cleanDirty();\n\t\t\texpect(property._serialize(true)).to.be.empty;\n\t\t\texpect(property.getPendingChanges()).to.deep.equal(new ChangeSet({}));\n\t\t});\n\t});\n\n\tit(\"should clone the property set\", function (done) {\n\t\tvar nodeProperty = PropertyFactory.create(\"NodeProperty\");\n\n\t\tnodeProperty.deserialize({\n\t\t\tinsert: {\n\t\t\t\tString: {\n\t\t\t\t\tresult1: \"foo\",\n\t\t\t\t\tresult2: \"bar\",\n\t\t\t\t},\n\t\t\t\tNodeProperty: {\n\t\t\t\t\tresult3: {\n\t\t\t\t\t\tinsert: {\n\t\t\t\t\t\t\tUint32: {\n\t\t\t\t\t\t\t\tresult4: 4,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tvar clone = nodeProperty.clone();\n\n\t\texpect(nodeProperty._serialize(false)).to.eql(clone._serialize(false));\n\n\t\tdone();\n\t});\n\n\tit(\"should support reapplying dirty flags on non-identical changeSets\", function (done) {\n\t\tlet nodeProperty = PropertyFactory.create(\"NodeProperty\");\n\n\t\tnodeProperty.insert(\"result1\", PropertyFactory.create(\"String\"));\n\t\tnodeProperty.insert(\"result2\", PropertyFactory.create(\"String\"));\n\t\tnodeProperty.insert(\"result3\", PropertyFactory.create(\"Int32\"));\n\t\tnodeProperty.insert(\"result4\", PropertyFactory.create(\"Int32\"));\n\n\t\tconst changeset1 = {\n\t\t\tString: {\n\t\t\t\tresult1: \"foo\",\n\t\t\t\tresult2: \"bar\",\n\t\t\t},\n\t\t};\n\n\t\tconst changeset2 = {\n\t\t\tInt32: {\n\t\t\t\tresult3: 10,\n\t\t\t\tresult4: 11,\n\t\t\t},\n\t\t};\n\n\t\tnodeProperty._reapplyDirtyFlags(changeset1, changeset2);\n\n\t\tdone();\n\t});\n\n\tit(\"should be able to handle duplicate namespace\", function () {\n\t\tvar ANumber = {\n\t\t\ttypeid: \"autodesk.tests:ANumber-1.0.0\",\n\t\t\tproperties: [\n\t\t\t\t{\n\t\t\t\t\tid: \"aValue\",\n\t\t\t\t\ttypeid: \"Int32\",\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t\tPropertyFactory.register(ANumber);\n\n\t\tvar SomeNumbers = {\n\t\t\ttypeid: \"autodesk.tests:SomeNumbers-1.0.0\",\n\t\t\tproperties: [\n\t\t\t\t{ id: \"aValue\", typeid: \"autodesk.tests:ANumber-1.0.0\" },\n\t\t\t\t{ id: \"anotherValue\", typeid: \"autodesk.tests:ANumber-1.0.0\" },\n\t\t\t\t{ id: \"thirdValue\", typeid: \"autodesk.tests:ANumber-1.0.0\" },\n\t\t\t],\n\t\t};\n\t\tPropertyFactory.register(SomeNumbers);\n\n\t\tvar originalSomeNumbers = PropertyFactory.create(SomeNumbers.typeid);\n\n\t\tlet root = PropertyFactory.create(\"NodeProperty\");\n\t\troot.insert(\"aValue\", originalSomeNumbers);\n\n\t\tvar someNumbers = root.resolvePath(\"aValue\");\n\t\texpect(someNumbers).to.equal(originalSomeNumbers);\n\t\tvar aNumber = root.resolvePath(\"aValue.aValue\");\n\t\texpect(aNumber).to.exist;\n\t\tvar aValue = root.resolvePath(\"aValue.aValue.aValue\");\n\t\texpect(aValue).to.exist;\n\t});\n\n\tdescribe(\"getContext\", function () {\n\t\tit(\"should work with context of single\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\texpect(myProp.getContext()).to.equal(\"single\");\n\t\t});\n\t\tit(\"should work with other contexts\", function () {\n\t\t\tvar arrayProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t\t\"array\",\n\t\t\t);\n\t\t\texpect(arrayProp.getContext()).to.equal(\"array\");\n\t\t\tvar mapProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t\t\"map\",\n\t\t\t);\n\t\t\texpect(mapProp.getContext()).to.equal(\"map\");\n\t\t});\n\t});\n\n\tdescribe(\"getFullTypeid\", function () {\n\t\tit(\"should return the typeid of the property\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\texpect(myProp.getFullTypeid()).to.equal(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t});\n\t});\n\n\tdescribe(\"getTypeid\", function () {\n\t\tit(\"should return the typeid of the property\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\texpect(myProp.getTypeid()).to.equal(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t});\n\t});\n\n\tdescribe(\"getId\", function () {\n\t\tit(\"should return the id of the property\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\tvar nested = myProp.get(\"test.property\");\n\t\t\texpect(nested.getId()).to.equal(\"test.property\");\n\t\t});\n\t});\n\n\tdescribe(\"getParent\", function () {\n\t\tit(\"should return the parent property\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\tvar nested = myProp.get(\"test.property\");\n\t\t\texpect(nested.getParent()).to.deep.equal(myProp);\n\t\t});\n\t});\n\n\t// Other aspects of traverseDown function are already tested. Missing BREAK_TRAVERSAL and paths only.\n\tdescribe(\"traverseDown, hasPendingChanges and getPendingChanges\", function () {\n\t\tvar BREAK_TRAVERSAL;\n\n\t\tbefore(function () {\n\t\t\tBREAK_TRAVERSAL = require(\"../..\").BaseProperty.BREAK_TRAVERSAL;\n\t\t\tvar TestTraversalObject = {\n\t\t\t\ttypeid: \"autodesk.tests:property.traversal-1.0.0\",\n\t\t\t\tproperties: [\n\t\t\t\t\t{ id: \"p1\", typeid: \"String\" },\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"p2\",\n\t\t\t\t\t\tproperties: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: \"p2p1\",\n\t\t\t\t\t\t\t\tproperties: [\n\t\t\t\t\t\t\t\t\t{ id: \"p2p1p1\", typeid: \"String\" },\n\t\t\t\t\t\t\t\t\t{ id: \"p2p1p2\", typeid: \"String\" },\n\t\t\t\t\t\t\t\t\t{ id: \"p2p1p3\", typeid: \"String\" },\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: \"p2p2\",\n\t\t\t\t\t\t\t\tproperties: [\n\t\t\t\t\t\t\t\t\t{ id: \"p2p2p1\", typeid: \"String\" },\n\t\t\t\t\t\t\t\t\t{ id: \"p2p2p2\", typeid: \"String\" },\n\t\t\t\t\t\t\t\t\t{ id: \"p2p2p3\", typeid: \"Int32\" },\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t\t{ id: \"p3\", typeid: \"String\" },\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"p4\",\n\t\t\t\t\t\tproperties: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: \"p4p1\",\n\t\t\t\t\t\t\t\tproperties: [{ id: \"p4p1p1\", typeid: \"String\" }],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: \"p4p2\",\n\t\t\t\t\t\t\t\tproperties: [{ id: \"p4p2p1\", typeid: \"String\" }],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t\tPropertyFactory.register(TestTraversalObject);\n\t\t});\n\n\t\tit(\"should stop when callback returns BREAK_TRAVERSAL\", function () {\n\t\t\tvar property = PropertyFactory.create(\"autodesk.tests:property.traversal-1.0.0\");\n\n\t\t\tvar nbrCalls = 0;\n\t\t\tvar breakTrav = function (prop) {\n\t\t\t\tif (++nbrCalls === 5) {\n\t\t\t\t\treturn BREAK_TRAVERSAL;\n\t\t\t\t}\n\t\t\t\treturn undefined;\n\t\t\t};\n\t\t\tproperty.traverseDown(breakTrav);\n\t\t\texpect(nbrCalls).to.equal(5);\n\t\t});\n\n\t\tit(\"should provide path of each prop\", function () {\n\t\t\tvar arrPaths = [];\n\t\t\tvar gatherPaths = function (prop, path) {\n\t\t\t\tarrPaths.push(path);\n\t\t\t};\n\t\t\tvar property = PropertyFactory.create(\"autodesk.tests:property.traversal-1.0.0\");\n\t\t\tproperty.resolvePath(\"p4\").traverseDown(gatherPaths);\n\t\t\texpect(arrPaths).to.deep.equal([\"p4p1\", \"p4p1.p4p1p1\", \"p4p2\", \"p4p2.p4p2p1\"]);\n\t\t});\n\n\t\tit(\"should return pending changes\", function () {\n\t\t\tvar property = PropertyFactory.create(\"autodesk.tests:property.traversal-1.0.0\");\n\t\t\texpect(property.resolvePath(\"p2\").getPendingChanges()).to.deep.equal(new ChangeSet({}));\n\t\t\texpect(property.resolvePath(\"p2\").hasPendingChanges()).to.be.false;\n\t\t\tproperty.resolvePath(\"p2.p2p1.p2p1p2\").value = \"Hi\";\n\t\t\tproperty.resolvePath(\"p2.p2p2.p2p2p1\").value = \"Hello\";\n\t\t\tproperty.resolvePath(\"p2.p2p2.p2p2p3\").value = 42;\n\t\t\texpect(property.resolvePath(\"p2\").getPendingChanges()).to.deep.equal(\n\t\t\t\tnew ChangeSet({\n\t\t\t\t\tInt32: { \"p2p2.p2p2p3\": 42 },\n\t\t\t\t\tString: { \"p2p1.p2p1p2\": \"Hi\", \"p2p2.p2p2p1\": \"Hello\" },\n\t\t\t\t}),\n\t\t\t);\n\t\t\texpect(property.resolvePath(\"p2\").hasPendingChanges()).to.be.true;\n\t\t});\n\n\t\tit(\"should output a pretty string with prettyPrint()\", function () {\n\t\t\tvar property = PropertyFactory.create(\"autodesk.tests:property.traversal-1.0.0\");\n\t\t\tvar expectedPrettyStr =\n\t\t\t\t\"p2 (ContainerProperty):\\n\" +\n\t\t\t\t\" p2p1 (ContainerProperty):\\n\" +\n\t\t\t\t' p2p1p1 (String): \"\"\\n' +\n\t\t\t\t' p2p1p2 (String): \"\"\\n' +\n\t\t\t\t' p2p1p3 (String): \"\"\\n' +\n\t\t\t\t\" p2p2 (ContainerProperty):\\n\" +\n\t\t\t\t' p2p2p1 (String): \"\"\\n' +\n\t\t\t\t' p2p2p2 (String): \"\"\\n' +\n\t\t\t\t\" p2p2p3 (Int32): 0\\n\";\n\t\t\tvar prettyStr = \"\";\n\t\t\tproperty.resolvePath(\"p2\").prettyPrint(function (str) {\n\t\t\t\tprettyStr += str + \"\\n\";\n\t\t\t});\n\t\t\texpect(prettyStr).to.equal(expectedPrettyStr);\n\t\t});\n\t});\n\tdescribe(\"Ancestry relations should be resolved correctly\", function () {\n\t\t/**\n\t\t * creates a workspace\n\t\t * @return {property-properties.Workspace} workspace\n\t\t */\n\t\tfunction createRootProperty() {\n\t\t\treturn Promise.resolve(PropertyFactory.create(\"NodeProperty\"));\n\t\t}\n\n\t\tit(\"property should be ancestor of subproperty\", function () {\n\t\t\treturn createRootProperty().then(function (workspace) {\n\t\t\t\tvar property = PropertyFactory.create(\"autodesk.tests:property.traversal-1.0.0\");\n\t\t\t\tvar subproperty = property.resolvePath(\"p2.p2p1.p2p1p2\");\n\t\t\t\tworkspace.insert(\"test\", property);\n\t\t\t\texpect(property.isAncestorOf(subproperty)).to.equal(true);\n\t\t\t});\n\t\t});\n\n\t\tit(\"property should not be ancestor itself\", function () {\n\t\t\treturn createRootProperty().then(function (workspace) {\n\t\t\t\tvar property = PropertyFactory.create(\"autodesk.tests:property.traversal-1.0.0\");\n\t\t\t\texpect(property.isAncestorOf(property)).to.equal(false);\n\t\t\t});\n\t\t});\n\n\t\tit(\"property not in workspace should correctly resolve ancestry\", function () {\n\t\t\tvar property = PropertyFactory.create(\"autodesk.tests:property.traversal-1.0.0\");\n\t\t\tvar subproperty = property.resolvePath(\"p2.p2p1.p2p1p2\");\n\t\t\texpect(property.isAncestorOf(subproperty)).to.equal(true);\n\t\t\texpect(subproperty.isDescendantOf(property)).to.equal(true);\n\t\t});\n\n\t\tit(\"property should be ancestor of subproperty\", function () {\n\t\t\treturn createRootProperty().then(function (workspace) {\n\t\t\t\tvar property = PropertyFactory.create(\"autodesk.tests:property.traversal-1.0.0\");\n\t\t\t\tvar subproperty = property.resolvePath(\"p2.p2p1.p2p1p2\");\n\t\t\t\tworkspace.insert(\"test\", property);\n\t\t\t\texpect(property.isAncestorOf(subproperty)).to.equal(true);\n\t\t\t});\n\t\t});\n\n\t\tit(\"subproperty should be descendant of property\", function () {\n\t\t\treturn createRootProperty().then(function (workspace) {\n\t\t\t\tvar property = PropertyFactory.create(\"autodesk.tests:property.traversal-1.0.0\");\n\t\t\t\tvar subproperty = property.resolvePath(\"p2.p2p1.p2p1p2\");\n\t\t\t\tworkspace.insert(\"test\", property);\n\t\t\t\texpect(subproperty.isDescendantOf(property)).to.equal(true);\n\t\t\t});\n\t\t});\n\n\t\tit(\"property in array property should be descendant of array\", function () {\n\t\t\treturn createRootProperty().then(function (workspace) {\n\t\t\t\tvar property = PropertyFactory.create(\n\t\t\t\t\t\"autodesk.tests:property.traversal-1.0.0\",\n\t\t\t\t\t\"array\",\n\t\t\t\t);\n\t\t\t\tvar element = PropertyFactory.create(\"autodesk.tests:property.traversal-1.0.0\");\n\t\t\t\tproperty.push(element);\n\t\t\t\tvar subproperty = element.resolvePath(\"p2.p2p1.p2p1p2\");\n\t\t\t\tworkspace.insert(\"test\", property);\n\t\t\t\texpect(subproperty.isDescendantOf(property)).to.equal(true);\n\t\t\t});\n\t\t});\n\n\t\tit(\"array property should be ancestor of property in array\", function () {\n\t\t\treturn createRootProperty().then(function (workspace) {\n\t\t\t\tvar property = PropertyFactory.create(\n\t\t\t\t\t\"autodesk.tests:property.traversal-1.0.0\",\n\t\t\t\t\t\"array\",\n\t\t\t\t);\n\t\t\t\tvar element = PropertyFactory.create(\"autodesk.tests:property.traversal-1.0.0\");\n\t\t\t\tproperty.push(element);\n\t\t\t\tvar subproperty = element.resolvePath(\"p2.p2p1.p2p1p2\");\n\t\t\t\tworkspace.insert(\"test\", property);\n\t\t\t\texpect(property.isAncestorOf(subproperty)).to.equal(true);\n\t\t\t});\n\t\t});\n\n\t\tit(\"two different properties should not be related\", function () {\n\t\t\treturn createRootProperty().then(function (workspace) {\n\t\t\t\tvar prop1 = PropertyFactory.create(\"autodesk.tests:property.traversal-1.0.0\");\n\t\t\t\tvar prop2 = PropertyFactory.create(\"autodesk.tests:property.traversal-1.0.0\");\n\t\t\t\tworkspace.insert(\"test1\", prop1);\n\t\t\t\tworkspace.insert(\"test2\", prop2);\n\t\t\t\texpect(prop2.isAncestorOf(prop1)).to.equal(false);\n\t\t\t\texpect(prop2.isDescendantOf(prop1)).to.equal(false);\n\t\t\t\texpect(prop1.isAncestorOf(prop2)).to.equal(false);\n\t\t\t\texpect(prop1.isDescendantOf(prop2)).to.equal(false);\n\t\t\t});\n\t\t});\n\t});\n});\n"]}
1
+ {"version":3,"file":"baseProperty.spec.js","sourceRoot":"","sources":["../../../src/test/properties/baseProperty.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/**\n * @fileoverview In this file, we will test the functions of a BaseProperty object\n * described in /src/properties/baseProperty.js\n */\n\nvar PropertyFactory, ChangeSet, MSG, BaseProperty;\n\ndescribe(\"BaseProperty\", 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\tChangeSet = require(\"@fluid-experimental/property-changeset\").ChangeSet;\n\t\tMSG = require(\"@fluid-experimental/property-common\").constants.MSG;\n\t\tBaseProperty = require(\"../..\").BaseProperty;\n\n\t\tvar TestPropertyObject = {\n\t\t\ttypeid: \"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\tproperties: [\n\t\t\t\t{ id: \"simple_property\", typeid: \"String\" },\n\t\t\t\t{ id: \"test.property\", typeid: \"String\" },\n\t\t\t\t{ id: 'test\"property\"', typeid: \"String\" },\n\t\t\t\t{\n\t\t\t\t\tid: \"test[property]\",\n\t\t\t\t\tproperties: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: \".property.\",\n\t\t\t\t\t\t\tproperties: [{ id: \"test\", typeid: \"String\" }],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\n\t\tPropertyFactory._reregister(TestPropertyObject);\n\t});\n\n\tdescribe(\"Serializing a BaseProperty with special characters\", function () {\n\t\tit(\"should be possible to serialize a property with special characters\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\tmyProp._properties[\"test.property\"].value = \"a\";\n\t\t\tmyProp._properties['test\"property\"'].value = \"b\";\n\t\t\tmyProp._properties[\"test[property]\"][\".property.\"][\"test\"].value = \"c\";\n\n\t\t\tvar serialized = myProp._serialize(false);\n\n\t\t\tvar myProp2 = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\tmyProp2.deserialize(serialized);\n\t\t\texpect(myProp2._properties[\"test.property\"].value).to.equal(\"a\");\n\t\t\texpect(myProp2._properties['test\"property\"'].value).to.equal(\"b\");\n\t\t\texpect(myProp2._properties[\"test[property]\"][\".property.\"][\"test\"].value).to.equal(\"c\");\n\t\t});\n\t});\n\n\tdescribe(\"Get should work\", function () {\n\t\t// Test whether .get accepts the correct parameters\n\t\tit(\"should accept an id (string) or an array of ids\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\tvar correctArrayFn = function () {\n\t\t\t\tmyProp.get([\"test\"]);\n\t\t\t};\n\t\t\tvar correctStringFn = function () {\n\t\t\t\tmyProp.get(\"test\");\n\t\t\t};\n\t\t\texpect(correctArrayFn).to.not.throw();\n\t\t\texpect(correctStringFn).to.not.throw();\n\t\t});\n\t\t// .get(['test1','test2']) === .get('test1').get('test2')\n\t\tit(\"when an array is passed, it should do a .get for each id in the array\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\texpect(myProp.get([\"test[property]\", \".property.\", \"test\"])).to.equal(\n\t\t\t\tmyProp.get(\"test[property]\").get(\".property.\").get(\"test\"),\n\t\t\t);\n\t\t});\n\n\t\tit(\"when an array is passed with a bad path, it should return undefined\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\texpect(myProp.get([\"wrong path\", \".property\", \"test\"])).to.be.undefined;\n\t\t});\n\n\t\tit(\"should work with raise level path tokens\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\texpect(\n\t\t\t\tmyProp.get([\n\t\t\t\t\t\"test[property]\",\n\t\t\t\t\t\".property.\",\n\t\t\t\t\tBaseProperty.PATH_TOKENS.UP,\n\t\t\t\t\t\".property.\",\n\t\t\t\t\t\"test\",\n\t\t\t\t]),\n\t\t\t).to.deep.equal(myProp.get(\"test[property]\").get(\".property.\").get(\"test\"));\n\t\t\texpect(\n\t\t\t\tmyProp.get([\n\t\t\t\t\t\"test[property]\",\n\t\t\t\t\t\".property.\",\n\t\t\t\t\tBaseProperty.PATH_TOKENS.UP,\n\t\t\t\t\tBaseProperty.PATH_TOKENS.UP,\n\t\t\t\t\t\"simple_property\",\n\t\t\t\t]),\n\t\t\t).to.deep.equal(myProp.get(\"simple_property\"));\n\t\t});\n\n\t\tit(\"should work with path root tokens\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\texpect(myProp.get([BaseProperty.PATH_TOKENS.ROOT])).to.equal(myProp);\n\t\t\texpect(myProp.get([BaseProperty.PATH_TOKENS.ROOT, \"simple_property\"])).to.equal(\n\t\t\t\tmyProp.get(\"simple_property\"),\n\t\t\t);\n\t\t\texpect(myProp.get(\"test[property]\").get([BaseProperty.PATH_TOKENS.ROOT])).to.equal(\n\t\t\t\tmyProp,\n\t\t\t);\n\t\t});\n\t});\n\n\tdescribe(\"GetValue should work\", function () {\n\t\tit(\"should return the value of a primitive property\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\tmyProp._properties[\"test.property\"].value = \"a\";\n\t\t\tvar myValue = myProp.getValue([\"test.property\"]);\n\t\t\texpect(myValue).to.equal(\"a\");\n\t\t});\n\n\t\tit(\"should work with an array of paths\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\tmyProp.get([\"test[property]\", \".property.\", \"test\"]).setValue(\"b\");\n\t\t\texpect(myProp.getValue([\"test[property]\", \".property.\", \"test\"])).to.equal(\"b\");\n\t\t});\n\n\t\tit(\"should throw if using .getValue on a non-primitive property\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\tvar incorrectFn = function () {\n\t\t\t\tmyProp.getValue([\"test[property]\"]);\n\t\t\t};\n\t\t\texpect(incorrectFn).to.throw();\n\t\t});\n\t});\n\n\tdescribe(\"GetValues should work\", function () {\n\t\tit(\"should return the values of a property\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\tmyProp.setValues({\n\t\t\t\t\"simple_property\": \"string1\",\n\t\t\t\t'test\"property\"': \"string3\",\n\t\t\t\t\"test[property]\": {\n\t\t\t\t\t\".property.\": {\n\t\t\t\t\t\ttest: \"string4\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t});\n\n\t\t\texpect(myProp.getValues()).to.deep.equal({\n\t\t\t\t\"simple_property\": \"string1\",\n\t\t\t\t\"test.property\": \"\",\n\t\t\t\t'test\"property\"': \"string3\",\n\t\t\t\t\"test[property]\": {\n\t\t\t\t\t\".property.\": {\n\t\t\t\t\t\ttest: \"string4\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\tit(\"setValues should accept the output of getValues as a valid input\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\tmyProp.setValues({\n\t\t\t\t\"simple_property\": \"string1\",\n\t\t\t\t'test\"property\"': \"string3\",\n\t\t\t\t\"test[property]\": {\n\t\t\t\t\t\".property.\": {\n\t\t\t\t\t\ttest: \"string4\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tvar correctFn = function () {\n\t\t\t\tmyProp.setValues(myProp.getValues());\n\t\t\t};\n\t\t\texpect(correctFn).to.not.throw();\n\t\t});\n\t});\n\n\tdescribe(\"setValues should work\", function () {\n\t\tit(\"should accept an object and set each values in that object\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\tmyProp.setValues({\n\t\t\t\t\"simple_property\": \"string1\",\n\t\t\t\t\"test[property]\": {\n\t\t\t\t\t\".property.\": {\n\t\t\t\t\t\ttest: \"string2\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t});\n\t\t\texpect(myProp.get(\"simple_property\").getValue()).to.equal(\"string1\");\n\t\t\texpect(myProp.get([\"test[property]\", \".property.\", \"test\"]).getValue()).to.equal(\n\t\t\t\t\"string2\",\n\t\t\t);\n\t\t});\n\t\tit(\"should throw if trying to insert in a non-exiting path\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\tvar invalidFunction = function () {\n\t\t\t\tmyProp.setValues({\n\t\t\t\t\t\"simple_property\": \"string1\",\n\t\t\t\t\t\"test[property]\": {\n\t\t\t\t\t\t\".property.\": {\n\t\t\t\t\t\t\ttest123: \"string2\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t};\n\t\t\t// TODO: move this to constants.js\n\t\t\texpect(invalidFunction).to.throw(MSG.SET_VALUES_PATH_INVALID + \"test123\");\n\t\t});\n\n\t\tit(\"should throw if trying to insert into a path that resolves to a property\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\tvar invalidFunction = function () {\n\t\t\t\tmyProp.setValues({\n\t\t\t\t\t\"simple_property\": \"string1\",\n\t\t\t\t\t\"test[property]\": {\n\t\t\t\t\t\t\".property.\": \"string2\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t};\n\t\t\texpect(invalidFunction).to.throw(MSG.SET_VALUES_PATH_PROPERTY + \".property.\");\n\t\t});\n\t});\n\n\tdescribe(\"Path resolution should work\", function () {\n\t\t// Test whether the right paths are returned\n\t\tit(\"should work with getAbsolutePath\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\n\t\t\texpect(myProp.get(\"simple_property\").getAbsolutePath()).to.equal(\"/simple_property\");\n\t\t\texpect(myProp.get(\"test.property\").getAbsolutePath()).to.equal('/\"test.property\"');\n\t\t\texpect(myProp.get('test\"property\"').getAbsolutePath()).to.equal('/\"test\\\\\"property\\\\\"\"');\n\t\t\texpect(myProp.get(\"test[property]\").getAbsolutePath()).to.equal('/\"test[property]\"');\n\t\t\texpect(myProp.get(\"test[property]\").get(\".property.\").getAbsolutePath()).to.equal(\n\t\t\t\t'/\"test[property]\".\".property.\"',\n\t\t\t);\n\t\t\texpect(\n\t\t\t\tmyProp.get(\"test[property]\").get(\".property.\").get(\"test\").getAbsolutePath(),\n\t\t\t).to.equal('/\"test[property]\".\".property.\".test');\n\t\t});\n\n\t\tit(\"should work with getRelativePath\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\tvar nested = myProp.get(\"test[property]\");\n\t\t\texpect(\n\t\t\t\tmyProp.get([\"test[property]\", \".property.\", \"test\"]).getRelativePath(nested),\n\t\t\t).to.equal('\".property.\".test');\n\t\t\texpect(\n\t\t\t\tmyProp\n\t\t\t\t\t.get([\"test[property]\", \".property.\", \"test\"])\n\t\t\t\t\t.getRelativePath(myProp.get(\"simple_property\")),\n\t\t\t).to.equal('../\"test[property]\".\".property.\".test');\n\t\t\texpect(\n\t\t\t\tnested.getRelativePath(myProp.get([\"test[property]\", \".property.\", \"test\"])),\n\t\t\t).to.equal(\"../../\");\n\t\t});\n\n\t\t// Test that path resolution works\n\t\tit(\"should work with resolvePath\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\n\t\t\texpect(myProp.resolvePath(\"simple_property\")).to.equal(myProp.get(\"simple_property\"));\n\t\t\texpect(myProp.resolvePath('\"test.property\"')).to.equal(myProp.get(\"test.property\"));\n\t\t\texpect(myProp.resolvePath('\"test\\\\\"property\\\\\"\"')).to.equal(\n\t\t\t\tmyProp.get('test\"property\"'),\n\t\t\t);\n\t\t\texpect(myProp.resolvePath('\"test[property]\"')).to.equal(myProp.get(\"test[property]\"));\n\t\t\texpect(myProp.resolvePath('\"test[property]\".\".property.\"')).to.equal(\n\t\t\t\tmyProp.get(\"test[property]\").get(\".property.\"),\n\t\t\t);\n\t\t\texpect(myProp.resolvePath('\"test[property]\".\".property.\".test')).to.equal(\n\t\t\t\tmyProp.get(\"test[property]\").get(\".property.\").get(\"test\"),\n\t\t\t);\n\n\t\t\texpect(myProp.resolvePath(\"/\")).to.equal(myProp);\n\t\t\texpect(myProp.resolvePath(\"/simple_property\")).to.equal(myProp.get(\"simple_property\"));\n\t\t\texpect(myProp.get(\"simple_property\").resolvePath(\"/\")).to.equal(myProp);\n\t\t\texpect(myProp.get(\"simple_property\").resolvePath(\"/simple_property\")).to.equal(\n\t\t\t\tmyProp.get(\"simple_property\"),\n\t\t\t);\n\t\t});\n\n\t\tit(\"should return undefined for invalid paths\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\n\t\t\texpect(myProp.resolvePath(\"invalid_path\")).to.be.undefined;\n\t\t\texpect(myProp.resolvePath(\"invalid_path.invalid_child\")).to.be.undefined;\n\t\t});\n\t});\n\n\tdescribe(\"cleanDirty\", function () {\n\t\tit(\"should work for paths with special characters\", function () {\n\t\t\tvar property = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\tproperty.resolvePath('\"test[property]\".\".property.\".test').value = \"test\";\n\t\t\tproperty.cleanDirty();\n\t\t\texpect(property._serialize(true)).to.be.empty;\n\t\t\texpect(property.getPendingChanges()).to.deep.equal(new ChangeSet({}));\n\t\t});\n\t});\n\n\tit(\"should clone the property set\", function (done) {\n\t\tvar nodeProperty = PropertyFactory.create(\"NodeProperty\");\n\n\t\tnodeProperty.deserialize({\n\t\t\tinsert: {\n\t\t\t\tString: {\n\t\t\t\t\tresult1: \"foo\",\n\t\t\t\t\tresult2: \"bar\",\n\t\t\t\t},\n\t\t\t\tNodeProperty: {\n\t\t\t\t\tresult3: {\n\t\t\t\t\t\tinsert: {\n\t\t\t\t\t\t\tUint32: {\n\t\t\t\t\t\t\t\tresult4: 4,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tvar clone = nodeProperty.clone();\n\n\t\texpect(nodeProperty._serialize(false)).to.eql(clone._serialize(false));\n\n\t\tdone();\n\t});\n\n\tit(\"should support reapplying dirty flags on non-identical changeSets\", function (done) {\n\t\tlet nodeProperty = PropertyFactory.create(\"NodeProperty\");\n\n\t\tnodeProperty.insert(\"result1\", PropertyFactory.create(\"String\"));\n\t\tnodeProperty.insert(\"result2\", PropertyFactory.create(\"String\"));\n\t\tnodeProperty.insert(\"result3\", PropertyFactory.create(\"Int32\"));\n\t\tnodeProperty.insert(\"result4\", PropertyFactory.create(\"Int32\"));\n\n\t\tconst changeset1 = {\n\t\t\tString: {\n\t\t\t\tresult1: \"foo\",\n\t\t\t\tresult2: \"bar\",\n\t\t\t},\n\t\t};\n\n\t\tconst changeset2 = {\n\t\t\tInt32: {\n\t\t\t\tresult3: 10,\n\t\t\t\tresult4: 11,\n\t\t\t},\n\t\t};\n\n\t\tnodeProperty._reapplyDirtyFlags(changeset1, changeset2);\n\n\t\tdone();\n\t});\n\n\tit(\"should be able to handle duplicate namespace\", function () {\n\t\tvar ANumber = {\n\t\t\ttypeid: \"autodesk.tests:ANumber-1.0.0\",\n\t\t\tproperties: [\n\t\t\t\t{\n\t\t\t\t\tid: \"aValue\",\n\t\t\t\t\ttypeid: \"Int32\",\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t\tPropertyFactory.register(ANumber);\n\n\t\tvar SomeNumbers = {\n\t\t\ttypeid: \"autodesk.tests:SomeNumbers-1.0.0\",\n\t\t\tproperties: [\n\t\t\t\t{ id: \"aValue\", typeid: \"autodesk.tests:ANumber-1.0.0\" },\n\t\t\t\t{ id: \"anotherValue\", typeid: \"autodesk.tests:ANumber-1.0.0\" },\n\t\t\t\t{ id: \"thirdValue\", typeid: \"autodesk.tests:ANumber-1.0.0\" },\n\t\t\t],\n\t\t};\n\t\tPropertyFactory.register(SomeNumbers);\n\n\t\tvar originalSomeNumbers = PropertyFactory.create(SomeNumbers.typeid);\n\n\t\tlet root = PropertyFactory.create(\"NodeProperty\");\n\t\troot.insert(\"aValue\", originalSomeNumbers);\n\n\t\tvar someNumbers = root.resolvePath(\"aValue\");\n\t\texpect(someNumbers).to.equal(originalSomeNumbers);\n\t\tvar aNumber = root.resolvePath(\"aValue.aValue\");\n\t\texpect(aNumber).to.exist;\n\t\tvar aValue = root.resolvePath(\"aValue.aValue.aValue\");\n\t\texpect(aValue).to.exist;\n\t});\n\n\tdescribe(\"getContext\", function () {\n\t\tit(\"should work with context of single\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\texpect(myProp.getContext()).to.equal(\"single\");\n\t\t});\n\t\tit(\"should work with other contexts\", function () {\n\t\t\tvar arrayProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t\t\"array\",\n\t\t\t);\n\t\t\texpect(arrayProp.getContext()).to.equal(\"array\");\n\t\t\tvar mapProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t\t\"map\",\n\t\t\t);\n\t\t\texpect(mapProp.getContext()).to.equal(\"map\");\n\t\t});\n\t});\n\n\tdescribe(\"getFullTypeid\", function () {\n\t\tit(\"should return the typeid of the property\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\texpect(myProp.getFullTypeid()).to.equal(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t});\n\t});\n\n\tdescribe(\"getTypeid\", function () {\n\t\tit(\"should return the typeid of the property\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\texpect(myProp.getTypeid()).to.equal(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t});\n\t});\n\n\tdescribe(\"getId\", function () {\n\t\tit(\"should return the id of the property\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\tvar nested = myProp.get(\"test.property\");\n\t\t\texpect(nested.getId()).to.equal(\"test.property\");\n\t\t});\n\t});\n\n\tdescribe(\"getParent\", function () {\n\t\tit(\"should return the parent property\", function () {\n\t\t\tvar myProp = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:property.with.special.characters-1.0.0\",\n\t\t\t);\n\t\t\tvar nested = myProp.get(\"test.property\");\n\t\t\texpect(nested.getParent()).to.deep.equal(myProp);\n\t\t});\n\t});\n\n\t// Other aspects of traverseDown function are already tested. Missing BREAK_TRAVERSAL and paths only.\n\tdescribe(\"traverseDown, hasPendingChanges and getPendingChanges\", function () {\n\t\tvar BREAK_TRAVERSAL;\n\n\t\tbefore(function () {\n\t\t\tBREAK_TRAVERSAL = require(\"../..\").BaseProperty.BREAK_TRAVERSAL;\n\t\t\tvar TestTraversalObject = {\n\t\t\t\ttypeid: \"autodesk.tests:property.traversal-1.0.0\",\n\t\t\t\tproperties: [\n\t\t\t\t\t{ id: \"p1\", typeid: \"String\" },\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"p2\",\n\t\t\t\t\t\tproperties: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: \"p2p1\",\n\t\t\t\t\t\t\t\tproperties: [\n\t\t\t\t\t\t\t\t\t{ id: \"p2p1p1\", typeid: \"String\" },\n\t\t\t\t\t\t\t\t\t{ id: \"p2p1p2\", typeid: \"String\" },\n\t\t\t\t\t\t\t\t\t{ id: \"p2p1p3\", typeid: \"String\" },\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: \"p2p2\",\n\t\t\t\t\t\t\t\tproperties: [\n\t\t\t\t\t\t\t\t\t{ id: \"p2p2p1\", typeid: \"String\" },\n\t\t\t\t\t\t\t\t\t{ id: \"p2p2p2\", typeid: \"String\" },\n\t\t\t\t\t\t\t\t\t{ id: \"p2p2p3\", typeid: \"Int32\" },\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t\t{ id: \"p3\", typeid: \"String\" },\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"p4\",\n\t\t\t\t\t\tproperties: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: \"p4p1\",\n\t\t\t\t\t\t\t\tproperties: [{ id: \"p4p1p1\", typeid: \"String\" }],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: \"p4p2\",\n\t\t\t\t\t\t\t\tproperties: [{ id: \"p4p2p1\", typeid: \"String\" }],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t\tPropertyFactory.register(TestTraversalObject);\n\t\t});\n\n\t\tit(\"should stop when callback returns BREAK_TRAVERSAL\", function () {\n\t\t\tvar property = PropertyFactory.create(\"autodesk.tests:property.traversal-1.0.0\");\n\n\t\t\tvar nbrCalls = 0;\n\t\t\tvar breakTrav = function (prop) {\n\t\t\t\tif (++nbrCalls === 5) {\n\t\t\t\t\treturn BREAK_TRAVERSAL;\n\t\t\t\t}\n\t\t\t\treturn undefined;\n\t\t\t};\n\t\t\tproperty.traverseDown(breakTrav);\n\t\t\texpect(nbrCalls).to.equal(5);\n\t\t});\n\n\t\tit(\"should provide path of each prop\", function () {\n\t\t\tvar arrPaths = [];\n\t\t\tvar gatherPaths = function (prop, path) {\n\t\t\t\tarrPaths.push(path);\n\t\t\t};\n\t\t\tvar property = PropertyFactory.create(\"autodesk.tests:property.traversal-1.0.0\");\n\t\t\tproperty.resolvePath(\"p4\").traverseDown(gatherPaths);\n\t\t\texpect(arrPaths).to.deep.equal([\"p4p1\", \"p4p1.p4p1p1\", \"p4p2\", \"p4p2.p4p2p1\"]);\n\t\t});\n\n\t\tit(\"should return pending changes\", function () {\n\t\t\tvar property = PropertyFactory.create(\"autodesk.tests:property.traversal-1.0.0\");\n\t\t\texpect(property.resolvePath(\"p2\").getPendingChanges()).to.deep.equal(new ChangeSet({}));\n\t\t\texpect(property.resolvePath(\"p2\").hasPendingChanges()).to.be.false;\n\t\t\tproperty.resolvePath(\"p2.p2p1.p2p1p2\").value = \"Hi\";\n\t\t\tproperty.resolvePath(\"p2.p2p2.p2p2p1\").value = \"Hello\";\n\t\t\tproperty.resolvePath(\"p2.p2p2.p2p2p3\").value = 42;\n\t\t\texpect(property.resolvePath(\"p2\").getPendingChanges()).to.deep.equal(\n\t\t\t\tnew ChangeSet({\n\t\t\t\t\tInt32: { \"p2p2.p2p2p3\": 42 },\n\t\t\t\t\tString: { \"p2p1.p2p1p2\": \"Hi\", \"p2p2.p2p2p1\": \"Hello\" },\n\t\t\t\t}),\n\t\t\t);\n\t\t\texpect(property.resolvePath(\"p2\").hasPendingChanges()).to.be.true;\n\t\t});\n\n\t\tit(\"should output a pretty string with prettyPrint()\", function () {\n\t\t\tvar property = PropertyFactory.create(\"autodesk.tests:property.traversal-1.0.0\");\n\t\t\tvar expectedPrettyStr =\n\t\t\t\t\"p2 (ContainerProperty):\\n\" +\n\t\t\t\t\" p2p1 (ContainerProperty):\\n\" +\n\t\t\t\t' p2p1p1 (String): \"\"\\n' +\n\t\t\t\t' p2p1p2 (String): \"\"\\n' +\n\t\t\t\t' p2p1p3 (String): \"\"\\n' +\n\t\t\t\t\" p2p2 (ContainerProperty):\\n\" +\n\t\t\t\t' p2p2p1 (String): \"\"\\n' +\n\t\t\t\t' p2p2p2 (String): \"\"\\n' +\n\t\t\t\t\" p2p2p3 (Int32): 0\\n\";\n\t\t\tvar prettyStr = \"\";\n\t\t\tproperty.resolvePath(\"p2\").prettyPrint(function (str) {\n\t\t\t\tprettyStr += str + \"\\n\";\n\t\t\t});\n\t\t\texpect(prettyStr).to.equal(expectedPrettyStr);\n\t\t});\n\t});\n\tdescribe(\"Ancestry relations should be resolved correctly\", function () {\n\t\t/**\n\t\t * creates a workspace\n\t\t * @return {Promise<import(\"../../index.js\").NodeProperty>} workspace\n\t\t * @privateRemarks\n\t\t * The return type can be `Workspace` once package is updated to support modules. Then\n\t\t * {Promise<import(\"@fluid-experimental/property-properties\").Workspace>} may be used.\n\t\t */\n\t\tfunction createRootProperty() {\n\t\t\treturn Promise.resolve(PropertyFactory.create(\"NodeProperty\"));\n\t\t}\n\n\t\tit(\"property should be ancestor of subproperty\", function () {\n\t\t\treturn createRootProperty().then(function (workspace) {\n\t\t\t\tvar property = PropertyFactory.create(\"autodesk.tests:property.traversal-1.0.0\");\n\t\t\t\tvar subproperty = property.resolvePath(\"p2.p2p1.p2p1p2\");\n\t\t\t\tworkspace.insert(\"test\", property);\n\t\t\t\texpect(property.isAncestorOf(subproperty)).to.equal(true);\n\t\t\t});\n\t\t});\n\n\t\tit(\"property should not be ancestor itself\", function () {\n\t\t\treturn createRootProperty().then(function (workspace) {\n\t\t\t\tvar property = PropertyFactory.create(\"autodesk.tests:property.traversal-1.0.0\");\n\t\t\t\texpect(property.isAncestorOf(property)).to.equal(false);\n\t\t\t});\n\t\t});\n\n\t\tit(\"property not in workspace should correctly resolve ancestry\", function () {\n\t\t\tvar property = PropertyFactory.create(\"autodesk.tests:property.traversal-1.0.0\");\n\t\t\tvar subproperty = property.resolvePath(\"p2.p2p1.p2p1p2\");\n\t\t\texpect(property.isAncestorOf(subproperty)).to.equal(true);\n\t\t\texpect(subproperty.isDescendantOf(property)).to.equal(true);\n\t\t});\n\n\t\tit(\"property should be ancestor of subproperty\", function () {\n\t\t\treturn createRootProperty().then(function (workspace) {\n\t\t\t\tvar property = PropertyFactory.create(\"autodesk.tests:property.traversal-1.0.0\");\n\t\t\t\tvar subproperty = property.resolvePath(\"p2.p2p1.p2p1p2\");\n\t\t\t\tworkspace.insert(\"test\", property);\n\t\t\t\texpect(property.isAncestorOf(subproperty)).to.equal(true);\n\t\t\t});\n\t\t});\n\n\t\tit(\"subproperty should be descendant of property\", function () {\n\t\t\treturn createRootProperty().then(function (workspace) {\n\t\t\t\tvar property = PropertyFactory.create(\"autodesk.tests:property.traversal-1.0.0\");\n\t\t\t\tvar subproperty = property.resolvePath(\"p2.p2p1.p2p1p2\");\n\t\t\t\tworkspace.insert(\"test\", property);\n\t\t\t\texpect(subproperty.isDescendantOf(property)).to.equal(true);\n\t\t\t});\n\t\t});\n\n\t\tit(\"property in array property should be descendant of array\", function () {\n\t\t\treturn createRootProperty().then(function (workspace) {\n\t\t\t\tvar property = PropertyFactory.create(\n\t\t\t\t\t\"autodesk.tests:property.traversal-1.0.0\",\n\t\t\t\t\t\"array\",\n\t\t\t\t);\n\t\t\t\tvar element = PropertyFactory.create(\"autodesk.tests:property.traversal-1.0.0\");\n\t\t\t\tproperty.push(element);\n\t\t\t\tvar subproperty = element.resolvePath(\"p2.p2p1.p2p1p2\");\n\t\t\t\tworkspace.insert(\"test\", property);\n\t\t\t\texpect(subproperty.isDescendantOf(property)).to.equal(true);\n\t\t\t});\n\t\t});\n\n\t\tit(\"array property should be ancestor of property in array\", function () {\n\t\t\treturn createRootProperty().then(function (workspace) {\n\t\t\t\tvar property = PropertyFactory.create(\n\t\t\t\t\t\"autodesk.tests:property.traversal-1.0.0\",\n\t\t\t\t\t\"array\",\n\t\t\t\t);\n\t\t\t\tvar element = PropertyFactory.create(\"autodesk.tests:property.traversal-1.0.0\");\n\t\t\t\tproperty.push(element);\n\t\t\t\tvar subproperty = element.resolvePath(\"p2.p2p1.p2p1p2\");\n\t\t\t\tworkspace.insert(\"test\", property);\n\t\t\t\texpect(property.isAncestorOf(subproperty)).to.equal(true);\n\t\t\t});\n\t\t});\n\n\t\tit(\"two different properties should not be related\", function () {\n\t\t\treturn createRootProperty().then(function (workspace) {\n\t\t\t\tvar prop1 = PropertyFactory.create(\"autodesk.tests:property.traversal-1.0.0\");\n\t\t\t\tvar prop2 = PropertyFactory.create(\"autodesk.tests:property.traversal-1.0.0\");\n\t\t\t\tworkspace.insert(\"test1\", prop1);\n\t\t\t\tworkspace.insert(\"test2\", prop2);\n\t\t\t\texpect(prop2.isAncestorOf(prop1)).to.equal(false);\n\t\t\t\texpect(prop2.isDescendantOf(prop1)).to.equal(false);\n\t\t\t\texpect(prop1.isAncestorOf(prop2)).to.equal(false);\n\t\t\t\texpect(prop1.isDescendantOf(prop2)).to.equal(false);\n\t\t\t});\n\t\t});\n\t});\n});\n"]}
@@ -184,7 +184,7 @@ describe("ContainerProperty", function () {
184
184
  const instance = PropertyFactory.create("SimpleTest:OptionalPrimitive-1.0.0");
185
185
  expect(() => {
186
186
  instance.remove("num");
187
- }).to.throw(MSG.CANNOT_REMOVE_NONE_OPTIONAL_PROP + "num");
187
+ }).to.throw(MSG.CANNOT_REMOVE_NON_OPTIONAL_PROP + "num");
188
188
  });
189
189
  });
190
190
  });
@@ -1 +1 @@
1
- {"version":3,"file":"containerProperty.spec.js","sourceRoot":"","sources":["../../../src/test/properties/containerProperty.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/**\n * @fileoverview In this file, we will test the functions related Container property object\n * this will also tests parts of Property Factory that creates Container property\n */\n\nconst MSG = require(\"@fluid-experimental/property-common\").constants.MSG;\n\nconst PropertyFactory = require(\"../..\").PropertyFactory;\n\ndescribe(\"ContainerProperty\", function () {\n\tbeforeEach(() => {\n\t\tPropertyFactory._clear();\n\t});\n\n\tdescribe(\"Changeset\", function () {\n\t\tit(\"should not add created properties to the changeset on creation\", function () {\n\t\t\tconst DefaultPrimitive = {\n\t\t\t\ttypeid: \"SimpleTest:OptionalPrimitive-1.0.0\",\n\t\t\t\tproperties: [\n\t\t\t\t\t{ id: \"num\", typeid: \"Uint32\" },\n\t\t\t\t\t{ id: \"bool\", typeid: \"Bool\" },\n\t\t\t\t\t{ id: \"string\", typeid: \"String\" },\n\t\t\t\t],\n\t\t\t};\n\n\t\t\tconst changeset = {\n\t\t\t\tUint32: { num: 0 },\n\t\t\t\tBool: { bool: false },\n\t\t\t\tString: { string: \"\" },\n\t\t\t};\n\n\t\t\tPropertyFactory._reregister(DefaultPrimitive);\n\t\t\tconst instance = PropertyFactory.create(\"SimpleTest:OptionalPrimitive-1.0.0\");\n\n\t\t\texpect(instance._serialize(false, false)).to.deep.equal(changeset);\n\t\t\texpect(instance._serialize(true, false)).to.be.empty;\n\t\t});\n\n\t\tit(\"should add optional properties that have default values to the changeset on creation\", function () {\n\t\t\tconst DefaultPrimitive = {\n\t\t\t\ttypeid: \"SimpleTest:OptionalPrimitive-1.0.0\",\n\t\t\t\tproperties: [\n\t\t\t\t\t{ id: \"num\", typeid: \"Uint32\", value: 111, optional: true },\n\t\t\t\t\t{ id: \"bool\", typeid: \"Bool\", value: true, optional: true },\n\t\t\t\t\t{ id: \"string\", typeid: \"String\", value: \"basic\", optional: true },\n\t\t\t\t],\n\t\t\t};\n\n\t\t\tconst changeset = {\n\t\t\t\tinsert: {\n\t\t\t\t\tUint32: { num: 111 },\n\t\t\t\t\tBool: { bool: true },\n\t\t\t\t\tString: { string: \"basic\" },\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tPropertyFactory._reregister(DefaultPrimitive);\n\t\t\tconst instance = PropertyFactory.create(\"SimpleTest:OptionalPrimitive-1.0.0\");\n\n\t\t\texpect(instance._serialize(true, false)).to.deep.equal(changeset);\n\t\t});\n\n\t\tit(\"should not add optional properties that do not have default values to the changeset on creation\", function () {\n\t\t\tconst DefaultPrimitive = {\n\t\t\t\ttypeid: \"SimpleTest:OptionalPrimitive-1.0.0\",\n\t\t\t\tproperties: [\n\t\t\t\t\t{ id: \"num\", typeid: \"Uint32\", optional: true },\n\t\t\t\t\t{ id: \"bool\", typeid: \"Bool\", optional: true },\n\t\t\t\t\t{ id: \"string\", typeid: \"String\", optional: true },\n\t\t\t\t],\n\t\t\t};\n\n\t\t\tPropertyFactory._reregister(DefaultPrimitive);\n\t\t\tconst instance = PropertyFactory.create(\"SimpleTest:OptionalPrimitive-1.0.0\");\n\n\t\t\texpect(instance._serialize(true, false)).to.be.empty;\n\t\t});\n\t});\n\n\tdescribe(\"Optional Properties\", function () {\n\t\tit(\"should not exist on creation if no value is specified\", function () {\n\t\t\tconst DefaultPrimitive = {\n\t\t\t\ttypeid: \"SimpleTest:OptionalPrimitive-1.0.0\",\n\t\t\t\tproperties: [\n\t\t\t\t\t{ id: \"num\", typeid: \"Uint32\", optional: true },\n\t\t\t\t\t{ id: \"bool\", typeid: \"Bool\", optional: true },\n\t\t\t\t\t{ id: \"string\", typeid: \"String\", optional: true },\n\t\t\t\t],\n\t\t\t};\n\n\t\t\tPropertyFactory._reregister(DefaultPrimitive);\n\n\t\t\tconst instance = PropertyFactory.create(\"SimpleTest:OptionalPrimitive-1.0.0\");\n\t\t\texpect(instance.get(\"num\")).to.be.undefined;\n\t\t\texpect(instance.get(\"bool\")).to.be.undefined;\n\t\t\texpect(instance.get(\"string\")).to.be.undefined;\n\t\t});\n\n\t\tit(\"should exist on creation if value is specified\", function () {\n\t\t\tconst DefaultPrimitive = {\n\t\t\t\ttypeid: \"SimpleTest:OptionalPrimitive-1.0.0\",\n\t\t\t\tproperties: [\n\t\t\t\t\t{ id: \"num\", typeid: \"Uint32\", value: 111, optional: true },\n\t\t\t\t\t{ id: \"bool\", typeid: \"Bool\", value: true, optional: true },\n\t\t\t\t\t{ id: \"string\", typeid: \"String\", value: \"basic\", optional: true },\n\t\t\t\t],\n\t\t\t};\n\n\t\t\tPropertyFactory._reregister(DefaultPrimitive);\n\n\t\t\tconst instance = PropertyFactory.create(\"SimpleTest:OptionalPrimitive-1.0.0\");\n\t\t\texpect(instance.get(\"num\").getValue()).to.equal(111);\n\t\t\texpect(instance.get(\"bool\").getValue()).to.equal(true);\n\t\t\texpect(instance.get(\"string\").getValue()).to.equal(\"basic\");\n\t\t});\n\n\t\tit(\"can be inserted\", function () {\n\t\t\tconst DefaultPrimitive = {\n\t\t\t\ttypeid: \"SimpleTest:OptionalPrimitive-1.0.0\",\n\t\t\t\tproperties: [\n\t\t\t\t\t{ id: \"num\", typeid: \"Uint32\", optional: true },\n\t\t\t\t\t{ id: \"bool\", typeid: \"Bool\", optional: true },\n\t\t\t\t\t{ id: \"string\", typeid: \"String\", optional: true },\n\t\t\t\t],\n\t\t\t};\n\n\t\t\tPropertyFactory._reregister(DefaultPrimitive);\n\n\t\t\tconst instance = PropertyFactory.create(\"SimpleTest:OptionalPrimitive-1.0.0\");\n\n\t\t\tconst num = PropertyFactory.create(\"Uint32\");\n\t\t\tnum.setValue(111);\n\n\t\t\tconst string = PropertyFactory.create(\"String\");\n\t\t\tstring.setValue(\"basic\");\n\n\t\t\tconst bool = PropertyFactory.create(\"Bool\");\n\t\t\tbool.setValue(true);\n\n\t\t\tinstance.insert(\"num\", num);\n\t\t\tinstance.insert(\"bool\", bool);\n\t\t\tinstance.insert(\"string\", string);\n\n\t\t\texpect(instance.get(\"num\").getValue()).to.equal(111);\n\t\t\texpect(instance.get(\"bool\").getValue()).to.equal(true);\n\t\t\texpect(instance.get(\"string\").getValue()).to.equal(\"basic\");\n\t\t});\n\n\t\tit(\"can be removed\", function () {\n\t\t\tconst DefaultPrimitive = {\n\t\t\t\ttypeid: \"SimpleTest:OptionalPrimitive-1.0.0\",\n\t\t\t\tproperties: [\n\t\t\t\t\t{ id: \"num\", typeid: \"Uint32\", value: 111, optional: true },\n\t\t\t\t\t{ id: \"bool\", typeid: \"Bool\", value: true, optional: true },\n\t\t\t\t\t{ id: \"string\", typeid: \"String\", value: \"basic\", optional: true },\n\t\t\t\t],\n\t\t\t};\n\n\t\t\tPropertyFactory._reregister(DefaultPrimitive);\n\n\t\t\tconst instance = PropertyFactory.create(\"SimpleTest:OptionalPrimitive-1.0.0\");\n\n\t\t\tinstance.remove(\"num\");\n\t\t\tinstance.remove(\"bool\");\n\t\t\tinstance.remove(\"string\");\n\n\t\t\texpect(instance.get(\"num\")).to.be.undefined;\n\t\t\texpect(instance.get(\"bool\")).to.be.undefined;\n\t\t\texpect(instance.get(\"string\")).to.be.undefined;\n\t\t});\n\n\t\tit(\"throws error if inserted property has unknown id\", function () {\n\t\t\tconst DefaultPrimitive = {\n\t\t\t\ttypeid: \"SimpleTest:OptionalPrimitive-1.0.0\",\n\t\t\t\tproperties: [\n\t\t\t\t\t{ id: \"num\", typeid: \"Uint32\", value: 111, optional: true },\n\t\t\t\t\t{ id: \"bool\", typeid: \"Bool\", value: true, optional: true },\n\t\t\t\t\t{ id: \"string\", typeid: \"String\", value: \"basic\", optional: true },\n\t\t\t\t],\n\t\t\t};\n\n\t\t\tPropertyFactory._reregister(DefaultPrimitive);\n\n\t\t\tconst instance = PropertyFactory.create(\"SimpleTest:OptionalPrimitive-1.0.0\");\n\t\t\tconst prop = PropertyFactory.create(\"String\");\n\n\t\t\texpect(() => {\n\t\t\t\tinstance.insert(\"badId\", prop);\n\t\t\t}).to.throw(MSG.CANNOT_INSERT_UNKNOWN_PROPERTY + \"badId\");\n\t\t});\n\n\t\tit(\"throws error if inserted property typeid does not match corresponding typeid\", function () {\n\t\t\tconst DefaultPrimitive = {\n\t\t\t\ttypeid: \"SimpleTest:OptionalPrimitive-1.0.0\",\n\t\t\t\tproperties: [\n\t\t\t\t\t{ id: \"num\", typeid: \"Uint32\", optional: true },\n\t\t\t\t\t{ id: \"bool\", typeid: \"Bool\", optional: true },\n\t\t\t\t\t{ id: \"string\", typeid: \"String\", optional: true },\n\t\t\t\t],\n\t\t\t};\n\n\t\t\tPropertyFactory._reregister(DefaultPrimitive);\n\n\t\t\tconst instance = PropertyFactory.create(\"SimpleTest:OptionalPrimitive-1.0.0\");\n\t\t\tconst prop = PropertyFactory.create(\"String\");\n\n\t\t\texpect(() => {\n\t\t\t\tinstance.insert(\"num\", prop);\n\t\t\t}).to.throw(MSG.MISMATCHING_PROPERTY_TYPEID);\n\t\t});\n\n\t\tit(\"throws error if attempting to remove a not optional property\", function () {\n\t\t\tconst DefaultPrimitive = {\n\t\t\t\ttypeid: \"SimpleTest:OptionalPrimitive-1.0.0\",\n\t\t\t\tproperties: [\n\t\t\t\t\t{ id: \"num\", typeid: \"Uint32\", value: 111 },\n\t\t\t\t\t{ id: \"bool\", typeid: \"Bool\", value: true, optional: true },\n\t\t\t\t\t{ id: \"string\", typeid: \"String\", value: \"basic\", optional: true },\n\t\t\t\t],\n\t\t\t};\n\n\t\t\tPropertyFactory._reregister(DefaultPrimitive);\n\n\t\t\tconst instance = PropertyFactory.create(\"SimpleTest:OptionalPrimitive-1.0.0\");\n\n\t\t\texpect(() => {\n\t\t\t\tinstance.remove(\"num\");\n\t\t\t}).to.throw(MSG.CANNOT_REMOVE_NONE_OPTIONAL_PROP + \"num\");\n\t\t});\n\t});\n});\n"]}
1
+ {"version":3,"file":"containerProperty.spec.js","sourceRoot":"","sources":["../../../src/test/properties/containerProperty.spec.js"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AAEH,MAAM,GAAG,GAAG,OAAO,CAAC,qCAAqC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;AAEzE,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC;AAEzD,QAAQ,CAAC,mBAAmB,EAAE;IAC7B,UAAU,CAAC,GAAG,EAAE;QACf,eAAe,CAAC,MAAM,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,EAAE;QACrB,EAAE,CAAC,gEAAgE,EAAE;YACpE,MAAM,gBAAgB,GAAG;gBACxB,MAAM,EAAE,oCAAoC;gBAC5C,UAAU,EAAE;oBACX,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;oBAC/B,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;oBAC9B,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;iBAClC;aACD,CAAC;YAEF,MAAM,SAAS,GAAG;gBACjB,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;gBAClB,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;gBACrB,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;aACtB,CAAC;YAEF,eAAe,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;YAC9C,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC;YAE9E,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACnE,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sFAAsF,EAAE;YAC1F,MAAM,gBAAgB,GAAG;gBACxB,MAAM,EAAE,oCAAoC;gBAC5C,UAAU,EAAE;oBACX,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAC3D,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAC3D,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;iBAClE;aACD,CAAC;YAEF,MAAM,SAAS,GAAG;gBACjB,MAAM,EAAE;oBACP,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE;oBACpB,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;oBACpB,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;iBAC3B;aACD,CAAC;YAEF,eAAe,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;YAC9C,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC;YAE9E,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iGAAiG,EAAE;YACrG,MAAM,gBAAgB,GAAG;gBACxB,MAAM,EAAE,oCAAoC;gBAC5C,UAAU,EAAE;oBACX,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAC/C,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAC9C,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;iBAClD;aACD,CAAC;YAEF,eAAe,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;YAC9C,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC;YAE9E,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACtD,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qBAAqB,EAAE;QAC/B,EAAE,CAAC,uDAAuD,EAAE;YAC3D,MAAM,gBAAgB,GAAG;gBACxB,MAAM,EAAE,oCAAoC;gBAC5C,UAAU,EAAE;oBACX,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAC/C,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAC9C,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;iBAClD;aACD,CAAC;YAEF,eAAe,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;YAE9C,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC;YAC9E,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;YAC5C,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;YAC7C,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE;YACpD,MAAM,gBAAgB,GAAG;gBACxB,MAAM,EAAE,oCAAoC;gBAC5C,UAAU,EAAE;oBACX,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAC3D,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAC3D,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;iBAClE;aACD,CAAC;YAEF,eAAe,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;YAE9C,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC;YAC9E,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACrD,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACvD,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iBAAiB,EAAE;YACrB,MAAM,gBAAgB,GAAG;gBACxB,MAAM,EAAE,oCAAoC;gBAC5C,UAAU,EAAE;oBACX,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAC/C,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAC9C,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;iBAClD;aACD,CAAC;YAEF,eAAe,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;YAE9C,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC;YAE9E,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC7C,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAElB,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAEzB,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAEpB,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC5B,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC9B,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAElC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACrD,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACvD,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gBAAgB,EAAE;YACpB,MAAM,gBAAgB,GAAG;gBACxB,MAAM,EAAE,oCAAoC;gBAC5C,UAAU,EAAE;oBACX,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAC3D,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAC3D,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;iBAClE;aACD,CAAC;YAEF,eAAe,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;YAE9C,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC;YAE9E,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACxB,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAE1B,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;YAC5C,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;YAC7C,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE;YACtD,MAAM,gBAAgB,GAAG;gBACxB,MAAM,EAAE,oCAAoC;gBAC5C,UAAU,EAAE;oBACX,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAC3D,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAC3D,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;iBAClE;aACD,CAAC;YAEF,eAAe,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;YAE9C,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC;YAC9E,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAE9C,MAAM,CAAC,GAAG,EAAE;gBACX,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,GAAG,OAAO,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8EAA8E,EAAE;YAClF,MAAM,gBAAgB,GAAG;gBACxB,MAAM,EAAE,oCAAoC;gBAC5C,UAAU,EAAE;oBACX,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAC/C,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAC9C,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;iBAClD;aACD,CAAC;YAEF,eAAe,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;YAE9C,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC;YAC9E,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAE9C,MAAM,CAAC,GAAG,EAAE;gBACX,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8DAA8D,EAAE;YAClE,MAAM,gBAAgB,GAAG;gBACxB,MAAM,EAAE,oCAAoC;gBAC5C,UAAU,EAAE;oBACX,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;oBAC3C,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAC3D,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;iBAClE;aACD,CAAC;YAEF,eAAe,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;YAE9C,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC;YAE9E,MAAM,CAAC,GAAG,EAAE;gBACX,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,GAAG,KAAK,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * @fileoverview In this file, we will test the functions related Container property object\n * this will also tests parts of Property Factory that creates Container property\n */\n\nconst MSG = require(\"@fluid-experimental/property-common\").constants.MSG;\n\nconst PropertyFactory = require(\"../..\").PropertyFactory;\n\ndescribe(\"ContainerProperty\", function () {\n\tbeforeEach(() => {\n\t\tPropertyFactory._clear();\n\t});\n\n\tdescribe(\"Changeset\", function () {\n\t\tit(\"should not add created properties to the changeset on creation\", function () {\n\t\t\tconst DefaultPrimitive = {\n\t\t\t\ttypeid: \"SimpleTest:OptionalPrimitive-1.0.0\",\n\t\t\t\tproperties: [\n\t\t\t\t\t{ id: \"num\", typeid: \"Uint32\" },\n\t\t\t\t\t{ id: \"bool\", typeid: \"Bool\" },\n\t\t\t\t\t{ id: \"string\", typeid: \"String\" },\n\t\t\t\t],\n\t\t\t};\n\n\t\t\tconst changeset = {\n\t\t\t\tUint32: { num: 0 },\n\t\t\t\tBool: { bool: false },\n\t\t\t\tString: { string: \"\" },\n\t\t\t};\n\n\t\t\tPropertyFactory._reregister(DefaultPrimitive);\n\t\t\tconst instance = PropertyFactory.create(\"SimpleTest:OptionalPrimitive-1.0.0\");\n\n\t\t\texpect(instance._serialize(false, false)).to.deep.equal(changeset);\n\t\t\texpect(instance._serialize(true, false)).to.be.empty;\n\t\t});\n\n\t\tit(\"should add optional properties that have default values to the changeset on creation\", function () {\n\t\t\tconst DefaultPrimitive = {\n\t\t\t\ttypeid: \"SimpleTest:OptionalPrimitive-1.0.0\",\n\t\t\t\tproperties: [\n\t\t\t\t\t{ id: \"num\", typeid: \"Uint32\", value: 111, optional: true },\n\t\t\t\t\t{ id: \"bool\", typeid: \"Bool\", value: true, optional: true },\n\t\t\t\t\t{ id: \"string\", typeid: \"String\", value: \"basic\", optional: true },\n\t\t\t\t],\n\t\t\t};\n\n\t\t\tconst changeset = {\n\t\t\t\tinsert: {\n\t\t\t\t\tUint32: { num: 111 },\n\t\t\t\t\tBool: { bool: true },\n\t\t\t\t\tString: { string: \"basic\" },\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tPropertyFactory._reregister(DefaultPrimitive);\n\t\t\tconst instance = PropertyFactory.create(\"SimpleTest:OptionalPrimitive-1.0.0\");\n\n\t\t\texpect(instance._serialize(true, false)).to.deep.equal(changeset);\n\t\t});\n\n\t\tit(\"should not add optional properties that do not have default values to the changeset on creation\", function () {\n\t\t\tconst DefaultPrimitive = {\n\t\t\t\ttypeid: \"SimpleTest:OptionalPrimitive-1.0.0\",\n\t\t\t\tproperties: [\n\t\t\t\t\t{ id: \"num\", typeid: \"Uint32\", optional: true },\n\t\t\t\t\t{ id: \"bool\", typeid: \"Bool\", optional: true },\n\t\t\t\t\t{ id: \"string\", typeid: \"String\", optional: true },\n\t\t\t\t],\n\t\t\t};\n\n\t\t\tPropertyFactory._reregister(DefaultPrimitive);\n\t\t\tconst instance = PropertyFactory.create(\"SimpleTest:OptionalPrimitive-1.0.0\");\n\n\t\t\texpect(instance._serialize(true, false)).to.be.empty;\n\t\t});\n\t});\n\n\tdescribe(\"Optional Properties\", function () {\n\t\tit(\"should not exist on creation if no value is specified\", function () {\n\t\t\tconst DefaultPrimitive = {\n\t\t\t\ttypeid: \"SimpleTest:OptionalPrimitive-1.0.0\",\n\t\t\t\tproperties: [\n\t\t\t\t\t{ id: \"num\", typeid: \"Uint32\", optional: true },\n\t\t\t\t\t{ id: \"bool\", typeid: \"Bool\", optional: true },\n\t\t\t\t\t{ id: \"string\", typeid: \"String\", optional: true },\n\t\t\t\t],\n\t\t\t};\n\n\t\t\tPropertyFactory._reregister(DefaultPrimitive);\n\n\t\t\tconst instance = PropertyFactory.create(\"SimpleTest:OptionalPrimitive-1.0.0\");\n\t\t\texpect(instance.get(\"num\")).to.be.undefined;\n\t\t\texpect(instance.get(\"bool\")).to.be.undefined;\n\t\t\texpect(instance.get(\"string\")).to.be.undefined;\n\t\t});\n\n\t\tit(\"should exist on creation if value is specified\", function () {\n\t\t\tconst DefaultPrimitive = {\n\t\t\t\ttypeid: \"SimpleTest:OptionalPrimitive-1.0.0\",\n\t\t\t\tproperties: [\n\t\t\t\t\t{ id: \"num\", typeid: \"Uint32\", value: 111, optional: true },\n\t\t\t\t\t{ id: \"bool\", typeid: \"Bool\", value: true, optional: true },\n\t\t\t\t\t{ id: \"string\", typeid: \"String\", value: \"basic\", optional: true },\n\t\t\t\t],\n\t\t\t};\n\n\t\t\tPropertyFactory._reregister(DefaultPrimitive);\n\n\t\t\tconst instance = PropertyFactory.create(\"SimpleTest:OptionalPrimitive-1.0.0\");\n\t\t\texpect(instance.get(\"num\").getValue()).to.equal(111);\n\t\t\texpect(instance.get(\"bool\").getValue()).to.equal(true);\n\t\t\texpect(instance.get(\"string\").getValue()).to.equal(\"basic\");\n\t\t});\n\n\t\tit(\"can be inserted\", function () {\n\t\t\tconst DefaultPrimitive = {\n\t\t\t\ttypeid: \"SimpleTest:OptionalPrimitive-1.0.0\",\n\t\t\t\tproperties: [\n\t\t\t\t\t{ id: \"num\", typeid: \"Uint32\", optional: true },\n\t\t\t\t\t{ id: \"bool\", typeid: \"Bool\", optional: true },\n\t\t\t\t\t{ id: \"string\", typeid: \"String\", optional: true },\n\t\t\t\t],\n\t\t\t};\n\n\t\t\tPropertyFactory._reregister(DefaultPrimitive);\n\n\t\t\tconst instance = PropertyFactory.create(\"SimpleTest:OptionalPrimitive-1.0.0\");\n\n\t\t\tconst num = PropertyFactory.create(\"Uint32\");\n\t\t\tnum.setValue(111);\n\n\t\t\tconst string = PropertyFactory.create(\"String\");\n\t\t\tstring.setValue(\"basic\");\n\n\t\t\tconst bool = PropertyFactory.create(\"Bool\");\n\t\t\tbool.setValue(true);\n\n\t\t\tinstance.insert(\"num\", num);\n\t\t\tinstance.insert(\"bool\", bool);\n\t\t\tinstance.insert(\"string\", string);\n\n\t\t\texpect(instance.get(\"num\").getValue()).to.equal(111);\n\t\t\texpect(instance.get(\"bool\").getValue()).to.equal(true);\n\t\t\texpect(instance.get(\"string\").getValue()).to.equal(\"basic\");\n\t\t});\n\n\t\tit(\"can be removed\", function () {\n\t\t\tconst DefaultPrimitive = {\n\t\t\t\ttypeid: \"SimpleTest:OptionalPrimitive-1.0.0\",\n\t\t\t\tproperties: [\n\t\t\t\t\t{ id: \"num\", typeid: \"Uint32\", value: 111, optional: true },\n\t\t\t\t\t{ id: \"bool\", typeid: \"Bool\", value: true, optional: true },\n\t\t\t\t\t{ id: \"string\", typeid: \"String\", value: \"basic\", optional: true },\n\t\t\t\t],\n\t\t\t};\n\n\t\t\tPropertyFactory._reregister(DefaultPrimitive);\n\n\t\t\tconst instance = PropertyFactory.create(\"SimpleTest:OptionalPrimitive-1.0.0\");\n\n\t\t\tinstance.remove(\"num\");\n\t\t\tinstance.remove(\"bool\");\n\t\t\tinstance.remove(\"string\");\n\n\t\t\texpect(instance.get(\"num\")).to.be.undefined;\n\t\t\texpect(instance.get(\"bool\")).to.be.undefined;\n\t\t\texpect(instance.get(\"string\")).to.be.undefined;\n\t\t});\n\n\t\tit(\"throws error if inserted property has unknown id\", function () {\n\t\t\tconst DefaultPrimitive = {\n\t\t\t\ttypeid: \"SimpleTest:OptionalPrimitive-1.0.0\",\n\t\t\t\tproperties: [\n\t\t\t\t\t{ id: \"num\", typeid: \"Uint32\", value: 111, optional: true },\n\t\t\t\t\t{ id: \"bool\", typeid: \"Bool\", value: true, optional: true },\n\t\t\t\t\t{ id: \"string\", typeid: \"String\", value: \"basic\", optional: true },\n\t\t\t\t],\n\t\t\t};\n\n\t\t\tPropertyFactory._reregister(DefaultPrimitive);\n\n\t\t\tconst instance = PropertyFactory.create(\"SimpleTest:OptionalPrimitive-1.0.0\");\n\t\t\tconst prop = PropertyFactory.create(\"String\");\n\n\t\t\texpect(() => {\n\t\t\t\tinstance.insert(\"badId\", prop);\n\t\t\t}).to.throw(MSG.CANNOT_INSERT_UNKNOWN_PROPERTY + \"badId\");\n\t\t});\n\n\t\tit(\"throws error if inserted property typeid does not match corresponding typeid\", function () {\n\t\t\tconst DefaultPrimitive = {\n\t\t\t\ttypeid: \"SimpleTest:OptionalPrimitive-1.0.0\",\n\t\t\t\tproperties: [\n\t\t\t\t\t{ id: \"num\", typeid: \"Uint32\", optional: true },\n\t\t\t\t\t{ id: \"bool\", typeid: \"Bool\", optional: true },\n\t\t\t\t\t{ id: \"string\", typeid: \"String\", optional: true },\n\t\t\t\t],\n\t\t\t};\n\n\t\t\tPropertyFactory._reregister(DefaultPrimitive);\n\n\t\t\tconst instance = PropertyFactory.create(\"SimpleTest:OptionalPrimitive-1.0.0\");\n\t\t\tconst prop = PropertyFactory.create(\"String\");\n\n\t\t\texpect(() => {\n\t\t\t\tinstance.insert(\"num\", prop);\n\t\t\t}).to.throw(MSG.MISMATCHING_PROPERTY_TYPEID);\n\t\t});\n\n\t\tit(\"throws error if attempting to remove a not optional property\", function () {\n\t\t\tconst DefaultPrimitive = {\n\t\t\t\ttypeid: \"SimpleTest:OptionalPrimitive-1.0.0\",\n\t\t\t\tproperties: [\n\t\t\t\t\t{ id: \"num\", typeid: \"Uint32\", value: 111 },\n\t\t\t\t\t{ id: \"bool\", typeid: \"Bool\", value: true, optional: true },\n\t\t\t\t\t{ id: \"string\", typeid: \"String\", value: \"basic\", optional: true },\n\t\t\t\t],\n\t\t\t};\n\n\t\t\tPropertyFactory._reregister(DefaultPrimitive);\n\n\t\t\tconst instance = PropertyFactory.create(\"SimpleTest:OptionalPrimitive-1.0.0\");\n\n\t\t\texpect(() => {\n\t\t\t\tinstance.remove(\"num\");\n\t\t\t}).to.throw(MSG.CANNOT_REMOVE_NON_OPTIONAL_PROP + \"num\");\n\t\t});\n\t});\n});\n"]}
@@ -559,8 +559,8 @@ describe("CustomArrayProperty", function () {
559
559
  // Modify entries in the array
560
560
  var rangeStart = generator.irandom(testArray.original.length);
561
561
  var rangeLength = generator.irandom(testArray.original.length - rangeStart);
562
- for (var j = rangeStart; j < rangeStart + rangeLength; j++) {
563
- testArray.original.get(j)._properties.stringProperty.value += "modified";
562
+ for (var k = rangeStart; k < rangeStart + rangeLength; k++) {
563
+ testArray.original.get(k)._properties.stringProperty.value += "modified";
564
564
  }
565
565
  modifiedEntries += rangeLength;
566
566
  }