@bikky/replication 1.0.2 → 1.0.3
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/.idea/encodings.xml +4 -0
- package/.idea/vcs.xml +4 -0
- package/Constants/Errors.js +1 -0
- package/Constants/Errors.js.map +1 -0
- package/Constants/Logging.d.ts +1 -0
- package/Constants/Logging.js +2 -2
- package/Constants/Logging.js.map +1 -0
- package/Constants/ReplicableRegistry.d.ts +4 -3
- package/Constants/ReplicableRegistry.js +7 -8
- package/Constants/ReplicableRegistry.js.map +1 -0
- package/Constants/SerialisationTypes.js +4 -4
- package/Constants/SerialisationTypes.js.map +1 -0
- package/Constants/SourceMaps.js +1 -0
- package/Constants/SourceMaps.js.map +1 -0
- package/Constants/TraversalStep.js +1 -0
- package/Constants/TraversalStep.js.map +1 -0
- package/Constants/Versions.d.ts +2 -1
- package/Constants/Versions.js +1 -0
- package/Constants/Versions.js.map +1 -0
- package/Expressions/Compiler/BuiltinGrammar.js +1 -0
- package/Expressions/Compiler/BuiltinGrammar.js.map +1 -0
- package/Expressions/Compiler/ExpressionGrammar.js +1 -0
- package/Expressions/Compiler/ExpressionGrammar.js.map +1 -0
- package/Expressions/Compiler/Parser.js +27 -18
- package/Expressions/Compiler/Parser.js.map +1 -0
- package/Expressions/Compiler/Tokenizer.js +1 -0
- package/Expressions/Compiler/Tokenizer.js.map +1 -0
- package/Expressions/Compiler/__tests__/Replicable.Expressions.Parser.test.js +1 -0
- package/Expressions/Compiler/__tests__/Replicable.Expressions.Parser.test.js.map +1 -0
- package/Expressions/Compiler/__tests__/Replicable.Expressions.Tokenizer.test.js +1 -0
- package/Expressions/Compiler/__tests__/Replicable.Expressions.Tokenizer.test.js.map +1 -0
- package/Expressions/CreateEvaluator.js +1 -0
- package/Expressions/CreateEvaluator.js.map +1 -0
- package/Expressions/EvaluatorChain.js +6 -1
- package/Expressions/EvaluatorChain.js.map +1 -0
- package/Expressions/EvaluatorSteps.js +1 -0
- package/Expressions/EvaluatorSteps.js.map +1 -0
- package/Expressions/EvaluatorString.js +1 -0
- package/Expressions/EvaluatorString.js.map +1 -0
- package/Expressions/Expression.js +10 -3
- package/Expressions/Expression.js.map +1 -0
- package/Expressions/Traverser.js +2 -2
- package/Expressions/Traverser.js.map +1 -0
- package/Expressions/TypeRegistry/Accessors.js +1 -0
- package/Expressions/TypeRegistry/Accessors.js.map +1 -0
- package/Expressions/TypeRegistry/ChainCollections.js +1 -0
- package/Expressions/TypeRegistry/ChainCollections.js.map +1 -0
- package/Expressions/TypeRegistry/ChainTypes.js +1 -0
- package/Expressions/TypeRegistry/ChainTypes.js.map +1 -0
- package/Expressions/TypeRegistry/CustomAPI.d.ts +6 -4
- package/Expressions/TypeRegistry/CustomAPI.js +16 -34
- package/Expressions/TypeRegistry/CustomAPI.js.map +1 -0
- package/Expressions/TypeRegistry/Primitive.js +1 -0
- package/Expressions/TypeRegistry/Primitive.js.map +1 -0
- package/Expressions/TypeRegistry/Registry.js +6 -6
- package/Expressions/TypeRegistry/Registry.js.map +1 -0
- package/Expressions/TypeRegistry/ReplAPI.d.ts +7 -5
- package/Expressions/TypeRegistry/ReplAPI.js +9 -22
- package/Expressions/TypeRegistry/ReplAPI.js.map +1 -0
- package/Expressions/TypeRegistry/Scope.js +1 -0
- package/Expressions/TypeRegistry/Scope.js.map +1 -0
- package/Expressions/TypeRegistry/Types.js +1 -0
- package/Expressions/TypeRegistry/Types.js.map +1 -0
- package/Expressions/TypeRegistry/__tests__/Replicable.Expressions.Accessors.test.js +1 -0
- package/Expressions/TypeRegistry/__tests__/Replicable.Expressions.Accessors.test.js.map +1 -0
- package/Expressions/__tests__/ExpressionExamples.js +1 -0
- package/Expressions/__tests__/ExpressionExamples.js.map +1 -0
- package/Expressions/__tests__/Replicable.Expressions.Expressions.test.js +4 -3
- package/Expressions/__tests__/Replicable.Expressions.Expressions.test.js.map +1 -0
- package/IDPool.data.d.ts +2 -0
- package/IDPool.js +1 -0
- package/IDPool.js.map +1 -0
- package/Main.js +1 -0
- package/Main.js.map +1 -0
- package/Networking.js +3 -4
- package/Networking.js.map +1 -0
- package/Replicatable.js +5 -6
- package/Replicatable.js.map +1 -0
- package/Tracking/Buffable.d.ts +3 -2
- package/Tracking/Buffable.js +1 -0
- package/Tracking/Buffable.js.map +1 -0
- package/Tracking/Class.d.ts +6 -4
- package/Tracking/Class.js +37 -19
- package/Tracking/Class.js.map +1 -0
- package/Tracking/Functions.js +3 -2
- package/Tracking/Functions.js.map +1 -0
- package/Tracking/GlobalGroup.js +2 -2
- package/Tracking/GlobalGroup.js.map +1 -0
- package/Tracking/Property.d.ts +3 -2
- package/Tracking/Property.js +9 -5
- package/Tracking/Property.js.map +1 -0
- package/Tracking/Types.js +1 -0
- package/Tracking/Types.js.map +1 -0
- package/Tracking/__tests__/Replicable.Tracking.Decorator.test.js +1 -0
- package/Tracking/__tests__/Replicable.Tracking.Decorator.test.js.map +1 -0
- package/Tracking/__tests__/Replicable.Tracking.Deserialisation.test.js +1 -0
- package/Tracking/__tests__/Replicable.Tracking.Deserialisation.test.js.map +1 -0
- package/Tracking/__tests__/Replicable.Tracking.MixinSchemaGeneration.test.js +1 -0
- package/Tracking/__tests__/Replicable.Tracking.MixinSchemaGeneration.test.js.map +1 -0
- package/Tracking/__tests__/Replicable.Tracking.Struct.test.js +1 -0
- package/Tracking/__tests__/Replicable.Tracking.Struct.test.js.map +1 -0
- package/Tracking/__tests__/Replicable.Tracking.Type.test.js +1 -0
- package/Tracking/__tests__/Replicable.Tracking.Type.test.js.map +1 -0
- package/Transformers/Configurer.d.ts +15 -1
- package/Transformers/Configurer.js +130 -21
- package/Transformers/Configurer.js.map +1 -0
- package/Transformers/Constructor.js +1 -0
- package/Transformers/Constructor.js.map +1 -0
- package/Transformers/Definitions.d.ts +3 -3
- package/Transformers/Definitions.js +41 -21
- package/Transformers/Definitions.js.map +1 -0
- package/Transformers/Loader.js +21 -11
- package/Transformers/Loader.js.map +1 -0
- package/Transformers/Progress.js +19 -13
- package/Transformers/Progress.js.map +1 -0
- package/Transformers/Reference.js +3 -2
- package/Transformers/Reference.js.map +1 -0
- package/Transformers/SchemaGenerator.d.ts +2 -2
- package/Transformers/SchemaGenerator.js +89 -7
- package/Transformers/SchemaGenerator.js.map +1 -0
- package/Transformers/Serialiser.js +1 -0
- package/Transformers/Serialiser.js.map +1 -0
- package/Transformers/Utils.d.ts +1 -1
- package/Transformers/Utils.js +43 -26
- package/Transformers/Utils.js.map +1 -0
- package/Transformers/__tests__/Examples.d.ts +36 -0
- package/Transformers/__tests__/Examples.js +40 -0
- package/Transformers/__tests__/Examples.js.map +1 -0
- package/Transformers/__tests__/Replicable.Transformers.Definitions.test.js +18 -16
- package/Transformers/__tests__/Replicable.Transformers.Definitions.test.js.map +1 -0
- package/Transformers/__tests__/Replicable.Transformers.Loader.test.js +2 -0
- package/Transformers/__tests__/Replicable.Transformers.Loader.test.js.map +1 -0
- package/Transformers/__tests__/Replicable.Transformers.Progress.test.js +1 -0
- package/Transformers/__tests__/Replicable.Transformers.Progress.test.js.map +1 -0
- package/Transformers/__tests__/Replicable.Transformers.Reference.test.js +1 -0
- package/Transformers/__tests__/Replicable.Transformers.Reference.test.js.map +1 -0
- package/Transformers/__tests__/Replicable.Transformers.SchemaGenerator.test.js +14 -2
- package/Transformers/__tests__/Replicable.Transformers.SchemaGenerator.test.js.map +1 -0
- package/Transformers/__tests__/Replicable.Transformers.SchemaGeneratorOutput.test.js +1 -0
- package/Transformers/__tests__/Replicable.Transformers.SchemaGeneratorOutput.test.js.map +1 -0
- package/Transformers/__tests__/Replicable.Transformers.Serialiser.test.js +11 -2
- package/Transformers/__tests__/Replicable.Transformers.Serialiser.test.js.map +1 -0
- package/Transformers/__tests__/Replicable.Transformers.Utils.test.js +95 -82
- package/Transformers/__tests__/Replicable.Transformers.Utils.test.js.map +1 -0
- package/__tests__/Configuration/Mocks.d.ts +2 -0
- package/__tests__/Configuration/Mocks.js +98 -0
- package/__tests__/Configuration/Mocks.js.map +1 -0
- package/__tests__/Configuration/Setup.d.ts +1 -0
- package/__tests__/Configuration/Setup.js +14 -0
- package/__tests__/Configuration/Setup.js.map +1 -0
- package/__tests__/Configuration/TestTypes.d.ts +33 -0
- package/__tests__/Replicable.Expressions.test.js +1 -0
- package/__tests__/Replicable.Expressions.test.js.map +1 -0
- package/__tests__/Replicable.IDPool.test.js +1 -0
- package/__tests__/Replicable.IDPool.test.js.map +1 -0
- package/__tests__/Replicable.ReplicableRegistry.test.js +23 -13
- package/__tests__/Replicable.ReplicableRegistry.test.js.map +1 -0
- package/__tests__/Replicable.Serialisation.test.js +1 -0
- package/__tests__/Replicable.Serialisation.test.js.map +1 -0
- package/package.json +15 -5
- package/tsconfig.json +7 -4
- package/tsconfig.tsbuildinfo +1 -0
- package/vitest.config.d.ts +2 -0
- package/vitest.config.js +32 -0
- package/vitest.config.js.map +1 -0
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { afterAll, beforeAll, describe, expect, test } from "vitest";
|
|
2
|
-
import { Expression, PropertyTypes, ValueIsPrimitiveType, Versions } from "../../Main.js";
|
|
2
|
+
import { Expression, PropertyTypes, Replicable, ValueIsPrimitiveType, Versions } from "../../Main.js";
|
|
3
3
|
import { ReplicableRegistry } from "../../Constants/ReplicableRegistry.js";
|
|
4
4
|
import { Utils } from "../Utils.js";
|
|
5
5
|
import { BikPath } from "@bikky/path";
|
|
6
6
|
import { ExpressionScopes } from "../../Expressions/TypeRegistry/Registry.js";
|
|
7
|
-
import { ModLoader } from "../../../ModLoader.js";
|
|
8
7
|
import { Pointer } from "../Reference.js";
|
|
9
8
|
import { TestPropertyDecorators } from "./Examples.js";
|
|
9
|
+
import { Progress } from "../Progress.js";
|
|
10
|
+
var TransformersIndexedStruct = TestPropertyDecorators.TransformersIndexedStruct;
|
|
10
11
|
//TODO: Test whichever utils function returns if a property should be loaded or not returns true for computed + default.
|
|
11
12
|
describe("Replicable Utils", async () => {
|
|
12
13
|
const TransformersBasicClass = TestPropertyDecorators.TransformersBasicClass;
|
|
@@ -88,8 +89,8 @@ describe("Replicable Utils", async () => {
|
|
|
88
89
|
types: [{ types: [String], sortIndex: "string", modifiers: PropertyTypes.Solo | PropertyTypes.Expression }]
|
|
89
90
|
},
|
|
90
91
|
expressionForKey: undefined,
|
|
91
|
-
expressionForProperty: { [Versions.v1_0_0]:
|
|
92
|
-
expressionForValue: { [Versions.v1_0_0]:
|
|
92
|
+
expressionForProperty: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [String] } },
|
|
93
|
+
expressionForValue: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [String] } },
|
|
93
94
|
});
|
|
94
95
|
});
|
|
95
96
|
test(" 2. Assignable types for Number is correct.", async () => {
|
|
@@ -114,8 +115,8 @@ describe("Replicable Utils", async () => {
|
|
|
114
115
|
]
|
|
115
116
|
},
|
|
116
117
|
expressionForKey: undefined,
|
|
117
|
-
expressionForProperty: { [Versions.v1_0_0]:
|
|
118
|
-
expressionForValue: { [Versions.v1_0_0]:
|
|
118
|
+
expressionForProperty: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [Number] } },
|
|
119
|
+
expressionForValue: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [Number] } },
|
|
119
120
|
});
|
|
120
121
|
});
|
|
121
122
|
test(" 3. Assignable types for Map is correct.", async () => {
|
|
@@ -125,10 +126,10 @@ describe("Replicable Utils", async () => {
|
|
|
125
126
|
load: {
|
|
126
127
|
default: undefined,
|
|
127
128
|
name: "Val3",
|
|
128
|
-
possibleModifiers: PropertyTypes.Map,
|
|
129
|
+
possibleModifiers: PropertyTypes.Map | PropertyTypes.Dictionary,
|
|
129
130
|
present: "optional",
|
|
130
131
|
skipLoad: false,
|
|
131
|
-
types: [{ types: [Number], keyType: [String], sortIndex: "number", modifiers: PropertyTypes.Map | PropertyTypes.Expression }]
|
|
132
|
+
types: [{ types: [Number], keyType: [String], sortIndex: "number", modifiers: PropertyTypes.Map | PropertyTypes.Dictionary | PropertyTypes.Expression }]
|
|
132
133
|
},
|
|
133
134
|
serialisation: {
|
|
134
135
|
inline: undefined,
|
|
@@ -138,8 +139,8 @@ describe("Replicable Utils", async () => {
|
|
|
138
139
|
{ types: [undefined], modifiers: PropertyTypes.Solo | PropertyTypes.Expression, sortIndex: "undefined" }]
|
|
139
140
|
},
|
|
140
141
|
expressionForKey: undefined,
|
|
141
|
-
expressionForProperty: { [Versions.v1_0_0]:
|
|
142
|
-
expressionForValue: { [Versions.v1_0_0]:
|
|
142
|
+
expressionForProperty: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [Number], outputMap: true } },
|
|
143
|
+
expressionForValue: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [Number] } },
|
|
143
144
|
});
|
|
144
145
|
});
|
|
145
146
|
test(" 4. Assignable types for Dictionary is correct.", async () => {
|
|
@@ -162,8 +163,8 @@ describe("Replicable Utils", async () => {
|
|
|
162
163
|
{ types: [undefined], modifiers: PropertyTypes.Solo | PropertyTypes.Expression, sortIndex: "undefined" }]
|
|
163
164
|
},
|
|
164
165
|
expressionForKey: undefined,
|
|
165
|
-
expressionForProperty: { [Versions.v1_0_0]:
|
|
166
|
-
expressionForValue: { [Versions.v1_0_0]:
|
|
166
|
+
expressionForProperty: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [String], outputDict: true } },
|
|
167
|
+
expressionForValue: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [String] } },
|
|
167
168
|
});
|
|
168
169
|
});
|
|
169
170
|
test(" 5. Assignable types for Array is correct.", async () => {
|
|
@@ -185,8 +186,8 @@ describe("Replicable Utils", async () => {
|
|
|
185
186
|
types: [{ types: [String], sortIndex: "string", modifiers: PropertyTypes.Array | PropertyTypes.Expression }]
|
|
186
187
|
},
|
|
187
188
|
expressionForKey: undefined,
|
|
188
|
-
expressionForProperty: { [Versions.v1_0_0]:
|
|
189
|
-
expressionForValue: { [Versions.v1_0_0]:
|
|
189
|
+
expressionForProperty: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [String], outputArray: 1 } },
|
|
190
|
+
expressionForValue: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [String] } },
|
|
190
191
|
});
|
|
191
192
|
});
|
|
192
193
|
test(" 6. Assignable types for Array2 is correct.", async () => {
|
|
@@ -208,8 +209,8 @@ describe("Replicable Utils", async () => {
|
|
|
208
209
|
types: [{ types: [Number], sortIndex: "number", modifiers: PropertyTypes.Array2 | PropertyTypes.Expression }]
|
|
209
210
|
},
|
|
210
211
|
expressionForKey: undefined,
|
|
211
|
-
expressionForProperty: { [Versions.v1_0_0]:
|
|
212
|
-
expressionForValue: { [Versions.v1_0_0]:
|
|
212
|
+
expressionForProperty: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [Number], outputArray: 2 } },
|
|
213
|
+
expressionForValue: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [Number] } },
|
|
213
214
|
});
|
|
214
215
|
});
|
|
215
216
|
test(" 7. Assignable types for Struct is correct.", async () => {
|
|
@@ -231,8 +232,8 @@ describe("Replicable Utils", async () => {
|
|
|
231
232
|
types: [{ types: [TestStructRepl], sortIndex: TestStructRepl.opts.typescriptTypeName, modifiers: PropertyTypes.Solo | PropertyTypes.Expression }]
|
|
232
233
|
},
|
|
233
234
|
expressionForKey: undefined,
|
|
234
|
-
expressionForProperty: { [Versions.v1_0_0]:
|
|
235
|
-
expressionForValue: { [Versions.v1_0_0]:
|
|
235
|
+
expressionForProperty: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [TestStructRepl.opts.typescriptTypeName] } },
|
|
236
|
+
expressionForValue: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [TestStructRepl.opts.typescriptTypeName] } },
|
|
236
237
|
});
|
|
237
238
|
});
|
|
238
239
|
test(" 8. Assignable types for inlined class is correct.", async () => {
|
|
@@ -254,8 +255,8 @@ describe("Replicable Utils", async () => {
|
|
|
254
255
|
types: [{ types: [TestPtrRepl], sortIndex: TestPtrRepl.opts.typescriptTypeName, modifiers: PropertyTypes.Solo | PropertyTypes.Expression | PropertyTypes.ForceInline }]
|
|
255
256
|
},
|
|
256
257
|
expressionForKey: undefined,
|
|
257
|
-
expressionForProperty: { [Versions.v1_0_0]:
|
|
258
|
-
expressionForValue: { [Versions.v1_0_0]:
|
|
258
|
+
expressionForProperty: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [TestPtrRepl.opts.typescriptTypeName] } },
|
|
259
|
+
expressionForValue: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [TestPtrRepl.opts.typescriptTypeName] } },
|
|
259
260
|
});
|
|
260
261
|
});
|
|
261
262
|
test(" 9. Assignable types for not inlined class is correct.", async () => {
|
|
@@ -277,8 +278,8 @@ describe("Replicable Utils", async () => {
|
|
|
277
278
|
types: [{ types: [TestPtrRepl], sortIndex: TestPtrRepl.opts.typescriptTypeName, modifiers: PropertyTypes.Solo | PropertyTypes.Expression }]
|
|
278
279
|
},
|
|
279
280
|
expressionForKey: undefined,
|
|
280
|
-
expressionForProperty: { [Versions.v1_0_0]:
|
|
281
|
-
expressionForValue: { [Versions.v1_0_0]:
|
|
281
|
+
expressionForProperty: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [TestPtrRepl.opts.typescriptTypeName] } },
|
|
282
|
+
expressionForValue: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [TestPtrRepl.opts.typescriptTypeName] } },
|
|
282
283
|
});
|
|
283
284
|
});
|
|
284
285
|
});
|
|
@@ -404,7 +405,8 @@ describe("Replicable Utils", async () => {
|
|
|
404
405
|
ExpressionScopes.addLocalVariable(TransformersTheLotClass.name, "thisEntity", [TransformersTheLotClass]);
|
|
405
406
|
ExpressionScopes.setLocalScope(TransformersTheLotClass.name, { thisEntity: new TransformersTheLotClass() });
|
|
406
407
|
Expression.setCurrentStartScopeType(TransformersTheLotClass.name);
|
|
407
|
-
|
|
408
|
+
//TODO: This was awaiting modloader do load, now do we need to do something else?
|
|
409
|
+
Progress.FinishedAllLoading();
|
|
408
410
|
let def = TestRepl.getPropDefinition(Versions.v1_0_0, "val2");
|
|
409
411
|
let config = def.expressionForProperty[Versions.v1_0_0];
|
|
410
412
|
test.sequential("Prop config should be valid", () => {
|
|
@@ -425,7 +427,7 @@ describe("Replicable Utils", async () => {
|
|
|
425
427
|
});
|
|
426
428
|
test.sequential("Should return false if expression does not match prop type.", async () => {
|
|
427
429
|
let val2def = TestRepl.getPropDefinition(Versions.v1_0_0, "val2");
|
|
428
|
-
let evalStr = Expression.Parse("@{thisEntity.Val} is a string", BikPath.getCurrentFilepath(),
|
|
430
|
+
let evalStr = Expression.Parse("@{thisEntity.Val} is a string", BikPath.getCurrentFilepath(), { ...config, outputTypes: [String] });
|
|
429
431
|
let result = Utils.ExpressionUtils.DoesExpressionMatchPropType(evalStr, val2def);
|
|
430
432
|
expect(result).toBe(false);
|
|
431
433
|
});
|
|
@@ -435,38 +437,46 @@ describe("Replicable Utils", async () => {
|
|
|
435
437
|
});
|
|
436
438
|
describe("CompareProp", async () => {
|
|
437
439
|
test("Compare primitive values", async () => {
|
|
438
|
-
expect(Utils.CompareUtils.CompareValWithSerialisedVal("test", "test", "val")).toBe(true);
|
|
439
|
-
expect(Utils.CompareUtils.CompareValWithSerialisedVal("test", "test2", "val")).toBe(false);
|
|
440
|
-
expect(Utils.CompareUtils.CompareValWithSerialisedVal(0, 0, "val")).toBe(true);
|
|
441
|
-
expect(Utils.CompareUtils.CompareValWithSerialisedVal(false, false, "val")).toBe(true);
|
|
440
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal("test", ["Primitive", "test"], "val")).toBe(true);
|
|
441
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal("test", ["Primitive", "test2"], "val")).toBe(false);
|
|
442
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal(0, ["Primitive", 0], "val")).toBe(true);
|
|
443
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal(false, ["Primitive", false], "val")).toBe(true);
|
|
442
444
|
});
|
|
443
445
|
test("Compare arrays", async () => {
|
|
444
|
-
expect(Utils.CompareUtils.CompareValWithSerialisedVal(["test"], [["Primitive", "test"]], "val5")).toBe(true);
|
|
445
|
-
expect(Utils.CompareUtils.CompareValWithSerialisedVal(["test"], [["Primitive", "test2"]], "val5")).toBe(false);
|
|
446
|
-
expect(Utils.CompareUtils.CompareValWithSerialisedVal(["test", "two"], [["Primitive", "test"]], "val5")).toBe(false);
|
|
447
|
-
expect(Utils.CompareUtils.CompareValWithSerialisedVal(["test", "two"], [["Primitive", "test2"], ["Primitive", "two"]], "val5")).toBe(false);
|
|
448
|
-
expect(Utils.CompareUtils.CompareValWithSerialisedVal(["test", "two"], [["Primitive", "test"], ["Primitive", "two2"]], "val5")).toBe(false);
|
|
449
|
-
expect(Utils.CompareUtils.CompareValWithSerialisedVal(["test", "two"], [["Primitive", "test"], ["Primitive", "two"]], "val5")).toBe(true);
|
|
446
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal(["test"], ["Array", [["Primitive", "test"]]], "val5")).toBe(true);
|
|
447
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal(["test"], ["Array", [["Primitive", "test2"]]], "val5")).toBe(false);
|
|
448
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal(["test", "two"], ["Array", [["Primitive", "test"]]], "val5")).toBe(false);
|
|
449
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal(["test", "two"], ["Array", [["Primitive", "test2"], ["Primitive", "two"]]], "val5")).toBe(false);
|
|
450
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal(["test", "two"], ["Array", [["Primitive", "test"], ["Primitive", "two2"]]], "val5")).toBe(false);
|
|
451
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal(["test", "two"], ["Array", [["Primitive", "test"], ["Primitive", "two"]]], "val5")).toBe(true);
|
|
452
|
+
});
|
|
453
|
+
test("Compare double arrays", async () => {
|
|
454
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal([["test"]], ["Array2", [[["Primitive", "test"]]]], "val6")).toBe(true);
|
|
455
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal([["test"]], ["Array2", [[["Primitive", "test2"]]]], "val6")).toBe(false);
|
|
456
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal([["test", "two"]], ["Array2", [[["Primitive", "test"]]]], "val6")).toBe(false);
|
|
457
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal([["test", "two"]], ["Array2", [[["Primitive", "test2"], ["Primitive", "two"]]]], "val6")).toBe(false);
|
|
458
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal([["test", "two"]], ["Array2", [[["Primitive", "test"], ["Primitive", "two2"]]]], "val6")).toBe(false);
|
|
459
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal([["test", "two"]], ["Array2", [[["Primitive", "test"], ["Primitive", "two"]]]], "val6")).toBe(true);
|
|
450
460
|
});
|
|
451
461
|
test("Compare maps", async () => {
|
|
452
|
-
expect(Utils.CompareUtils.CompareValWithSerialisedVal(new Map([["test", 1]]), { "test": ["Primitive", 1] }, "val3")).toBe(true);
|
|
453
|
-
expect(Utils.CompareUtils.CompareValWithSerialisedVal(new Map([["test", 1]]), { "test": ["Primitive", 2] }, "val3")).toBe(false);
|
|
454
|
-
expect(Utils.CompareUtils.CompareValWithSerialisedVal(new Map([["test", 1]]), { "test2": ["Primitive", 1] }, "val3")).toBe(false);
|
|
455
|
-
expect(Utils.CompareUtils.CompareValWithSerialisedVal(new Map([["test", 1], ["two", 2]]), { "test": ["Primitive", 1] }, "val3")).toBe(false);
|
|
456
|
-
expect(Utils.CompareUtils.CompareValWithSerialisedVal(new Map([["test", 1], ["two", 2]]), { "test": ["Primitive", 1], "two": ["Primitive", 2] }, "val3")).toBe(true);
|
|
457
|
-
expect(Utils.CompareUtils.CompareValWithSerialisedVal(new Map([["test", 1], ["two", 2]]), { "test": ["Primitive", 1], "two": ["Primitive", 1] }, "val3")).toBe(false);
|
|
458
|
-
expect(Utils.CompareUtils.CompareValWithSerialisedVal(new Map([["test", 1], ["two", 2]]), { "test": ["Primitive", 2], "two": ["Primitive", 1] }, "val3")).toBe(false);
|
|
459
|
-
expect(Utils.CompareUtils.CompareValWithSerialisedVal(new Map([["test", 1], ["two", 2]]), { "test": ["Primitive", 2], "two": ["Primitive", 2] }, "val3")).toBe(false);
|
|
462
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal(new Map([["test", 1]]), ["Map", { "test": ["Primitive", 1] }], "val3")).toBe(true);
|
|
463
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal(new Map([["test", 1]]), ["Map", { "test": ["Primitive", 2] }], "val3")).toBe(false);
|
|
464
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal(new Map([["test", 1]]), ["Map", { "test2": ["Primitive", 1] }], "val3")).toBe(false);
|
|
465
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal(new Map([["test", 1], ["two", 2]]), ["Map", { "test": ["Primitive", 1] }], "val3")).toBe(false);
|
|
466
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal(new Map([["test", 1], ["two", 2]]), ["Map", { "test": ["Primitive", 1], "two": ["Primitive", 2] }], "val3")).toBe(true);
|
|
467
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal(new Map([["test", 1], ["two", 2]]), ["Map", { "test": ["Primitive", 1], "two": ["Primitive", 1] }], "val3")).toBe(false);
|
|
468
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal(new Map([["test", 1], ["two", 2]]), ["Map", { "test": ["Primitive", 2], "two": ["Primitive", 1] }], "val3")).toBe(false);
|
|
469
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal(new Map([["test", 1], ["two", 2]]), ["Map", { "test": ["Primitive", 2], "two": ["Primitive", 2] }], "val3")).toBe(false);
|
|
460
470
|
});
|
|
461
471
|
test("Compare dicts", async () => {
|
|
462
|
-
expect(Utils.CompareUtils.CompareValWithSerialisedVal({ "test": 1 }, { "test": ["Primitive", 1] }, "val3")).toBe(true);
|
|
463
|
-
expect(Utils.CompareUtils.CompareValWithSerialisedVal({ "test": 1 }, { "test": ["Primitive", 2] }, "val3")).toBe(false);
|
|
464
|
-
expect(Utils.CompareUtils.CompareValWithSerialisedVal({ "test": 1 }, { "test2": ["Primitive", 1] }, "val3")).toBe(false);
|
|
465
|
-
expect(Utils.CompareUtils.CompareValWithSerialisedVal({ "test": 1, "two": 2 }, { "test": ["Primitive", 1] }, "val3")).toBe(false);
|
|
466
|
-
expect(Utils.CompareUtils.CompareValWithSerialisedVal({ "test": 1, "two": 2 }, { "test": ["Primitive", 1], "two": ["Primitive", 2] }, "val3")).toBe(true);
|
|
467
|
-
expect(Utils.CompareUtils.CompareValWithSerialisedVal({ "test": 1, "two": 2 }, { "test": ["Primitive", 1], "two": ["Primitive", 1] }, "val3")).toBe(false);
|
|
468
|
-
expect(Utils.CompareUtils.CompareValWithSerialisedVal({ "test": 1, "two": 2 }, { "test": ["Primitive", 2], "two": ["Primitive", 1] }, "val3")).toBe(false);
|
|
469
|
-
expect(Utils.CompareUtils.CompareValWithSerialisedVal({ "test": 1, "two": 2 }, { "test": ["Primitive", 2], "two": ["Primitive", 2] }, "val3")).toBe(false);
|
|
472
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal({ "test": 1 }, ["Dict", { "test": ["Primitive", 1] }], "val3")).toBe(true);
|
|
473
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal({ "test": 1 }, ["Dict", { "test": ["Primitive", 2] }], "val3")).toBe(false);
|
|
474
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal({ "test": 1 }, ["Dict", { "test2": ["Primitive", 1] }], "val3")).toBe(false);
|
|
475
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal({ "test": 1, "two": 2 }, ["Dict", { "test": ["Primitive", 1] }], "val3")).toBe(false);
|
|
476
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal({ "test": 1, "two": 2 }, ["Dict", { "test": ["Primitive", 1], "two": ["Primitive", 2] }], "val3")).toBe(true);
|
|
477
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal({ "test": 1, "two": 2 }, ["Dict", { "test": ["Primitive", 1], "two": ["Primitive", 1] }], "val3")).toBe(false);
|
|
478
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal({ "test": 1, "two": 2 }, ["Dict", { "test": ["Primitive", 2], "two": ["Primitive", 1] }], "val3")).toBe(false);
|
|
479
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal({ "test": 1, "two": 2 }, ["Dict", { "test": ["Primitive", 2], "two": ["Primitive", 2] }], "val3")).toBe(false);
|
|
470
480
|
});
|
|
471
481
|
test("Compare expressions", async () => {
|
|
472
482
|
let expr = Expression.Parse("@{thisEntity.Val}", BikPath.getCurrentFilepath(), {
|
|
@@ -478,8 +488,8 @@ describe("Replicable Utils", async () => {
|
|
|
478
488
|
startType: TransformersTheLotClass.name,
|
|
479
489
|
version: Versions.v1_0_0
|
|
480
490
|
});
|
|
481
|
-
expect(Utils.CompareUtils.CompareValWithSerialisedVal(expr, "test", "val")).toBe(true);
|
|
482
|
-
expect(Utils.CompareUtils.CompareValWithSerialisedVal(expr, "test2", "val")).toBe(true);
|
|
491
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal(expr, ["Primitive", "test"], "val")).toBe(true);
|
|
492
|
+
expect(Utils.CompareUtils.CompareValWithSerialisedVal(expr, ["Primitive", "test2"], "val")).toBe(true);
|
|
483
493
|
});
|
|
484
494
|
test("Compare pointers", async () => {
|
|
485
495
|
let val = new TransformersBasicClass();
|
|
@@ -492,43 +502,46 @@ describe("Replicable Utils", async () => {
|
|
|
492
502
|
describe("CompareRepl and Compare", () => {
|
|
493
503
|
let testPtr = new TransformersBasicClass();
|
|
494
504
|
testPtr.val = "test";
|
|
495
|
-
let objToCompare =
|
|
496
|
-
|
|
497
|
-
val: { value: "test" },
|
|
498
|
-
val2: { value: 1 },
|
|
499
|
-
val3: { value: new Map([["test", 1]]) },
|
|
500
|
-
val4: { value: { test: 1 } },
|
|
501
|
-
val5: { value: ["test"] },
|
|
502
|
-
val6: { value: [[1]] },
|
|
503
|
-
val7: { value: new TransformersTheLotClass() },
|
|
504
|
-
val8: { value: "test" },
|
|
505
|
-
val9: { value: new Pointer(testPtr) },
|
|
506
|
-
val10: { value: new Pointer(testPtr) },
|
|
507
|
-
val13: { value: [[1]] },
|
|
508
|
-
val14: { value: 1 }
|
|
509
|
-
});
|
|
505
|
+
let objToCompare = TransformersTheLotClass.MakeExampleObj();
|
|
506
|
+
let serialisedObject = Replicable.Serialise(objToCompare);
|
|
510
507
|
let serialisedCorrect = {
|
|
511
|
-
val: ["Primitive", "
|
|
512
|
-
val2: ["Primitive",
|
|
513
|
-
val3: ["Map", { "
|
|
514
|
-
val4: ["Dict", {
|
|
515
|
-
val5: ["Array", [["Primitive", "
|
|
516
|
-
val6: ["
|
|
517
|
-
val7: [TransformersBasicStruct.name, {
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
508
|
+
val: ["Primitive", "hello"],
|
|
509
|
+
val2: ["Primitive", 5],
|
|
510
|
+
val3: ["Map", { "hello": ["Primitive", 1] }],
|
|
511
|
+
val4: ["Dict", { 1: ["Primitive", "world"] }],
|
|
512
|
+
val5: ["Array", [["Primitive", "hello"]]],
|
|
513
|
+
val6: ["Array2", [[["Primitive", 1], ["Primitive", 2]]]],
|
|
514
|
+
val7: [TransformersBasicStruct.name, {
|
|
515
|
+
val: ["Primitive", "hi"],
|
|
516
|
+
version: Versions.MAX
|
|
517
|
+
}],
|
|
518
|
+
val8: ["Primitive", "hello"],
|
|
519
|
+
val9: [TransformersBasicClass.name, {
|
|
520
|
+
val: ["Primitive", "hi"],
|
|
521
|
+
version: Versions.MAX
|
|
522
|
+
}],
|
|
523
|
+
val10: [TransformersBasicClass.name, "hi"],
|
|
524
|
+
val13: ["Array2", [[["Primitive", 1], ["Primitive", 2]]]],
|
|
525
|
+
val14: ["Primitive", 10],
|
|
526
|
+
val15: ["Dict", {
|
|
527
|
+
"An inner property is a map index": [TransformersIndexedStruct.name, {
|
|
528
|
+
index: ["Primitive", "An inner property is a map index"],
|
|
529
|
+
val: ["Primitive", "value"],
|
|
530
|
+
version: Versions.MAX
|
|
531
|
+
}],
|
|
532
|
+
}],
|
|
533
|
+
version: Versions.MAX
|
|
523
534
|
};
|
|
524
|
-
test("CompareRepl: Should return true if all values are equal", async () => {
|
|
535
|
+
test(" 1. CompareRepl: Should return true if all values are equal", async () => {
|
|
536
|
+
expect(serialisedObject[1]).toStrictEqual(serialisedCorrect);
|
|
525
537
|
expect(Utils.CompareUtils.CompareRepl(TestRepl, objToCompare, serialisedCorrect)).toBe(true);
|
|
526
538
|
});
|
|
527
|
-
test("Compare: Should return true if all values are equal", async () => {
|
|
539
|
+
test(" 2. Compare: Should return true if all values are equal", async () => {
|
|
528
540
|
expect(Utils.CompareUtils.Compare(objToCompare, [TransformersTheLotClass.name, serialisedCorrect])).toBe(true);
|
|
529
541
|
});
|
|
530
|
-
test("Compare: Should return false if comparing into wrong value", async () => {
|
|
542
|
+
test(" 3. Compare: Should return false if comparing into wrong value", async () => {
|
|
531
543
|
expect(Utils.CompareUtils.Compare(testPtr, [TransformersTheLotClass.name, serialisedCorrect])).toBe(false);
|
|
532
544
|
});
|
|
533
545
|
});
|
|
534
546
|
});
|
|
547
|
+
//# sourceMappingURL=Replicable.Transformers.Utils.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Replicable.Transformers.Utils.test.js","sourceRoot":"","sources":["Replicable.Transformers.Utils.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { expect, vi } from "vitest";
|
|
2
|
+
import { MixableClass, makeMixerFoo } from "@bikky/compiler/Libraries/MixinCode.mjs";
|
|
3
|
+
import { DelayCreate } from "@bikky/compiler/Libraries/DelayLib.mjs";
|
|
4
|
+
import * as util from "util";
|
|
5
|
+
import "expose-gc";
|
|
6
|
+
vi.stubGlobal('Mixable', MixableClass);
|
|
7
|
+
vi.stubGlobal('makeMixer', makeMixerFoo);
|
|
8
|
+
vi.stubGlobal('__BikCompileDelayCreate', DelayCreate);
|
|
9
|
+
vi.stubGlobal('TestingMode', true);
|
|
10
|
+
export async function clearGC() {
|
|
11
|
+
if (typeof global.gc === "undefined") {
|
|
12
|
+
throw new Error("Garbage collector is not defined! Either pass --expose-gc or npm install expose-gc.");
|
|
13
|
+
}
|
|
14
|
+
await util.promisify(setTimeout)(0);
|
|
15
|
+
global.gc();
|
|
16
|
+
}
|
|
17
|
+
const extendTestExpects = {
|
|
18
|
+
toContainAtLeast(received, expected, recursiveRecord) {
|
|
19
|
+
let resultMessage = { message: () => `expected ${received} to contain ${expected}`, actual: received, expected: expected };
|
|
20
|
+
if (recursiveRecord?.has(expected)) {
|
|
21
|
+
//Skip this, we've evaluated it before.
|
|
22
|
+
return { ...resultMessage, pass: true };
|
|
23
|
+
}
|
|
24
|
+
recursiveRecord = recursiveRecord ?? new Set();
|
|
25
|
+
recursiveRecord.add(expected);
|
|
26
|
+
//Recursively check if the received object contains the expected object.
|
|
27
|
+
if (typeof expected !== typeof received) {
|
|
28
|
+
return { ...resultMessage, pass: false };
|
|
29
|
+
}
|
|
30
|
+
if (typeof expected !== "object" || expected == null) {
|
|
31
|
+
return received === expected ? { ...resultMessage, pass: true } : { ...resultMessage, pass: false };
|
|
32
|
+
}
|
|
33
|
+
if (Array.isArray(expected)) {
|
|
34
|
+
if (!Array.isArray(received)) {
|
|
35
|
+
return { ...resultMessage, pass: false };
|
|
36
|
+
}
|
|
37
|
+
let entries = [...received];
|
|
38
|
+
iter_expected: for (let val of expected) {
|
|
39
|
+
if (typeof val === "object" && val != null) {
|
|
40
|
+
for (let rec of entries) {
|
|
41
|
+
if (extendTestExpects.toContainAtLeast.call(this, rec, val, recursiveRecord).pass) {
|
|
42
|
+
entries.splice(entries.indexOf(rec), 1);
|
|
43
|
+
continue iter_expected;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return { ...resultMessage, pass: false };
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
if (!entries.includes(val)) {
|
|
50
|
+
return { ...resultMessage, pass: false };
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
entries.splice(entries.indexOf(val), 1);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
for (let [key, value] of Object.entries(expected)) {
|
|
60
|
+
if (typeof value === "object" && value != null) {
|
|
61
|
+
if (!extendTestExpects.toContainAtLeast.call(this, received[key], value, recursiveRecord).pass) {
|
|
62
|
+
return { ...resultMessage, pass: false };
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
else if (received[key] !== value) {
|
|
66
|
+
return { ...resultMessage, pass: false };
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return {
|
|
71
|
+
...resultMessage,
|
|
72
|
+
pass: true
|
|
73
|
+
};
|
|
74
|
+
},
|
|
75
|
+
includesString(received, expected, recursiveRecord) {
|
|
76
|
+
let resultMessage = { message: () => `expected ${received} to contain ${expected}`, actual: received, expected: expected };
|
|
77
|
+
return {
|
|
78
|
+
...resultMessage,
|
|
79
|
+
pass: received.includes(expected)
|
|
80
|
+
};
|
|
81
|
+
},
|
|
82
|
+
/// Test to see if given entity is the same entity as the expected entity.
|
|
83
|
+
isSameEntity(received, expected) {
|
|
84
|
+
let resultMessage = { message: () => `expected ${received?.name?.code} to be ${expected?.name?.code}`, actual: received, expected: expected };
|
|
85
|
+
if (typeof received !== "object" || received == null) {
|
|
86
|
+
return { ...resultMessage, pass: false };
|
|
87
|
+
}
|
|
88
|
+
if (received.id !== expected.id) {
|
|
89
|
+
return { ...resultMessage, pass: false };
|
|
90
|
+
}
|
|
91
|
+
if (received.__proto__ !== expected.__proto__) {
|
|
92
|
+
return { ...resultMessage, pass: false };
|
|
93
|
+
}
|
|
94
|
+
return { ...resultMessage, pass: true };
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
expect.extend(extendTestExpects);
|
|
98
|
+
//# sourceMappingURL=Mocks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Mocks.js","sourceRoot":"","sources":["Mocks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { beforeAll } from "vitest";
|
|
2
|
+
import { Referencer } from "../../Transformers/Reference.js";
|
|
3
|
+
import { ReplicableRegistry } from "../../Constants/ReplicableRegistry.js";
|
|
4
|
+
import { __ReplTypeHelperFunctions } from "../../Expressions/TypeRegistry/ReplAPI.js";
|
|
5
|
+
import { Progress } from "../../Transformers/Progress.js";
|
|
6
|
+
import { Configurer } from "../../Transformers/Configurer.js";
|
|
7
|
+
beforeAll(() => {
|
|
8
|
+
Referencer.SetDataNameLookupFunction(ReplicableRegistry.__GetReplicableForDataName);
|
|
9
|
+
Referencer.SetAliasLookupFunction(ReplicableRegistry.__GetReplicablesFor);
|
|
10
|
+
__ReplTypeHelperFunctions.SetDataNameTypeLookupFunction(ReplicableRegistry.GetTypeForDataName);
|
|
11
|
+
__ReplTypeHelperFunctions.SetPrimOrClassLookupFunction(ReplicableRegistry.__GetReplOrPrimFor);
|
|
12
|
+
Progress.RegisterReplInitialisationFunction(Configurer.CacheClassProperties);
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=Setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Setup.js","sourceRoot":"","sources":["Setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAG9D,SAAS,CAAC,GAAE,EAAE;IACV,UAAU,CAAC,yBAAyB,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,CAAC;IACpF,UAAU,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;IAC1E,yBAAyB,CAAC,6BAA6B,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;IAC/F,yBAAyB,CAAC,4BAA4B,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;IAC9F,QAAQ,CAAC,kCAAkC,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;AACjF,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Assertion, AsymmetricMatchersContaining } from 'vitest'
|
|
2
|
+
import { MatcherState } from "@vitest/expect";
|
|
3
|
+
|
|
4
|
+
interface CustomMatchers<R = unknown> {
|
|
5
|
+
/**
|
|
6
|
+
* Assert whether given message was announced by ARIA live region.
|
|
7
|
+
*
|
|
8
|
+
* @param politenessSetting `POLITENESS_SETTING` of the announcement
|
|
9
|
+
*/
|
|
10
|
+
toContainAtLeast(expected: any): {message: () => string, pass: boolean};
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Like .includes but only for strings and with a better error message.
|
|
14
|
+
* Returns true if the received string includes the expected string.
|
|
15
|
+
*
|
|
16
|
+
* @param politenessSetting `POLITENESS_SETTING` of the announcement
|
|
17
|
+
*/
|
|
18
|
+
includesString(expected: any): {message: () => string, pass: boolean};
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Assert that given entity is the same entity as the expected entity.
|
|
22
|
+
*/
|
|
23
|
+
isSameEntity(expected: any): {message: () => string, pass: boolean};
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
declare module 'vitest' {
|
|
27
|
+
interface Assertion<T = any> extends CustomMatchers<T> {}
|
|
28
|
+
interface AsymmetricMatchersContaining extends CustomMatchers {}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
declare function enableActionManagerTestMode(): void;
|
|
32
|
+
|
|
33
|
+
declare type TestMixinData<Mixin, Parent> = Omit<Mixin, keyof Parent> & Omit<Partial<Parent>, "Class"> & { Class: string };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Replicable.Expressions.test.js","sourceRoot":"","sources":["Replicable.Expressions.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Replicable.IDPool.test.js","sourceRoot":"","sources":["Replicable.IDPool.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAGvD,QAAQ,CAAC,QAAQ,EAAE,GAAE,EAAE;IACtB,IAAI,CAAC,qBAAqB,EAAE,KAAK,IAAG,EAAE;QACrC,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAE,oCAAoC,CAAC,CAAC;QACnF,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QAC7B,MAAM,kBAAkB,CAAC,UAAU,EAAE,CAAC;QACtC,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAC5E,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|