@fluid-experimental/property-properties 0.58.1001 → 0.58.2000-58133
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/containerSerializer.d.ts.map +1 -1
- package/dist/containerSerializer.js +4 -10
- package/dist/containerSerializer.js.map +1 -1
- package/dist/enableValidations.d.ts.map +1 -1
- package/dist/enableValidations.js +1 -1
- package/dist/enableValidations.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/properties/abstractStaticCollectionProperty.d.ts.map +1 -1
- package/dist/properties/abstractStaticCollectionProperty.js +1 -28
- package/dist/properties/abstractStaticCollectionProperty.js.map +1 -1
- package/dist/properties/arrayProperty.d.ts.map +1 -1
- package/dist/properties/arrayProperty.js +26 -85
- package/dist/properties/arrayProperty.js.map +1 -1
- package/dist/properties/baseProperty.d.ts.map +1 -1
- package/dist/properties/baseProperty.js +9 -71
- package/dist/properties/baseProperty.js.map +1 -1
- package/dist/properties/boolProperty.d.ts.map +1 -1
- package/dist/properties/boolProperty.js +0 -1
- package/dist/properties/boolProperty.js.map +1 -1
- package/dist/properties/containerProperty.d.ts.map +1 -1
- package/dist/properties/containerProperty.js +4 -22
- package/dist/properties/containerProperty.js.map +1 -1
- package/dist/properties/enumArrayProperty.d.ts.map +1 -1
- package/dist/properties/enumArrayProperty.js +2 -14
- package/dist/properties/enumArrayProperty.js.map +1 -1
- package/dist/properties/enumProperty.d.ts.map +1 -1
- package/dist/properties/enumProperty.js +3 -10
- package/dist/properties/enumProperty.js.map +1 -1
- package/dist/properties/floatProperties.js +0 -2
- package/dist/properties/floatProperties.js.map +1 -1
- package/dist/properties/index.d.ts +7 -38
- package/dist/properties/index.d.ts.map +1 -1
- package/dist/properties/index.js +37 -68
- package/dist/properties/index.js.map +1 -1
- package/dist/properties/indexedCollectionBaseProperty.d.ts.map +1 -1
- package/dist/properties/indexedCollectionBaseProperty.js +6 -18
- package/dist/properties/indexedCollectionBaseProperty.js.map +1 -1
- package/dist/properties/intProperties.d.ts.map +1 -1
- package/dist/properties/intProperties.js +3 -20
- package/dist/properties/intProperties.js.map +1 -1
- package/dist/properties/lazyLoadedProperties.js.map +1 -1
- package/dist/properties/mapProperty.d.ts.map +1 -1
- package/dist/properties/mapProperty.js +4 -23
- package/dist/properties/mapProperty.js.map +1 -1
- package/dist/properties/namedNodeProperty.d.ts.map +1 -1
- package/dist/properties/namedNodeProperty.js.map +1 -1
- package/dist/properties/namedProperty.d.ts.map +1 -1
- package/dist/properties/namedProperty.js +0 -3
- package/dist/properties/namedProperty.js.map +1 -1
- package/dist/properties/nodeProperty.d.ts.map +1 -1
- package/dist/properties/nodeProperty.js +0 -3
- package/dist/properties/nodeProperty.js.map +1 -1
- package/dist/properties/primitiveTypeCasts.d.ts.map +1 -1
- package/dist/properties/primitiveTypeCasts.js +2 -2
- package/dist/properties/primitiveTypeCasts.js.map +1 -1
- package/dist/properties/referenceArrayProperty.d.ts.map +1 -1
- package/dist/properties/referenceArrayProperty.js +3 -16
- package/dist/properties/referenceArrayProperty.js.map +1 -1
- package/dist/properties/referenceMapProperty.d.ts.map +1 -1
- package/dist/properties/referenceMapProperty.js +3 -13
- package/dist/properties/referenceMapProperty.js.map +1 -1
- package/dist/properties/referenceProperty.d.ts.map +1 -1
- package/dist/properties/referenceProperty.js +4 -12
- package/dist/properties/referenceProperty.js.map +1 -1
- package/dist/properties/setProperty.d.ts.map +1 -1
- package/dist/properties/setProperty.js +3 -22
- package/dist/properties/setProperty.js.map +1 -1
- package/dist/properties/stringProperty.d.ts.map +1 -1
- package/dist/properties/stringProperty.js +12 -48
- package/dist/properties/stringProperty.js.map +1 -1
- package/dist/properties/uintProperties.js +0 -3
- package/dist/properties/uintProperties.js.map +1 -1
- package/dist/properties/valueArrayProperty.d.ts.map +1 -1
- package/dist/properties/valueArrayProperty.js +3 -45
- package/dist/properties/valueArrayProperty.js.map +1 -1
- package/dist/properties/valueMapProperty.d.ts.map +1 -1
- package/dist/properties/valueMapProperty.js +4 -29
- package/dist/properties/valueMapProperty.js.map +1 -1
- package/dist/properties/valueProperty.d.ts.map +1 -1
- package/dist/properties/valueProperty.js +2 -14
- package/dist/properties/valueProperty.js.map +1 -1
- package/dist/propertyFactory.d.ts.map +1 -1
- package/dist/propertyFactory.js +35 -72
- package/dist/propertyFactory.js.map +1 -1
- package/dist/propertyTemplate.d.ts.map +1 -1
- package/dist/propertyTemplate.js +0 -14
- package/dist/propertyTemplate.js.map +1 -1
- package/dist/propertyTemplateWrapper.d.ts.map +1 -1
- package/dist/propertyTemplateWrapper.js +4 -12
- package/dist/propertyTemplateWrapper.js.map +1 -1
- package/dist/propertyUtils.d.ts.map +1 -1
- package/dist/propertyUtils.js.map +1 -1
- package/dist/test/properties/arrayProperty.spec.js +82 -82
- package/dist/test/properties/arrayProperty.spec.js.map +1 -1
- package/dist/test/properties/baseProperty.spec.js +53 -53
- package/dist/test/properties/baseProperty.spec.js.map +1 -1
- package/dist/test/properties/containerProperty.spec.js +25 -25
- package/dist/test/properties/containerProperty.spec.js.map +1 -1
- package/dist/test/properties/customArrayProperty.spec.js +35 -35
- package/dist/test/properties/customArrayProperty.spec.js.map +1 -1
- package/dist/test/properties/enumArrayProperty.spec.js +6 -6
- package/dist/test/properties/enumArrayProperty.spec.js.map +1 -1
- package/dist/test/properties/enumProperty.spec.js +26 -26
- package/dist/test/properties/enumProperty.spec.js.map +1 -1
- package/dist/test/properties/float32.spec.js.map +1 -1
- package/dist/test/properties/int64ArrayProperty.spec.js +22 -22
- package/dist/test/properties/int64ArrayProperty.spec.js.map +1 -1
- package/dist/test/properties/int64MapProperty.spec.js +28 -28
- package/dist/test/properties/int64MapProperty.spec.js.map +1 -1
- package/dist/test/properties/int64Property.spec.js +11 -11
- package/dist/test/properties/int64Property.spec.js.map +1 -1
- package/dist/test/properties/isLeafNode.spec.js +25 -25
- package/dist/test/properties/isLeafNode.spec.js.map +1 -1
- package/dist/test/properties/mapProperty.spec.js +110 -110
- package/dist/test/properties/mapProperty.spec.js.map +1 -1
- package/dist/test/properties/namedNodeProperty.spec.js +5 -5
- package/dist/test/properties/namedNodeProperty.spec.js.map +1 -1
- package/dist/test/properties/nodeProperty.spec.js +160 -160
- package/dist/test/properties/nodeProperty.spec.js.map +1 -1
- package/dist/test/properties/referenceProperty.spec.js +21 -21
- package/dist/test/properties/referenceProperty.spec.js.map +1 -1
- package/dist/test/properties/relationshipProperty.spec.js +4 -4
- package/dist/test/properties/relationshipProperty.spec.js.map +1 -1
- package/dist/test/properties/setProperty.spec.js +32 -32
- package/dist/test/properties/setProperty.spec.js.map +1 -1
- package/dist/test/properties/stringProperty.spec.js +38 -38
- package/dist/test/properties/stringProperty.spec.js.map +1 -1
- package/dist/test/properties/uint64Property.spec.js +3 -3
- package/dist/test/properties/uint64Property.spec.js.map +1 -1
- package/dist/test/properties/valueMapProperty.spec.js +28 -28
- package/dist/test/properties/valueMapProperty.spec.js.map +1 -1
- package/dist/test/properties/valueProperty.spec.js +7 -7
- package/dist/test/properties/valueProperty.spec.js.map +1 -1
- package/dist/test/propertyFactory.spec.js +559 -560
- package/dist/test/propertyFactory.spec.js.map +1 -1
- package/dist/test/propertyTemplateWrapper.spec.js +38 -38
- package/dist/test/propertyTemplateWrapper.spec.js.map +1 -1
- package/dist/test/propertyUtils.spec.js +5 -5
- package/dist/test/propertyUtils.spec.js.map +1 -1
- package/dist/test/reversibleChangeset.spec.js +266 -266
- package/dist/test/reversibleChangeset.spec.js.map +1 -1
- package/dist/test/setup.js.map +1 -1
- package/dist/test/tsconfig.tsbuildinfo +145 -145
- package/dist/test/utils.spec.js +508 -517
- package/dist/test/utils.spec.js.map +1 -1
- package/dist/test/validation/badMissingSemverInTypeid.js +9 -9
- package/dist/test/validation/badMissingSemverInTypeid.js.map +1 -1
- package/dist/test/validation/badPrimitiveTypeid.js +5 -5
- package/dist/test/validation/badPrimitiveTypeid.js.map +1 -1
- package/dist/test/validation/goodColorId.js +42 -42
- package/dist/test/validation/goodColorId.js.map +1 -1
- package/dist/test/validation/goodColorPalette.js +2 -2
- package/dist/test/validation/goodColorPalette.js.map +1 -1
- package/dist/test/validation/goodPointId.js +9 -9
- package/dist/test/validation/goodPointId.js.map +1 -1
- package/dist/test/validation/reversibleChangeSetTestData.js +1 -1
- package/dist/test/validation/reversibleChangeSetTestData.js.map +1 -1
- package/lib/containerSerializer.js +4 -10
- package/lib/containerSerializer.js.map +1 -1
- package/lib/enableValidations.js +1 -1
- package/lib/enableValidations.js.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/properties/abstractStaticCollectionProperty.js +1 -28
- package/lib/properties/abstractStaticCollectionProperty.js.map +1 -1
- package/lib/properties/arrayProperty.js +26 -85
- package/lib/properties/arrayProperty.js.map +1 -1
- package/lib/properties/baseProperty.js +7 -69
- package/lib/properties/baseProperty.js.map +1 -1
- package/lib/properties/boolProperty.js +0 -1
- package/lib/properties/boolProperty.js.map +1 -1
- package/lib/properties/containerProperty.js +4 -22
- package/lib/properties/containerProperty.js.map +1 -1
- package/lib/properties/enumArrayProperty.js +2 -14
- package/lib/properties/enumArrayProperty.js.map +1 -1
- package/lib/properties/enumProperty.js +3 -10
- package/lib/properties/enumProperty.js.map +1 -1
- package/lib/properties/floatProperties.js +0 -2
- package/lib/properties/floatProperties.js.map +1 -1
- package/lib/properties/index.js +7 -38
- package/lib/properties/index.js.map +1 -1
- package/lib/properties/indexedCollectionBaseProperty.js +6 -18
- package/lib/properties/indexedCollectionBaseProperty.js.map +1 -1
- package/lib/properties/intProperties.js +3 -20
- package/lib/properties/intProperties.js.map +1 -1
- package/lib/properties/lazyLoadedProperties.js.map +1 -1
- package/lib/properties/mapProperty.js +4 -23
- package/lib/properties/mapProperty.js.map +1 -1
- package/lib/properties/namedNodeProperty.js.map +1 -1
- package/lib/properties/namedProperty.js +0 -3
- package/lib/properties/namedProperty.js.map +1 -1
- package/lib/properties/nodeProperty.js +0 -3
- package/lib/properties/nodeProperty.js.map +1 -1
- package/lib/properties/primitiveTypeCasts.js +2 -2
- package/lib/properties/primitiveTypeCasts.js.map +1 -1
- package/lib/properties/referenceArrayProperty.js +3 -16
- package/lib/properties/referenceArrayProperty.js.map +1 -1
- package/lib/properties/referenceMapProperty.js +3 -13
- package/lib/properties/referenceMapProperty.js.map +1 -1
- package/lib/properties/referenceProperty.js +4 -12
- package/lib/properties/referenceProperty.js.map +1 -1
- package/lib/properties/setProperty.js +3 -22
- package/lib/properties/setProperty.js.map +1 -1
- package/lib/properties/stringProperty.js +12 -48
- package/lib/properties/stringProperty.js.map +1 -1
- package/lib/properties/uintProperties.js +0 -3
- package/lib/properties/uintProperties.js.map +1 -1
- package/lib/properties/valueArrayProperty.js +3 -45
- package/lib/properties/valueArrayProperty.js.map +1 -1
- package/lib/properties/valueMapProperty.js +4 -29
- package/lib/properties/valueMapProperty.js.map +1 -1
- package/lib/properties/valueProperty.js +2 -14
- package/lib/properties/valueProperty.js.map +1 -1
- package/lib/propertyFactory.js +35 -72
- package/lib/propertyFactory.js.map +1 -1
- package/lib/propertyTemplate.js +0 -14
- package/lib/propertyTemplate.js.map +1 -1
- package/lib/propertyTemplateWrapper.js +4 -12
- package/lib/propertyTemplateWrapper.js.map +1 -1
- package/lib/propertyUtils.js.map +1 -1
- package/package.json +13 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"int64ArrayProperty.spec.js","sourceRoot":"","sources":["../../../src/test/properties/int64ArrayProperty.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/* eslint-disable no-unused-expressions*/\n/**\n * @fileoverview In this file, we will test the Int64ArrayProperty\n * object described in /src/properties/arrayProperty.js\n */\n\ndescribe('Int64ArrayProperty', function () {\n var PropertyFactory, BaseProperty, ChangeSet, MSG;\n var changeSetWithEntries, removalChangeSet;\n var myInt64Prop, Int64;\n\n before(function () {\n // Get all the objects we need in this test here.\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 MSG = require('@fluid-experimental/property-common').constants.MSG\n\n // Register a template with a set property for the tests\n var SimpleInt64TestPropertyTemplate = {\n typeid: 'autodesk.tests:SimpleInt64TestProperty-1.0.0',\n properties: [\n { id: 'int64Property', typeid: 'Int64', context: 'array' }\n ]\n };\n PropertyFactory._reregister(SimpleInt64TestPropertyTemplate);\n\n myInt64Prop = PropertyFactory.create('Int64', 'array');\n });\n\n // Inserts an Int64 value into the array\n var insertInt64Value = function (int64Prop) {\n int64Prop.insertRange(0, [new Int64(0, 1)]);\n };\n\n // Removes the first element from the array\n var removeArrayElement = function (int64Prop) {\n int64Prop.removeRange(0, 1);\n };\n\n // Modifies an array value\n var modifyInt64Value = function (int64Prop) {\n int64Prop.setRange(0, [new Int64(0, 2)]);\n };\n\n\n\n describe('Testing creation, assignment and serialization', function () {\n\n it('should be empty at the beginning', function () {\n expect(myInt64Prop.length).to.equal(0);\n expect(myInt64Prop.serialize({ 'dirtyOnly': true })).to.be.empty;\n expect(myInt64Prop.serialize({ 'dirtyOnly': false })).to.be.empty;\n });\n\n it('should be possible to insert into the 64 bit array', function () {\n // Text insertion\n myInt64Prop.insertRange(0, [new Int64(1, 2), '12345678987654321']);\n expect(myInt64Prop.get(0)).to.deep.equal(new Int64(1, 2));\n myInt64Prop.insertRange(2, [5]);\n expect(myInt64Prop.get(1)).to.deep.equal(new Int64(1653732529, 2874452));\n changeSetWithEntries = myInt64Prop.serialize({ 'dirtyOnly': true });\n expect(myInt64Prop.serialize({ 'dirtyOnly': false })).to.deep.equal(\n { insert: [[0, [[1, 2], [1653732529, 2874452], [5, 0]]]] });\n expect(myInt64Prop.serialize({ 'dirtyOnly': true })).to.deep.equal(\n { insert: [[0, [[1, 2], [1653732529, 2874452], [5, 0]]]] });\n });\n\n it('should be possible to set values in the 64 bit array', function () {\n myInt64Prop.setRange(0, [1, '123', new Int64(2, 2)]);\n expect(myInt64Prop.get(0)).to.deep.equal(new Int64(1, 0));\n myInt64Prop.setRange(2, [new Int64(4, 5)]);\n changeSetWithEntries = myInt64Prop.serialize({ 'dirtyOnly': true });\n expect(myInt64Prop.serialize({ 'dirtyOnly': false })).to.deep.equal(\n { insert: [[0, [[1, 0], [123, 0], [4, 5]]]] });\n expect(myInt64Prop.serialize({ 'dirtyOnly': true })).to.deep.equal(\n { insert: [[0, [[1, 0], [123, 0], [4, 5]]]] });\n });\n\n it('.setRange should throw an error when in_offset is not an integer', function () {\n expect(() => { myInt64Prop.setRange('test', [new Int64(2, 2)]); })\n .to.throw(MSG.NOT_NUMBER);\n });\n\n it('.setRange should throw an error when in_array is not an array', function () {\n expect(() => { myInt64Prop.setRange(0, new Int64(2, 2)); })\n .to.throw(MSG.IN_ARRAY_NOT_ARRAY + 'Int64ArrayProperty.setRange');\n });\n\n it('Should handle removals correctly', function () {\n myInt64Prop.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY);\n myInt64Prop.removeRange(0, 2);\n expect(myInt64Prop.get(0)).to.deep.equal(new Int64(4, 5));\n removalChangeSet = myInt64Prop.serialize({\n 'dirtyOnly': true,\n 'includeRootTypeid': false,\n 'dirtinessType': BaseProperty.MODIFIED_STATE_FLAGS.DIRTY\n });\n expect(removalChangeSet).to.have.all.keys(['remove']);\n expect(removalChangeSet.remove).to.have.length(1);\n expect(removalChangeSet.remove[0]).to.deep.equal([0, 2]);\n });\n\n it('Should support deserialization', function () {\n var deserializedNode = PropertyFactory.create('Int64', 'array');\n var deserializedChanges1 = deserializedNode.deserialize(changeSetWithEntries);\n expect(deserializedChanges1).to.deep.equal(changeSetWithEntries);\n\n var deserializedChanges3 = deserializedNode.deserialize({});\n expect(deserializedChanges3).to.deep.equal({ remove: [[0, 3]] });\n });\n\n it('inserting at a bad position should throw an exception', function () {\n expect(function () {\n myInt64Prop.insertRange(2242, new Int64(4, 5));\n }).to.throw();\n });\n\n it('Should support applying changeset', function () {\n var node = PropertyFactory.create('Int64', 'array');\n node._applyChangeset(changeSetWithEntries);\n expect(node.get(0)).to.deep.equal(new Int64(1));\n expect(node.serialize()).to.deep.equal(\n { insert: [[0, [[1, 0], [123, 0], [4, 5]]]] });\n });\n });\n\n describe('change set specification should be met', function () {\n\n it('Should handle push correctly', function () {\n var t = PropertyFactory.create('Int64', 'array');\n t.insertRange(0, [new Int64(1, 2), new Int64(3, 4)]);\n t.cleanDirty();\n t.push(new Int64(4, 5));\n expect(t.serialize({ 'dirtyOnly': true })).to.deep.equal(\n {\n 'insert': [[2, [[4, 5]]]]\n }\n );\n });\n\n it('Should handle modifies correctly', function () {\n var t = PropertyFactory.create('Int64', 'array');\n t.insertRange(0, [new Int64(1, 2), new Int64(3, 4)]);\n t.cleanDirty();\n t.set(1, new Int64(4, 5));\n expect(t.serialize({ 'dirtyOnly': true })).to.deep.equal(\n {\n 'modify': [[1, [[4, 5]]]]\n }\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_int64Property,\n io_initialChangeset, in_options, in_collection) {\n var squashedChangeset = new ChangeSet();\n io_initialChangeset.setIsNormalized(true);\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_int64Property);\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 }\n\n if (in_options.post) {\n var SC = squashedChangeset.getSerializedChangeSet();\n if (in_collection && SC.modify) {\n SC = SC.modify;\n }\n in_options.post(SC);\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\n var testProperty = PropertyFactory.create('autodesk.tests:SimpleInt64TestProperty-1.0.0');\n\n if (in_options.pre) {\n in_options.pre(testProperty._properties.int64Property);\n }\n\n var initialChangeset = new ChangeSet(testProperty.serialize({ 'dirtyOnly': false }));\n initialChangeset.setIsNormalized(true);\n\n innerTestChangeSetSquashing(testProperty,\n testProperty._properties.int64Property, initialChangeset, in_options);\n\n var initialChangeset = initialChangeset.getSerializedChangeSet();\n if (ChangeSet.isEmptyChangeSet(initialChangeset)) {\n // if one is empty the other should be empty, too\n expect(testProperty.serialize({ 'dirtyOnly': false })).to.be.empty;\n } else {\n // else they must be deep equal\n expect(initialChangeset['array<Int64>'].int64Property).to.deep.equal(\n testProperty.serialize({ 'dirtyOnly': false })['array<Int64>'].int64Property);\n }\n };\n\n it('should work for multiple independent inserts', function () {\n testChangeSetSquashing({ callbacks: [insertInt64Value, insertInt64Value, insertInt64Value] });\n });\n\n it('should work for inserts followed by removes', function () {\n testChangeSetSquashing({\n callbacks: [insertInt64Value, insertInt64Value, removeArrayElement, removeArrayElement],\n post: function (changeset) {\n expect(changeset).to.be.empty;\n }\n });\n });\n\n it('should work for mixed modifies and inserts', function () {\n testChangeSetSquashing({\n callbacks: [insertInt64Value, modifyInt64Value, insertInt64Value, modifyInt64Value]\n });\n });\n\n it('an insert, modify and a remove should give an empty changeset', function () {\n testChangeSetSquashing({\n callbacks: [insertInt64Value, modifyInt64Value, removeArrayElement],\n post: function (changeset) {\n expect(changeset).to.be.empty;\n }\n });\n });\n it('work for modifies after an already existing insert', function () {\n testChangeSetSquashing({\n pre: insertInt64Value,\n callbacks: [modifyInt64Value, modifyInt64Value]\n });\n });\n it('of modify and remove after an already existing insert should work', function () {\n testChangeSetSquashing({\n pre: insertInt64Value,\n callbacks: [modifyInt64Value, removeArrayElement],\n post: function (changeset) {\n expect(changeset['array<Int64>'].int64Property).to.have.all.keys('remove');\n }\n });\n });\n\n });\n\n\n describe('Rebasing', function () {\n\n var createPropertyForRebaseTestByTemplate = function () {\n return PropertyFactory.create('autodesk.tests:SimpleInt64TestProperty-1.0.0');\n };\n\n var getint64PropertyFromNode = function (in_testProperty) {\n return in_testProperty._properties.int64Property;\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.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 (ChangeSet.isEmptyChangeSet(combinedSerialized)) {\n // if one is empty the other should be empty, too\n expect(finalChangeSet).to.be.empty;\n } else {\n // else they must be deep equal\n expect(combinedSerialized['array<Int64>'].int64Property).to.deep.equal(\n finalChangeSet['array<Int64>'].int64Property);\n }\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, getint64PropertyFromNode, in_options);\n };\n\n it('with a NOP should be possible', function () {\n testRebasing({\n op2: insertInt64Value,\n compareToSequential: true\n });\n });\n\n it('with independent inserts should be possible', function () {\n testRebasing({\n op1: insertInt64Value,\n op2: insertInt64Value,\n compareToSequential: true\n });\n });\n\n it('with independent removes should be possible', function () {\n testRebasing({\n prepare: function (root) {\n insertInt64Value(root);\n insertInt64Value(root);\n },\n op1: function (root) {\n root.removeRange(1, 1);\n },\n op2: function (root) {\n root.removeRange(0, 1);\n },\n compareToSequential: true\n });\n });\n\n it('with a modify and a remove should possible', function () {\n testRebasing({\n prepare: insertInt64Value,\n op1: modifyInt64Value,\n op2: removeArrayElement,\n compareToSequential: true\n });\n });\n\n it('with a remove and a modify should possible', function () {\n\n testRebasing({\n prepare: insertInt64Value,\n op1: removeArrayElement,\n op2: modifyInt64Value,\n compareToSequential: false,\n checkResult: function (conflicts, changeSet) {\n expect(conflicts).to.have.length(1);\n expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.ENTRY_MODIFIED_AFTER_REMOVE);\n expect(conflicts[0].path).to.be.equal('int64Property');\n }\n });\n });\n\n it('with two compatible removes should be possible', function () {\n testRebasing({\n prepare: insertInt64Value,\n op1: removeArrayElement,\n op2: removeArrayElement,\n compareToSequential: false,\n checkResult: function (conflicts, changeSet) {\n expect(ChangeSet.isEmptyChangeSet(changeSet)).to.be.ok;\n }\n });\n });\n\n it('with two independent modifies should be possible', function () {\n testRebasing({\n prepare: function (root) {\n root.insertRange(0, [new Int64(9, 8), new Int64(11, 21)]);\n },\n op1: modifyInt64Value,\n op2: function (root) {\n root.setRange(1, [new Int64(5, 6)]);\n },\n compareToSequential: true,\n checkResult: function (conflicts, changeSet) {\n expect(conflicts).to.be.empty;\n }\n });\n });\n\n it('with two conflicting modifies should be possible and report a conflict', function () {\n testRebasing({\n prepare: insertInt64Value,\n op1: function (int64Prop) {\n int64Prop.setRange(0, [new Int64(0, 64)]);\n },\n op2: modifyInt64Value,\n compareToSequential: true,\n checkResult: function (conflicts, changeSet) {\n expect(conflicts).to.have.length(1);\n expect(changeSet['array<Int64>'].int64Property.modify[0][1]).to.deep.equal([[0, 2]]);\n expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);\n expect(conflicts[0].path).to.be.equal('int64Property');\n }\n });\n });\n\n it('with modify followed by remove+insert should work', function () {\n testRebasing({\n prepare: insertInt64Value,\n op1: modifyInt64Value,\n op2: function (root) {\n removeArrayElement(root);\n insertInt64Value(root);\n },\n compareToSequential: true,\n checkResult: function (conflicts, changeSet) {\n expect(conflicts).to.have.length(1);\n expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.REMOVE_AFTER_MODIFY);\n expect(conflicts[0].path).to.be.equal('int64Property');\n expect(changeSet['array<Int64>'].int64Property).to.have.all.keys('remove', 'insert');\n }\n });\n });\n\n it('with remove + insert followed by modify should report conflict', function () {\n testRebasing({\n prepare: insertInt64Value,\n op1: function (root) {\n removeArrayElement(root);\n insertInt64Value(root);\n },\n op2: modifyInt64Value,\n compareToSequential: false,\n checkResult: function (conflicts, changeSet) {\n expect(conflicts).to.have.length(1);\n expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.ENTRY_MODIFIED_AFTER_REMOVE);\n expect(conflicts[0].path).to.be.equal('int64Property');\n }\n });\n });\n\n it('with conflicting inserts should report conflict', function () {\n testRebasing({\n prepare: insertInt64Value,\n op1: insertInt64Value,\n op2: insertInt64Value,\n compareToSequential: false,\n checkResult: function (conflicts, changeSet) {\n expect(conflicts).to.have.length(1);\n expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.INSERTED_ENTRY_WITH_SAME_KEY);\n expect(conflicts[0].path).to.be.equal('int64Property');\n }\n });\n });\n\n });\n\n});\n"]}
|
|
1
|
+
{"version":3,"file":"int64ArrayProperty.spec.js","sourceRoot":"","sources":["../../../src/test/properties/int64ArrayProperty.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/* eslint-disable no-unused-expressions */\n/**\n * @fileoverview In this file, we will test the Int64ArrayProperty\n * object described in /src/properties/arrayProperty.js\n */\n\ndescribe('Int64ArrayProperty', function() {\n var PropertyFactory, BaseProperty, ChangeSet, MSG;\n var changeSetWithEntries, removalChangeSet;\n var myInt64Prop, Int64;\n\n before(function() {\n // Get all the objects we need in this test here.\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 MSG = require('@fluid-experimental/property-common').constants.MSG;\n\n // Register a template with a set property for the tests\n var SimpleInt64TestPropertyTemplate = {\n typeid: 'autodesk.tests:SimpleInt64TestProperty-1.0.0',\n properties: [\n { id: 'int64Property', typeid: 'Int64', context: 'array' },\n ],\n };\n PropertyFactory._reregister(SimpleInt64TestPropertyTemplate);\n\n myInt64Prop = PropertyFactory.create('Int64', 'array');\n });\n\n // Inserts an Int64 value into the array\n var insertInt64Value = function(int64Prop) {\n int64Prop.insertRange(0, [new Int64(0, 1)]);\n };\n\n // Removes the first element from the array\n var removeArrayElement = function(int64Prop) {\n int64Prop.removeRange(0, 1);\n };\n\n // Modifies an array value\n var modifyInt64Value = function(int64Prop) {\n int64Prop.setRange(0, [new Int64(0, 2)]);\n };\n\n describe('Testing creation, assignment and serialization', function() {\n it('should be empty at the beginning', function() {\n expect(myInt64Prop.length).to.equal(0);\n expect(myInt64Prop.serialize({ 'dirtyOnly': true })).to.be.empty;\n expect(myInt64Prop.serialize({ 'dirtyOnly': false })).to.be.empty;\n });\n\n it('should be possible to insert into the 64 bit array', function() {\n // Text insertion\n myInt64Prop.insertRange(0, [new Int64(1, 2), '12345678987654321']);\n expect(myInt64Prop.get(0)).to.deep.equal(new Int64(1, 2));\n myInt64Prop.insertRange(2, [5]);\n expect(myInt64Prop.get(1)).to.deep.equal(new Int64(1653732529, 2874452));\n changeSetWithEntries = myInt64Prop.serialize({ 'dirtyOnly': true });\n expect(myInt64Prop.serialize({ 'dirtyOnly': false })).to.deep.equal(\n { insert: [[0, [[1, 2], [1653732529, 2874452], [5, 0]]]] });\n expect(myInt64Prop.serialize({ 'dirtyOnly': true })).to.deep.equal(\n { insert: [[0, [[1, 2], [1653732529, 2874452], [5, 0]]]] });\n });\n\n it('should be possible to set values in the 64 bit array', function() {\n myInt64Prop.setRange(0, [1, '123', new Int64(2, 2)]);\n expect(myInt64Prop.get(0)).to.deep.equal(new Int64(1, 0));\n myInt64Prop.setRange(2, [new Int64(4, 5)]);\n changeSetWithEntries = myInt64Prop.serialize({ 'dirtyOnly': true });\n expect(myInt64Prop.serialize({ 'dirtyOnly': false })).to.deep.equal(\n { insert: [[0, [[1, 0], [123, 0], [4, 5]]]] });\n expect(myInt64Prop.serialize({ 'dirtyOnly': true })).to.deep.equal(\n { insert: [[0, [[1, 0], [123, 0], [4, 5]]]] });\n });\n\n it('.setRange should throw an error when in_offset is not an integer', function() {\n expect(() => { myInt64Prop.setRange('test', [new Int64(2, 2)]); })\n .to.throw(MSG.NOT_NUMBER);\n });\n\n it('.setRange should throw an error when in_array is not an array', function() {\n expect(() => { myInt64Prop.setRange(0, new Int64(2, 2)); })\n .to.throw(MSG.IN_ARRAY_NOT_ARRAY + 'Int64ArrayProperty.setRange');\n });\n\n it('Should handle removals correctly', function() {\n myInt64Prop.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY);\n myInt64Prop.removeRange(0, 2);\n expect(myInt64Prop.get(0)).to.deep.equal(new Int64(4, 5));\n removalChangeSet = myInt64Prop.serialize({\n 'dirtyOnly': true,\n 'includeRootTypeid': false,\n 'dirtinessType': BaseProperty.MODIFIED_STATE_FLAGS.DIRTY,\n });\n expect(removalChangeSet).to.have.all.keys(['remove']);\n expect(removalChangeSet.remove).to.have.length(1);\n expect(removalChangeSet.remove[0]).to.deep.equal([0, 2]);\n });\n\n it('Should support deserialization', function() {\n var deserializedNode = PropertyFactory.create('Int64', 'array');\n var deserializedChanges1 = deserializedNode.deserialize(changeSetWithEntries);\n expect(deserializedChanges1).to.deep.equal(changeSetWithEntries);\n\n var deserializedChanges3 = deserializedNode.deserialize({});\n expect(deserializedChanges3).to.deep.equal({ remove: [[0, 3]] });\n });\n\n it('inserting at a bad position should throw an exception', function() {\n expect(function() {\n myInt64Prop.insertRange(2242, new Int64(4, 5));\n }).to.throw();\n });\n\n it('Should support applying changeset', function() {\n var node = PropertyFactory.create('Int64', 'array');\n node._applyChangeset(changeSetWithEntries);\n expect(node.get(0)).to.deep.equal(new Int64(1));\n expect(node.serialize()).to.deep.equal(\n { insert: [[0, [[1, 0], [123, 0], [4, 5]]]] });\n });\n });\n\n describe('change set specification should be met', function() {\n it('Should handle push correctly', function() {\n var t = PropertyFactory.create('Int64', 'array');\n t.insertRange(0, [new Int64(1, 2), new Int64(3, 4)]);\n t.cleanDirty();\n t.push(new Int64(4, 5));\n expect(t.serialize({ 'dirtyOnly': true })).to.deep.equal(\n {\n 'insert': [[2, [[4, 5]]]],\n },\n );\n });\n\n it('Should handle modifies correctly', function() {\n var t = PropertyFactory.create('Int64', 'array');\n t.insertRange(0, [new Int64(1, 2), new Int64(3, 4)]);\n t.cleanDirty();\n t.set(1, new Int64(4, 5));\n expect(t.serialize({ 'dirtyOnly': true })).to.deep.equal(\n {\n 'modify': [[1, [[4, 5]]]],\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_int64Property,\n io_initialChangeset, in_options, in_collection) {\n var squashedChangeset = new ChangeSet();\n io_initialChangeset.setIsNormalized(true);\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_int64Property);\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 }\n\n if (in_options.post) {\n var SC = squashedChangeset.getSerializedChangeSet();\n if (in_collection && SC.modify) {\n SC = SC.modify;\n }\n in_options.post(SC);\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:SimpleInt64TestProperty-1.0.0');\n\n if (in_options.pre) {\n in_options.pre(testProperty._properties.int64Property);\n }\n\n var initialChangeset = new ChangeSet(testProperty.serialize({ 'dirtyOnly': false }));\n initialChangeset.setIsNormalized(true);\n\n innerTestChangeSetSquashing(testProperty,\n testProperty._properties.int64Property, initialChangeset, in_options);\n\n var initialChangeset = initialChangeset.getSerializedChangeSet();\n if (ChangeSet.isEmptyChangeSet(initialChangeset)) {\n // if one is empty the other should be empty, too\n expect(testProperty.serialize({ 'dirtyOnly': false })).to.be.empty;\n } else {\n // else they must be deep equal\n expect(initialChangeset['array<Int64>'].int64Property).to.deep.equal(\n testProperty.serialize({ 'dirtyOnly': false })['array<Int64>'].int64Property);\n }\n };\n\n it('should work for multiple independent inserts', function() {\n testChangeSetSquashing({ callbacks: [insertInt64Value, insertInt64Value, insertInt64Value] });\n });\n\n it('should work for inserts followed by removes', function() {\n testChangeSetSquashing({\n callbacks: [insertInt64Value, insertInt64Value, removeArrayElement, removeArrayElement],\n post: function(changeset) {\n expect(changeset).to.be.empty;\n },\n });\n });\n\n it('should work for mixed modifies and inserts', function() {\n testChangeSetSquashing({\n callbacks: [insertInt64Value, modifyInt64Value, insertInt64Value, modifyInt64Value],\n });\n });\n\n it('an insert, modify and a remove should give an empty changeset', function() {\n testChangeSetSquashing({\n callbacks: [insertInt64Value, modifyInt64Value, removeArrayElement],\n post: function(changeset) {\n expect(changeset).to.be.empty;\n },\n });\n });\n it('work for modifies after an already existing insert', function() {\n testChangeSetSquashing({\n pre: insertInt64Value,\n callbacks: [modifyInt64Value, modifyInt64Value],\n });\n });\n it('of modify and remove after an already existing insert should work', function() {\n testChangeSetSquashing({\n pre: insertInt64Value,\n callbacks: [modifyInt64Value, removeArrayElement],\n post: function(changeset) {\n expect(changeset['array<Int64>'].int64Property).to.have.all.keys('remove');\n },\n });\n });\n });\n\n describe('Rebasing', function() {\n var createPropertyForRebaseTestByTemplate = function() {\n return PropertyFactory.create('autodesk.tests:SimpleInt64TestProperty-1.0.0');\n };\n\n var getint64PropertyFromNode = function(in_testProperty) {\n return in_testProperty._properties.int64Property;\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.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 (ChangeSet.isEmptyChangeSet(combinedSerialized)) {\n // if one is empty the other should be empty, too\n expect(finalChangeSet).to.be.empty;\n } else {\n // else they must be deep equal\n expect(combinedSerialized['array<Int64>'].int64Property).to.deep.equal(\n finalChangeSet['array<Int64>'].int64Property);\n }\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, getint64PropertyFromNode, in_options);\n };\n\n it('with a NOP should be possible', function() {\n testRebasing({\n op2: insertInt64Value,\n compareToSequential: true,\n });\n });\n\n it('with independent inserts should be possible', function() {\n testRebasing({\n op1: insertInt64Value,\n op2: insertInt64Value,\n compareToSequential: true,\n });\n });\n\n it('with independent removes should be possible', function() {\n testRebasing({\n prepare: function(root) {\n insertInt64Value(root);\n insertInt64Value(root);\n },\n op1: function(root) {\n root.removeRange(1, 1);\n },\n op2: function(root) {\n root.removeRange(0, 1);\n },\n compareToSequential: true,\n });\n });\n\n it('with a modify and a remove should possible', function() {\n testRebasing({\n prepare: insertInt64Value,\n op1: modifyInt64Value,\n op2: removeArrayElement,\n compareToSequential: true,\n });\n });\n\n it('with a remove and a modify should possible', function() {\n testRebasing({\n prepare: insertInt64Value,\n op1: removeArrayElement,\n op2: modifyInt64Value,\n compareToSequential: false,\n checkResult: function(conflicts, changeSet) {\n expect(conflicts).to.have.length(1);\n expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.ENTRY_MODIFIED_AFTER_REMOVE);\n expect(conflicts[0].path).to.be.equal('int64Property');\n },\n });\n });\n\n it('with two compatible removes should be possible', function() {\n testRebasing({\n prepare: insertInt64Value,\n op1: removeArrayElement,\n op2: removeArrayElement,\n compareToSequential: false,\n checkResult: function(conflicts, changeSet) {\n expect(ChangeSet.isEmptyChangeSet(changeSet)).to.be.ok;\n },\n });\n });\n\n it('with two independent modifies should be possible', function() {\n testRebasing({\n prepare: function(root) {\n root.insertRange(0, [new Int64(9, 8), new Int64(11, 21)]);\n },\n op1: modifyInt64Value,\n op2: function(root) {\n root.setRange(1, [new Int64(5, 6)]);\n },\n compareToSequential: true,\n checkResult: function(conflicts, changeSet) {\n expect(conflicts).to.be.empty;\n },\n });\n });\n\n it('with two conflicting modifies should be possible and report a conflict', function() {\n testRebasing({\n prepare: insertInt64Value,\n op1: function(int64Prop) {\n int64Prop.setRange(0, [new Int64(0, 64)]);\n },\n op2: modifyInt64Value,\n compareToSequential: true,\n checkResult: function(conflicts, changeSet) {\n expect(conflicts).to.have.length(1);\n expect(changeSet['array<Int64>'].int64Property.modify[0][1]).to.deep.equal([[0, 2]]);\n expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);\n expect(conflicts[0].path).to.be.equal('int64Property');\n },\n });\n });\n\n it('with modify followed by remove+insert should work', function() {\n testRebasing({\n prepare: insertInt64Value,\n op1: modifyInt64Value,\n op2: function(root) {\n removeArrayElement(root);\n insertInt64Value(root);\n },\n compareToSequential: true,\n checkResult: function(conflicts, changeSet) {\n expect(conflicts).to.have.length(1);\n expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.REMOVE_AFTER_MODIFY);\n expect(conflicts[0].path).to.be.equal('int64Property');\n expect(changeSet['array<Int64>'].int64Property).to.have.all.keys('remove', 'insert');\n },\n });\n });\n\n it('with remove + insert followed by modify should report conflict', function() {\n testRebasing({\n prepare: insertInt64Value,\n op1: function(root) {\n removeArrayElement(root);\n insertInt64Value(root);\n },\n op2: modifyInt64Value,\n compareToSequential: false,\n checkResult: function(conflicts, changeSet) {\n expect(conflicts).to.have.length(1);\n expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.ENTRY_MODIFIED_AFTER_REMOVE);\n expect(conflicts[0].path).to.be.equal('int64Property');\n },\n });\n });\n\n it('with conflicting inserts should report conflict', function() {\n testRebasing({\n prepare: insertInt64Value,\n op1: insertInt64Value,\n op2: insertInt64Value,\n compareToSequential: false,\n checkResult: function(conflicts, changeSet) {\n expect(conflicts).to.have.length(1);\n expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.INSERTED_ENTRY_WITH_SAME_KEY);\n expect(conflicts[0].path).to.be.equal('int64Property');\n },\n });\n });\n });\n});\n"]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
/* globals describe */
|
|
6
|
-
/* eslint-disable no-unused-expressions*/
|
|
6
|
+
/* eslint-disable no-unused-expressions */
|
|
7
7
|
/**
|
|
8
8
|
* @fileoverview In this file, we will test the int64 map property
|
|
9
9
|
* object described in /src/properties/valueMapProperty.js
|
|
@@ -21,8 +21,8 @@ describe('Int64MapProperty', function () {
|
|
|
21
21
|
typeid: 'autodesk.tests:Int64MapTestPropertyID-1.0.0',
|
|
22
22
|
inherits: ['NamedProperty'],
|
|
23
23
|
properties: [
|
|
24
|
-
{ id: 'Int64Map', typeid: 'Int64', context: 'map' }
|
|
25
|
-
]
|
|
24
|
+
{ id: 'Int64Map', typeid: 'Int64', context: 'map' },
|
|
25
|
+
],
|
|
26
26
|
};
|
|
27
27
|
PropertyFactory._reregister(TestPropertyTemplate);
|
|
28
28
|
myNode = PropertyFactory.create('autodesk.tests:Int64MapTestPropertyID-1.0.0');
|
|
@@ -79,7 +79,7 @@ describe('Int64MapProperty', function () {
|
|
|
79
79
|
expect(Int64Map.get('value5')).to.deep.equal(new Int64(123, 0));
|
|
80
80
|
expect(Int64Map.getEntriesReadOnly()).to.deep.equal({
|
|
81
81
|
'value1': new Int64(1, 1), 'value2': new Int64(1, 2), 'value3': new Int64(1, 3),
|
|
82
|
-
'value4': new Int64(123, 0), 'value5': new Int64(123, 0)
|
|
82
|
+
'value4': new Int64(123, 0), 'value5': new Int64(123, 0),
|
|
83
83
|
});
|
|
84
84
|
expect(Int64Map.has('value1')).to.be.ok;
|
|
85
85
|
expect(Int64Map.has('value2')).to.be.ok;
|
|
@@ -87,7 +87,7 @@ describe('Int64MapProperty', function () {
|
|
|
87
87
|
expect(Int64Map.has('value4')).to.be.ok;
|
|
88
88
|
expect(Int64Map.has('value5')).to.be.ok;
|
|
89
89
|
expect(Int64Map.serialize({ 'dirtyOnly': false })).to.deep.equal({
|
|
90
|
-
insert: { 'value1': [1, 1], 'value2': [1, 2], 'value3': [1, 3], 'value4': [123, 0], 'value5': [123, 0] }
|
|
90
|
+
insert: { 'value1': [1, 1], 'value2': [1, 2], 'value3': [1, 3], 'value4': [123, 0], 'value5': [123, 0] },
|
|
91
91
|
});
|
|
92
92
|
});
|
|
93
93
|
it('should be possible to remove entries', function () {
|
|
@@ -110,12 +110,12 @@ describe('Int64MapProperty', function () {
|
|
|
110
110
|
Int64Map.remove('value1');
|
|
111
111
|
Int64Map.insert('value1', new Int64(1, 2));
|
|
112
112
|
expect(Int64Map.serialize({ 'dirtyOnly': true })).to.deep.equal({
|
|
113
|
-
modify: { 'value1': [1, 2] }
|
|
113
|
+
modify: { 'value1': [1, 2] },
|
|
114
114
|
});
|
|
115
115
|
// This should also work for a set operation
|
|
116
116
|
Int64Map.set('value1', new Int64(1, 3));
|
|
117
117
|
expect(Int64Map.serialize({ 'dirtyOnly': true })).to.deep.equal({
|
|
118
|
-
modify: { 'value1': [1, 3] }
|
|
118
|
+
modify: { 'value1': [1, 3] },
|
|
119
119
|
});
|
|
120
120
|
// But setting the same value should give an empty ChangeSet
|
|
121
121
|
Int64Map.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |
|
|
@@ -131,16 +131,16 @@ describe('Int64MapProperty', function () {
|
|
|
131
131
|
expect(Int64Map.serialize({
|
|
132
132
|
'dirtyOnly': true,
|
|
133
133
|
'includeRootTypeid': false,
|
|
134
|
-
'dirtinessType': BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE
|
|
134
|
+
'dirtinessType': BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,
|
|
135
135
|
})).to.deep.equal({
|
|
136
|
-
modify: { 'value1': [1, 2] }
|
|
136
|
+
modify: { 'value1': [1, 2] },
|
|
137
137
|
});
|
|
138
138
|
expect(Int64Map.serialize({
|
|
139
139
|
'dirtyOnly': true,
|
|
140
140
|
'includeRootTypeid': false,
|
|
141
|
-
'dirtinessType': BaseProperty.MODIFIED_STATE_FLAGS.DIRTY
|
|
141
|
+
'dirtinessType': BaseProperty.MODIFIED_STATE_FLAGS.DIRTY,
|
|
142
142
|
})).to.deep.equal({
|
|
143
|
-
insert: { 'value1': [1, 2] }
|
|
143
|
+
insert: { 'value1': [1, 2] },
|
|
144
144
|
});
|
|
145
145
|
});
|
|
146
146
|
it('deserialize should work', function () {
|
|
@@ -240,12 +240,12 @@ describe('Int64MapProperty', function () {
|
|
|
240
240
|
callbacks: [insertNodeInRoot, insertNodeInRoot, removeFirstNodeInRoot, removeFirstNodeInRoot],
|
|
241
241
|
post: function (changeset) {
|
|
242
242
|
expect(changeset).to.be.empty;
|
|
243
|
-
}
|
|
243
|
+
},
|
|
244
244
|
});
|
|
245
245
|
});
|
|
246
246
|
it('of inserts and modifies should work', function () {
|
|
247
247
|
testChangeSetSquashing({
|
|
248
|
-
callbacks: [insertNodeInRoot, insertNodeInRoot, insertNodeInRoot, modifyEntry, modifyEntry]
|
|
248
|
+
callbacks: [insertNodeInRoot, insertNodeInRoot, insertNodeInRoot, modifyEntry, modifyEntry],
|
|
249
249
|
});
|
|
250
250
|
});
|
|
251
251
|
it('an insert, modify and a remove should give an empty changeset', function () {
|
|
@@ -253,13 +253,13 @@ describe('Int64MapProperty', function () {
|
|
|
253
253
|
callbacks: [insertNodeInRoot, modifyEntry, modifyEntry, removeFirstNodeInRoot],
|
|
254
254
|
post: function (changeset) {
|
|
255
255
|
expect(changeset).to.be.empty;
|
|
256
|
-
}
|
|
256
|
+
},
|
|
257
257
|
});
|
|
258
258
|
});
|
|
259
259
|
it('should work for modifies after an already existing insert', function () {
|
|
260
260
|
testChangeSetSquashing({
|
|
261
261
|
pre: insertNodeInRoot,
|
|
262
|
-
callbacks: [modifyEntry, modifyEntry]
|
|
262
|
+
callbacks: [modifyEntry, modifyEntry],
|
|
263
263
|
});
|
|
264
264
|
});
|
|
265
265
|
it('of modify and remove after an already existing insert should work', function () {
|
|
@@ -268,7 +268,7 @@ describe('Int64MapProperty', function () {
|
|
|
268
268
|
callbacks: [modifyEntry, removeFirstNodeInRoot],
|
|
269
269
|
post: function (changeset) {
|
|
270
270
|
expect(changeset['map<Int64>'].Int64Map).to.have.all.keys('remove');
|
|
271
|
-
}
|
|
271
|
+
},
|
|
272
272
|
});
|
|
273
273
|
});
|
|
274
274
|
it('of remove and insert should result in modify', function () {
|
|
@@ -281,11 +281,11 @@ describe('Int64MapProperty', function () {
|
|
|
281
281
|
removeFirstNodeInRoot,
|
|
282
282
|
function (root) {
|
|
283
283
|
root._properties.Int64Map.insert('node1', new Int64(1, 2));
|
|
284
|
-
}
|
|
284
|
+
},
|
|
285
285
|
],
|
|
286
286
|
post: function (changeset) {
|
|
287
287
|
expect(changeset['map<Int64>'].Int64Map).to.have.all.keys('modify');
|
|
288
|
-
}
|
|
288
|
+
},
|
|
289
289
|
});
|
|
290
290
|
});
|
|
291
291
|
});
|
|
@@ -343,14 +343,14 @@ describe('Int64MapProperty', function () {
|
|
|
343
343
|
it('with a NOP should be possible', function () {
|
|
344
344
|
testRebasing({
|
|
345
345
|
op2: insertEntryInRootWithUnqiueKey(),
|
|
346
|
-
compareToSequential: true
|
|
346
|
+
compareToSequential: true,
|
|
347
347
|
});
|
|
348
348
|
});
|
|
349
349
|
it('with independent inserts should be possible', function () {
|
|
350
350
|
testRebasing({
|
|
351
351
|
op1: insertEntryInRootWithUnqiueKey(),
|
|
352
352
|
op2: insertEntryInRootWithUnqiueKey(),
|
|
353
|
-
compareToSequential: true
|
|
353
|
+
compareToSequential: true,
|
|
354
354
|
});
|
|
355
355
|
});
|
|
356
356
|
it('with independent removes should be possible', function () {
|
|
@@ -365,7 +365,7 @@ describe('Int64MapProperty', function () {
|
|
|
365
365
|
op2: function (root) {
|
|
366
366
|
root._properties.Int64Map.remove('entry2');
|
|
367
367
|
},
|
|
368
|
-
compareToSequential: true
|
|
368
|
+
compareToSequential: true,
|
|
369
369
|
});
|
|
370
370
|
});
|
|
371
371
|
it('with a modify and a remove should possible', function () {
|
|
@@ -375,7 +375,7 @@ describe('Int64MapProperty', function () {
|
|
|
375
375
|
},
|
|
376
376
|
op1: modifyEntry,
|
|
377
377
|
op2: removeFirstNodeInRoot,
|
|
378
|
-
compareToSequential: true
|
|
378
|
+
compareToSequential: true,
|
|
379
379
|
});
|
|
380
380
|
});
|
|
381
381
|
it('with a remove and a modify should possible', function () {
|
|
@@ -391,7 +391,7 @@ describe('Int64MapProperty', function () {
|
|
|
391
391
|
expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.ENTRY_MODIFIED_AFTER_REMOVE);
|
|
392
392
|
expect(conflicts[0].path).to.be.equal('Int64Map[entry1]');
|
|
393
393
|
expect(ChangeSet.isEmptyChangeSet(changeSet)).to.be.ok;
|
|
394
|
-
}
|
|
394
|
+
},
|
|
395
395
|
});
|
|
396
396
|
});
|
|
397
397
|
it('with two compatible removes should be possible', function () {
|
|
@@ -408,7 +408,7 @@ describe('Int64MapProperty', function () {
|
|
|
408
408
|
compareToSequential: false,
|
|
409
409
|
checkResult: function (conflicts, changeSet) {
|
|
410
410
|
expect(ChangeSet.isEmptyChangeSet(changeSet)).to.be.ok;
|
|
411
|
-
}
|
|
411
|
+
},
|
|
412
412
|
});
|
|
413
413
|
});
|
|
414
414
|
it('with two conflicting modifies should be possible and report a conflict', function () {
|
|
@@ -427,7 +427,7 @@ describe('Int64MapProperty', function () {
|
|
|
427
427
|
expect(conflicts).to.have.length(1);
|
|
428
428
|
expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);
|
|
429
429
|
expect(conflicts[0].path).to.be.equal('Int64Map[entry1]');
|
|
430
|
-
}
|
|
430
|
+
},
|
|
431
431
|
});
|
|
432
432
|
});
|
|
433
433
|
it('with modify followed by remove+insert should be a conflicting set', function () {
|
|
@@ -445,7 +445,7 @@ describe('Int64MapProperty', function () {
|
|
|
445
445
|
expect(conflicts).to.have.length(1);
|
|
446
446
|
expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);
|
|
447
447
|
expect(conflicts[0].path).to.be.equal('Int64Map[entry1]');
|
|
448
|
-
}
|
|
448
|
+
},
|
|
449
449
|
});
|
|
450
450
|
});
|
|
451
451
|
it('with remove+insert followed by modify should be a conflicting set', function () {
|
|
@@ -465,7 +465,7 @@ describe('Int64MapProperty', function () {
|
|
|
465
465
|
expect(conflicts).to.have.length(1);
|
|
466
466
|
expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);
|
|
467
467
|
expect(conflicts[0].path).to.be.equal('Int64Map[entry1]');
|
|
468
|
-
}
|
|
468
|
+
},
|
|
469
469
|
});
|
|
470
470
|
});
|
|
471
471
|
it('with conflicting inserts should report conflict', function () {
|
|
@@ -484,7 +484,7 @@ describe('Int64MapProperty', function () {
|
|
|
484
484
|
expect(conflicts).to.have.length(1);
|
|
485
485
|
expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);
|
|
486
486
|
expect(conflicts[0].path).to.be.equal('Int64Map[entry1]');
|
|
487
|
-
}
|
|
487
|
+
},
|
|
488
488
|
});
|
|
489
489
|
});
|
|
490
490
|
});
|