@vived/core 1.3.0 → 1.4.1
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/esm/Utilities/addAlphaToHex.js +13 -0
- package/dist/esm/Utilities/addAlphaToHex.js.map +1 -0
- package/dist/esm/Utilities/addAlphaToHex.test.js +32 -0
- package/dist/esm/Utilities/addAlphaToHex.test.js.map +1 -0
- package/dist/esm/Utilities/alphaToHex.js +17 -0
- package/dist/esm/Utilities/alphaToHex.js.map +1 -0
- package/dist/esm/Utilities/alphaToHex.test.js +73 -0
- package/dist/esm/Utilities/alphaToHex.test.js.map +1 -0
- package/dist/esm/Utilities/downloadFile.js +11 -0
- package/dist/esm/Utilities/downloadFile.js.map +1 -0
- package/dist/esm/Utilities/index.js +3 -0
- package/dist/esm/Utilities/index.js.map +1 -1
- package/dist/types/Utilities/addAlphaToHex.d.ts +2 -0
- package/dist/types/Utilities/addAlphaToHex.d.ts.map +1 -0
- package/dist/types/Utilities/addAlphaToHex.test.d.ts +2 -0
- package/dist/types/Utilities/addAlphaToHex.test.d.ts.map +1 -0
- package/dist/types/Utilities/alphaToHex.d.ts +3 -0
- package/dist/types/Utilities/alphaToHex.d.ts.map +1 -0
- package/dist/types/Utilities/alphaToHex.test.d.ts +2 -0
- package/dist/types/Utilities/alphaToHex.test.d.ts.map +1 -0
- package/dist/types/Utilities/downloadFile.d.ts +2 -0
- package/dist/types/Utilities/downloadFile.d.ts.map +1 -0
- package/dist/types/Utilities/index.d.ts +3 -0
- package/dist/types/Utilities/index.d.ts.map +1 -1
- package/package.json +3 -6
- package/dist/cjs/AppObject/AppObject.js +0 -59
- package/dist/cjs/AppObject/AppObject.js.map +0 -1
- package/dist/cjs/AppObject/AppObject.test.js +0 -113
- package/dist/cjs/AppObject/AppObject.test.js.map +0 -1
- package/dist/cjs/AppObject/AppObjectComponent.js +0 -82
- package/dist/cjs/AppObject/AppObjectComponent.js.map +0 -1
- package/dist/cjs/AppObject/AppObjectComponent.test.js +0 -132
- package/dist/cjs/AppObject/AppObjectComponent.test.js.map +0 -1
- package/dist/cjs/AppObject/AppObjectController.js +0 -12
- package/dist/cjs/AppObject/AppObjectController.js.map +0 -1
- package/dist/cjs/AppObject/AppObjectEntity.js +0 -38
- package/dist/cjs/AppObject/AppObjectEntity.js.map +0 -1
- package/dist/cjs/AppObject/AppObjectEntity.test.js +0 -108
- package/dist/cjs/AppObject/AppObjectEntity.test.js.map +0 -1
- package/dist/cjs/AppObject/AppObjectEntityRepo.js +0 -56
- package/dist/cjs/AppObject/AppObjectEntityRepo.js.map +0 -1
- package/dist/cjs/AppObject/AppObjectEntityRepo.test.js +0 -149
- package/dist/cjs/AppObject/AppObjectEntityRepo.test.js.map +0 -1
- package/dist/cjs/AppObject/AppObjectPM.js +0 -40
- package/dist/cjs/AppObject/AppObjectPM.js.map +0 -1
- package/dist/cjs/AppObject/AppObjectPM.test.js +0 -103
- package/dist/cjs/AppObject/AppObjectPM.test.js.map +0 -1
- package/dist/cjs/AppObject/AppObjectRepo.js +0 -133
- package/dist/cjs/AppObject/AppObjectRepo.js.map +0 -1
- package/dist/cjs/AppObject/AppObjectRepo.test.js +0 -213
- package/dist/cjs/AppObject/AppObjectRepo.test.js.map +0 -1
- package/dist/cjs/AppObject/AppObjectUC.js +0 -12
- package/dist/cjs/AppObject/AppObjectUC.js.map +0 -1
- package/dist/cjs/AppObject/AppObjectView.js +0 -12
- package/dist/cjs/AppObject/AppObjectView.js.map +0 -1
- package/dist/cjs/AppObject/getSingletonComponent.js +0 -7
- package/dist/cjs/AppObject/getSingletonComponent.js.map +0 -1
- package/dist/cjs/AppObject/getSingletonComponent.test.js +0 -13
- package/dist/cjs/AppObject/getSingletonComponent.test.js.map +0 -1
- package/dist/cjs/AppObject/index.js +0 -27
- package/dist/cjs/AppObject/index.js.map +0 -1
- package/dist/cjs/AppObject/printAppObjectDetails.js +0 -18
- package/dist/cjs/AppObject/printAppObjectDetails.js.map +0 -1
- package/dist/cjs/Entities/MemoizedAngle.js +0 -23
- package/dist/cjs/Entities/MemoizedAngle.js.map +0 -1
- package/dist/cjs/Entities/MemoizedAngle.test.js +0 -30
- package/dist/cjs/Entities/MemoizedAngle.test.js.map +0 -1
- package/dist/cjs/Entities/MemoizedBoolean.js +0 -23
- package/dist/cjs/Entities/MemoizedBoolean.js.map +0 -1
- package/dist/cjs/Entities/MemoizedBoolean.test.js +0 -34
- package/dist/cjs/Entities/MemoizedBoolean.test.js.map +0 -1
- package/dist/cjs/Entities/MemoizedColor.js +0 -24
- package/dist/cjs/Entities/MemoizedColor.js.map +0 -1
- package/dist/cjs/Entities/MemoizedColor.test.js +0 -32
- package/dist/cjs/Entities/MemoizedColor.test.js.map +0 -1
- package/dist/cjs/Entities/MemoizedNumber.js +0 -23
- package/dist/cjs/Entities/MemoizedNumber.js.map +0 -1
- package/dist/cjs/Entities/MemoizedNumber.test.js +0 -29
- package/dist/cjs/Entities/MemoizedNumber.test.js.map +0 -1
- package/dist/cjs/Entities/MemoizedQuaternion.js +0 -24
- package/dist/cjs/Entities/MemoizedQuaternion.js.map +0 -1
- package/dist/cjs/Entities/MemoizedQuaternion.test.js +0 -32
- package/dist/cjs/Entities/MemoizedQuaternion.test.js.map +0 -1
- package/dist/cjs/Entities/MemoizedString.js +0 -23
- package/dist/cjs/Entities/MemoizedString.js.map +0 -1
- package/dist/cjs/Entities/MemoizedString.test.js +0 -29
- package/dist/cjs/Entities/MemoizedString.test.js.map +0 -1
- package/dist/cjs/Entities/MemoizedVector2.js +0 -24
- package/dist/cjs/Entities/MemoizedVector2.js.map +0 -1
- package/dist/cjs/Entities/MemoizedVector2.test.js +0 -32
- package/dist/cjs/Entities/MemoizedVector2.test.js.map +0 -1
- package/dist/cjs/Entities/MemoizedVector3.js +0 -24
- package/dist/cjs/Entities/MemoizedVector3.js.map +0 -1
- package/dist/cjs/Entities/MemoizedVector3.test.js +0 -32
- package/dist/cjs/Entities/MemoizedVector3.test.js.map +0 -1
- package/dist/cjs/Entities/ObservableEntity.js +0 -20
- package/dist/cjs/Entities/ObservableEntity.js.map +0 -1
- package/dist/cjs/Entities/ObservableEntity.test.js +0 -25
- package/dist/cjs/Entities/ObservableEntity.test.js.map +0 -1
- package/dist/cjs/Entities/ObserverList.js +0 -27
- package/dist/cjs/Entities/ObserverList.js.map +0 -1
- package/dist/cjs/Entities/ObserverList.test.js +0 -44
- package/dist/cjs/Entities/ObserverList.test.js.map +0 -1
- package/dist/cjs/Entities/RangedNumber.js +0 -36
- package/dist/cjs/Entities/RangedNumber.js.map +0 -1
- package/dist/cjs/Entities/RangedNumber.test.js +0 -96
- package/dist/cjs/Entities/RangedNumber.test.js.map +0 -1
- package/dist/cjs/Entities/index.js +0 -28
- package/dist/cjs/Entities/index.js.map +0 -1
- package/dist/cjs/Types/AppBoundary.js +0 -3
- package/dist/cjs/Types/AppBoundary.js.map +0 -1
- package/dist/cjs/Types/EaseFn.js +0 -3
- package/dist/cjs/Types/EaseFn.js.map +0 -1
- package/dist/cjs/Types/PmAdapter.js +0 -3
- package/dist/cjs/Types/PmAdapter.js.map +0 -1
- package/dist/cjs/Types/SingletonPmAdapter.js +0 -3
- package/dist/cjs/Types/SingletonPmAdapter.js.map +0 -1
- package/dist/cjs/Types/index.js +0 -21
- package/dist/cjs/Types/index.js.map +0 -1
- package/dist/cjs/Utilities/LengthConverters.js +0 -21
- package/dist/cjs/Utilities/LengthConverters.js.map +0 -1
- package/dist/cjs/Utilities/LengthConverters.test.js +0 -24
- package/dist/cjs/Utilities/LengthConverters.test.js.map +0 -1
- package/dist/cjs/Utilities/LerpNumber.js +0 -85
- package/dist/cjs/Utilities/LerpNumber.js.map +0 -1
- package/dist/cjs/Utilities/LerpNumber.test.js +0 -90
- package/dist/cjs/Utilities/LerpNumber.test.js.map +0 -1
- package/dist/cjs/Utilities/degreesToRadians.js +0 -7
- package/dist/cjs/Utilities/degreesToRadians.js.map +0 -1
- package/dist/cjs/Utilities/degreesToRadians.test.js +0 -9
- package/dist/cjs/Utilities/degreesToRadians.test.js.map +0 -1
- package/dist/cjs/Utilities/easeFunctions.js +0 -208
- package/dist/cjs/Utilities/easeFunctions.js.map +0 -1
- package/dist/cjs/Utilities/easeFunctions.test.js +0 -209
- package/dist/cjs/Utilities/easeFunctions.test.js.map +0 -1
- package/dist/cjs/Utilities/generateUniqueID.js +0 -8
- package/dist/cjs/Utilities/generateUniqueID.js.map +0 -1
- package/dist/cjs/Utilities/index.js +0 -22
- package/dist/cjs/Utilities/index.js.map +0 -1
- package/dist/cjs/Utilities/interpolateNumber.js +0 -18
- package/dist/cjs/Utilities/interpolateNumber.js.map +0 -1
- package/dist/cjs/Utilities/interpolateNumber.test.js +0 -26
- package/dist/cjs/Utilities/interpolateNumber.test.js.map +0 -1
- package/dist/cjs/ValueObjects/Angle.js +0 -47
- package/dist/cjs/ValueObjects/Angle.js.map +0 -1
- package/dist/cjs/ValueObjects/Angle.test.js +0 -28
- package/dist/cjs/ValueObjects/Angle.test.js.map +0 -1
- package/dist/cjs/ValueObjects/Color.js +0 -859
- package/dist/cjs/ValueObjects/Color.js.map +0 -1
- package/dist/cjs/ValueObjects/Color.test.js +0 -147
- package/dist/cjs/ValueObjects/Color.test.js.map +0 -1
- package/dist/cjs/ValueObjects/LineSegment2D.js +0 -72
- package/dist/cjs/ValueObjects/LineSegment2D.js.map +0 -1
- package/dist/cjs/ValueObjects/LineSegment2D.test.js +0 -102
- package/dist/cjs/ValueObjects/LineSegment2D.test.js.map +0 -1
- package/dist/cjs/ValueObjects/Matrix.js +0 -466
- package/dist/cjs/ValueObjects/Matrix.js.map +0 -1
- package/dist/cjs/ValueObjects/Matrix.test.js +0 -385
- package/dist/cjs/ValueObjects/Matrix.test.js.map +0 -1
- package/dist/cjs/ValueObjects/ParametricLine.js +0 -77
- package/dist/cjs/ValueObjects/ParametricLine.js.map +0 -1
- package/dist/cjs/ValueObjects/ParametricLine.test.js +0 -126
- package/dist/cjs/ValueObjects/ParametricLine.test.js.map +0 -1
- package/dist/cjs/ValueObjects/ParametricPlane.js +0 -65
- package/dist/cjs/ValueObjects/ParametricPlane.js.map +0 -1
- package/dist/cjs/ValueObjects/ParametricPlane.test.js +0 -101
- package/dist/cjs/ValueObjects/ParametricPlane.test.js.map +0 -1
- package/dist/cjs/ValueObjects/Quaternion.js +0 -290
- package/dist/cjs/ValueObjects/Quaternion.js.map +0 -1
- package/dist/cjs/ValueObjects/Quaternion.test.js +0 -240
- package/dist/cjs/ValueObjects/Quaternion.test.js.map +0 -1
- package/dist/cjs/ValueObjects/Rectangle.js +0 -24
- package/dist/cjs/ValueObjects/Rectangle.js.map +0 -1
- package/dist/cjs/ValueObjects/Rectangle.test.js +0 -32
- package/dist/cjs/ValueObjects/Rectangle.test.js.map +0 -1
- package/dist/cjs/ValueObjects/Vector2.js +0 -184
- package/dist/cjs/ValueObjects/Vector2.js.map +0 -1
- package/dist/cjs/ValueObjects/Vector2.test.js +0 -136
- package/dist/cjs/ValueObjects/Vector2.test.js.map +0 -1
- package/dist/cjs/ValueObjects/Vector3.js +0 -231
- package/dist/cjs/ValueObjects/Vector3.js.map +0 -1
- package/dist/cjs/ValueObjects/Vector3.test.js +0 -188
- package/dist/cjs/ValueObjects/Vector3.test.js.map +0 -1
- package/dist/cjs/ValueObjects/Version.js +0 -171
- package/dist/cjs/ValueObjects/Version.js.map +0 -1
- package/dist/cjs/ValueObjects/Version.test.js +0 -310
- package/dist/cjs/ValueObjects/Version.test.js.map +0 -1
- package/dist/cjs/ValueObjects/index.js +0 -28
- package/dist/cjs/ValueObjects/index.js.map +0 -1
- package/dist/cjs/index.js +0 -22
- package/dist/cjs/index.js.map +0 -1
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const AppObject_1 = require("./AppObject");
|
|
4
|
-
const AppObjectComponent_1 = require("./AppObjectComponent");
|
|
5
|
-
const AppObjectRepo_1 = require("./AppObjectRepo");
|
|
6
|
-
function makeTestRig() {
|
|
7
|
-
const appObjectRepo = (0, AppObjectRepo_1.makeAppObjectRepo)();
|
|
8
|
-
const appObj = (0, AppObject_1.makeAppObject)("appObj", appObjectRepo);
|
|
9
|
-
const appObjectComponent = new AppObjectComponent_1.AppObjectComponent(appObj, "aComponent");
|
|
10
|
-
return { appObjectComponent, appObj, appObjectRepo };
|
|
11
|
-
}
|
|
12
|
-
describe("App Object Component", () => {
|
|
13
|
-
it("Sets the type", () => {
|
|
14
|
-
const { appObjectComponent } = makeTestRig();
|
|
15
|
-
expect(appObjectComponent.type).toEqual("aComponent");
|
|
16
|
-
});
|
|
17
|
-
it("Stores the app object", () => {
|
|
18
|
-
const { appObjectComponent, appObj } = makeTestRig();
|
|
19
|
-
expect(appObjectComponent.appObject).toEqual(appObj);
|
|
20
|
-
});
|
|
21
|
-
it("Adds itself to the app object", () => {
|
|
22
|
-
const { appObjectComponent, appObj } = makeTestRig();
|
|
23
|
-
expect(appObj.hasComponent(appObjectComponent.type)).toEqual(true);
|
|
24
|
-
});
|
|
25
|
-
it("Removes itself from the app object when disposed", () => {
|
|
26
|
-
const { appObjectComponent, appObj } = makeTestRig();
|
|
27
|
-
appObjectComponent.dispose();
|
|
28
|
-
expect(appObj.hasComponent(appObjectComponent.type)).toEqual(false);
|
|
29
|
-
});
|
|
30
|
-
it("Returns the repo", () => {
|
|
31
|
-
const { appObjectComponent, appObjectRepo } = makeTestRig();
|
|
32
|
-
expect(appObjectComponent.appObjects).toEqual(appObjectRepo);
|
|
33
|
-
});
|
|
34
|
-
it("Forwards a warn to the App Object Repo warn", () => {
|
|
35
|
-
const { appObjectComponent, appObjectRepo } = makeTestRig();
|
|
36
|
-
appObjectRepo.submitWarning = jest.fn();
|
|
37
|
-
appObjectComponent.warn("Some warning");
|
|
38
|
-
expect(appObjectRepo.submitWarning).toBeCalledWith(`appObj/aComponent`, "Some warning");
|
|
39
|
-
});
|
|
40
|
-
it("Forwards a log to the App Object Repo log", () => {
|
|
41
|
-
const { appObjectComponent, appObjectRepo } = makeTestRig();
|
|
42
|
-
appObjectRepo.submitLog = jest.fn();
|
|
43
|
-
appObjectComponent.log("Some log");
|
|
44
|
-
expect(appObjectRepo.submitLog).toBeCalledWith(`appObj/aComponent`, "Some log");
|
|
45
|
-
});
|
|
46
|
-
it("Forwards an error to the App Object Repo error", () => {
|
|
47
|
-
const { appObjectComponent, appObjectRepo } = makeTestRig();
|
|
48
|
-
appObjectRepo.submitError = jest.fn();
|
|
49
|
-
appObjectComponent.error("Some error");
|
|
50
|
-
expect(appObjectRepo.submitError).toBeCalledWith(`appObj/aComponent`, "Some error");
|
|
51
|
-
});
|
|
52
|
-
it("Gets a singleton", () => {
|
|
53
|
-
const { appObjectComponent, appObjectRepo } = makeTestRig();
|
|
54
|
-
const mockSingleton = new MockComponent(appObjectRepo.getOrCreate("Some other"));
|
|
55
|
-
const returned = appObjectComponent.getSingleton(MockComponent.type);
|
|
56
|
-
expect(returned).toEqual(mockSingleton);
|
|
57
|
-
});
|
|
58
|
-
it("Warns by default if the singleton cannot be found", () => {
|
|
59
|
-
const { appObjectComponent, appObjectRepo } = makeTestRig();
|
|
60
|
-
appObjectComponent.warn = jest.fn();
|
|
61
|
-
appObjectRepo.submitWarning = jest.fn();
|
|
62
|
-
appObjectComponent.getSingleton(MockComponent.type);
|
|
63
|
-
expect(appObjectComponent.warn).toBeCalled();
|
|
64
|
-
});
|
|
65
|
-
it("Errors if the singleton cannot be found", () => {
|
|
66
|
-
const { appObjectComponent, appObjectRepo } = makeTestRig();
|
|
67
|
-
appObjectComponent.error = jest.fn();
|
|
68
|
-
appObjectRepo.submitWarning = jest.fn();
|
|
69
|
-
appObjectComponent.getSingleton(MockComponent.type, "ERROR");
|
|
70
|
-
expect(appObjectComponent.error).toBeCalled();
|
|
71
|
-
});
|
|
72
|
-
it("Logs if the singleton cannot be found", () => {
|
|
73
|
-
const { appObjectComponent, appObjectRepo } = makeTestRig();
|
|
74
|
-
appObjectComponent.log = jest.fn();
|
|
75
|
-
appObjectRepo.submitWarning = jest.fn();
|
|
76
|
-
appObjectComponent.getSingleton(MockComponent.type, "LOG");
|
|
77
|
-
expect(appObjectComponent.log).toBeCalled();
|
|
78
|
-
});
|
|
79
|
-
it("Warns if the singleton cannot be found", () => {
|
|
80
|
-
const { appObjectComponent, appObjectRepo } = makeTestRig();
|
|
81
|
-
appObjectComponent.warn = jest.fn();
|
|
82
|
-
appObjectRepo.submitWarning = jest.fn();
|
|
83
|
-
appObjectComponent.getSingleton(MockComponent.type, "WARN");
|
|
84
|
-
expect(appObjectComponent.warn).toBeCalled();
|
|
85
|
-
});
|
|
86
|
-
it("Gets a cached singleton", () => {
|
|
87
|
-
const { appObjectComponent, appObjectRepo } = makeTestRig();
|
|
88
|
-
const mockSingleton = new MockComponent(appObjectRepo.getOrCreate("Some other"));
|
|
89
|
-
const returned = appObjectComponent.getCachedSingleton(MockComponent.type);
|
|
90
|
-
expect(returned).toEqual(mockSingleton);
|
|
91
|
-
});
|
|
92
|
-
it("Gets a cached singleton from the local cache", () => {
|
|
93
|
-
const { appObjectComponent, appObjectRepo } = makeTestRig();
|
|
94
|
-
const spy = jest.spyOn(appObjectRepo, "getSingleton");
|
|
95
|
-
new MockComponent(appObjectRepo.getOrCreate("Some other"));
|
|
96
|
-
appObjectComponent.getCachedSingleton(MockComponent.type);
|
|
97
|
-
appObjectComponent.getCachedSingleton(MockComponent.type);
|
|
98
|
-
appObjectComponent.getCachedSingleton(MockComponent.type);
|
|
99
|
-
appObjectComponent.getCachedSingleton(MockComponent.type);
|
|
100
|
-
expect(spy).toBeCalledTimes(1);
|
|
101
|
-
});
|
|
102
|
-
it("Warns if the cached singleton cannot be found", () => {
|
|
103
|
-
const { appObjectComponent, appObjectRepo } = makeTestRig();
|
|
104
|
-
appObjectComponent.warn = jest.fn();
|
|
105
|
-
appObjectRepo.submitWarning = jest.fn();
|
|
106
|
-
appObjectComponent.getCachedSingleton(MockComponent.type);
|
|
107
|
-
expect(appObjectComponent.warn).toBeCalled();
|
|
108
|
-
});
|
|
109
|
-
it("Gets a local component", () => {
|
|
110
|
-
const { appObjectComponent, appObjectRepo, appObj } = makeTestRig();
|
|
111
|
-
const b1 = new MockComponent(appObj);
|
|
112
|
-
new MockComponent(appObjectRepo.getOrCreate("otherAO"));
|
|
113
|
-
expect(appObjectComponent.getCachedLocalComponent(MockComponent.type)).toEqual(b1);
|
|
114
|
-
});
|
|
115
|
-
it("Caches the local component", () => {
|
|
116
|
-
const { appObjectComponent, appObj } = makeTestRig();
|
|
117
|
-
const spy = jest.spyOn(appObj, "getComponent");
|
|
118
|
-
new MockComponent(appObj);
|
|
119
|
-
appObjectComponent.getCachedLocalComponent(MockComponent.type);
|
|
120
|
-
appObjectComponent.getCachedLocalComponent(MockComponent.type);
|
|
121
|
-
appObjectComponent.getCachedLocalComponent(MockComponent.type);
|
|
122
|
-
appObjectComponent.getCachedLocalComponent(MockComponent.type);
|
|
123
|
-
expect(spy).toBeCalledTimes(1);
|
|
124
|
-
});
|
|
125
|
-
});
|
|
126
|
-
class MockComponent extends AppObjectComponent_1.AppObjectComponent {
|
|
127
|
-
constructor(appObject) {
|
|
128
|
-
super(appObject, MockComponent.type);
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
MockComponent.type = "MockComponent";
|
|
132
|
-
//# sourceMappingURL=AppObjectComponent.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AppObjectComponent.test.js","sourceRoot":"","sources":["../../../src/AppObject/AppObjectComponent.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, makeAppObject } from \"./AppObject\";\r\nimport { AppObjectComponent } from \"./AppObjectComponent\";\r\nimport { makeAppObjectRepo } from \"./AppObjectRepo\";\r\n\r\nfunction makeTestRig() {\r\n const appObjectRepo = makeAppObjectRepo();\r\n const appObj = makeAppObject(\"appObj\", appObjectRepo);\r\n const appObjectComponent = new AppObjectComponent(appObj, \"aComponent\");\r\n\r\n return { appObjectComponent, appObj, appObjectRepo };\r\n}\r\n\r\ndescribe(\"App Object Component\", () => {\r\n it(\"Sets the type\", () => {\r\n const { appObjectComponent } = makeTestRig();\r\n expect(appObjectComponent.type).toEqual(\"aComponent\");\r\n });\r\n\r\n it(\"Stores the app object\", () => {\r\n const { appObjectComponent, appObj } = makeTestRig();\r\n expect(appObjectComponent.appObject).toEqual(appObj);\r\n });\r\n\r\n it(\"Adds itself to the app object\", () => {\r\n const { appObjectComponent, appObj } = makeTestRig();\r\n\r\n expect(appObj.hasComponent(appObjectComponent.type)).toEqual(true);\r\n });\r\n\r\n it(\"Removes itself from the app object when disposed\", () => {\r\n const { appObjectComponent, appObj } = makeTestRig();\r\n\r\n appObjectComponent.dispose();\r\n\r\n expect(appObj.hasComponent(appObjectComponent.type)).toEqual(false);\r\n });\r\n\r\n it(\"Returns the repo\", () => {\r\n const { appObjectComponent, appObjectRepo } = makeTestRig();\r\n expect(appObjectComponent.appObjects).toEqual(appObjectRepo);\r\n });\r\n\r\n it(\"Forwards a warn to the App Object Repo warn\", () => {\r\n const { appObjectComponent, appObjectRepo } = makeTestRig();\r\n appObjectRepo.submitWarning = jest.fn();\r\n\r\n appObjectComponent.warn(\"Some warning\");\r\n\r\n expect(appObjectRepo.submitWarning).toBeCalledWith(\r\n `appObj/aComponent`,\r\n \"Some warning\"\r\n );\r\n });\r\n\r\n it(\"Forwards a log to the App Object Repo log\", () => {\r\n const { appObjectComponent, appObjectRepo } = makeTestRig();\r\n appObjectRepo.submitLog = jest.fn();\r\n\r\n appObjectComponent.log(\"Some log\");\r\n\r\n expect(appObjectRepo.submitLog).toBeCalledWith(\r\n `appObj/aComponent`,\r\n \"Some log\"\r\n );\r\n });\r\n\r\n it(\"Forwards an error to the App Object Repo error\", () => {\r\n const { appObjectComponent, appObjectRepo } = makeTestRig();\r\n appObjectRepo.submitError = jest.fn();\r\n\r\n appObjectComponent.error(\"Some error\");\r\n\r\n expect(appObjectRepo.submitError).toBeCalledWith(\r\n `appObj/aComponent`,\r\n \"Some error\"\r\n );\r\n });\r\n\r\n it(\"Gets a singleton\", () => {\r\n const { appObjectComponent, appObjectRepo } = makeTestRig();\r\n const mockSingleton = new MockComponent(\r\n appObjectRepo.getOrCreate(\"Some other\")\r\n );\r\n\r\n const returned = appObjectComponent.getSingleton<MockComponent>(\r\n MockComponent.type\r\n );\r\n\r\n expect(returned).toEqual(mockSingleton);\r\n });\r\n\r\n it(\"Warns by default if the singleton cannot be found\", () => {\r\n const { appObjectComponent, appObjectRepo } = makeTestRig();\r\n\r\n appObjectComponent.warn = jest.fn();\r\n appObjectRepo.submitWarning = jest.fn();\r\n\r\n appObjectComponent.getSingleton<MockComponent>(MockComponent.type);\r\n\r\n expect(appObjectComponent.warn).toBeCalled();\r\n });\r\n\r\n it(\"Errors if the singleton cannot be found\", () => {\r\n const { appObjectComponent, appObjectRepo } = makeTestRig();\r\n\r\n appObjectComponent.error = jest.fn();\r\n appObjectRepo.submitWarning = jest.fn();\r\n\r\n appObjectComponent.getSingleton<MockComponent>(MockComponent.type, \"ERROR\");\r\n\r\n expect(appObjectComponent.error).toBeCalled();\r\n });\r\n\r\n it(\"Logs if the singleton cannot be found\", () => {\r\n const { appObjectComponent, appObjectRepo } = makeTestRig();\r\n\r\n appObjectComponent.log = jest.fn();\r\n appObjectRepo.submitWarning = jest.fn();\r\n\r\n appObjectComponent.getSingleton<MockComponent>(MockComponent.type, \"LOG\");\r\n\r\n expect(appObjectComponent.log).toBeCalled();\r\n });\r\n\r\n it(\"Warns if the singleton cannot be found\", () => {\r\n const { appObjectComponent, appObjectRepo } = makeTestRig();\r\n\r\n appObjectComponent.warn = jest.fn();\r\n appObjectRepo.submitWarning = jest.fn();\r\n\r\n appObjectComponent.getSingleton<MockComponent>(MockComponent.type, \"WARN\");\r\n\r\n expect(appObjectComponent.warn).toBeCalled();\r\n });\r\n\r\n it(\"Gets a cached singleton\", () => {\r\n const { appObjectComponent, appObjectRepo } = makeTestRig();\r\n const mockSingleton = new MockComponent(\r\n appObjectRepo.getOrCreate(\"Some other\")\r\n );\r\n\r\n const returned = appObjectComponent.getCachedSingleton<MockComponent>(\r\n MockComponent.type\r\n );\r\n\r\n expect(returned).toEqual(mockSingleton);\r\n });\r\n\r\n it(\"Gets a cached singleton from the local cache\", () => {\r\n const { appObjectComponent, appObjectRepo } = makeTestRig();\r\n\r\n const spy = jest.spyOn(appObjectRepo, \"getSingleton\");\r\n\r\n new MockComponent(appObjectRepo.getOrCreate(\"Some other\"));\r\n\r\n appObjectComponent.getCachedSingleton<MockComponent>(MockComponent.type);\r\n appObjectComponent.getCachedSingleton<MockComponent>(MockComponent.type);\r\n appObjectComponent.getCachedSingleton<MockComponent>(MockComponent.type);\r\n appObjectComponent.getCachedSingleton<MockComponent>(MockComponent.type);\r\n\r\n expect(spy).toBeCalledTimes(1);\r\n });\r\n\r\n it(\"Warns if the cached singleton cannot be found\", () => {\r\n const { appObjectComponent, appObjectRepo } = makeTestRig();\r\n\r\n appObjectComponent.warn = jest.fn();\r\n appObjectRepo.submitWarning = jest.fn();\r\n\r\n appObjectComponent.getCachedSingleton<MockComponent>(MockComponent.type);\r\n\r\n expect(appObjectComponent.warn).toBeCalled();\r\n });\r\n\r\n it(\"Gets a local component\", () => {\r\n const { appObjectComponent, appObjectRepo, appObj } = makeTestRig();\r\n\r\n const b1 = new MockComponent(appObj);\r\n\r\n new MockComponent(appObjectRepo.getOrCreate(\"otherAO\"));\r\n\r\n expect(\r\n appObjectComponent.getCachedLocalComponent<MockComponent>(\r\n MockComponent.type\r\n )\r\n ).toEqual(b1);\r\n });\r\n\r\n it(\"Caches the local component\", () => {\r\n const { appObjectComponent, appObj } = makeTestRig();\r\n\r\n const spy = jest.spyOn(appObj, \"getComponent\");\r\n\r\n new MockComponent(appObj);\r\n\r\n appObjectComponent.getCachedLocalComponent<MockComponent>(\r\n MockComponent.type\r\n );\r\n appObjectComponent.getCachedLocalComponent<MockComponent>(\r\n MockComponent.type\r\n );\r\n appObjectComponent.getCachedLocalComponent<MockComponent>(\r\n MockComponent.type\r\n );\r\n appObjectComponent.getCachedLocalComponent<MockComponent>(\r\n MockComponent.type\r\n );\r\n\r\n expect(spy).toBeCalledTimes(1);\r\n });\r\n});\r\n\r\nclass MockComponent extends AppObjectComponent {\r\n static type = \"MockComponent\";\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, MockComponent.type);\r\n }\r\n}\r\n"]}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AppObjectController = void 0;
|
|
4
|
-
const AppObjectComponent_1 = require("./AppObjectComponent");
|
|
5
|
-
class AppObjectController extends AppObjectComponent_1.AppObjectComponent {
|
|
6
|
-
constructor() {
|
|
7
|
-
super(...arguments);
|
|
8
|
-
this.componentType = AppObjectComponent_1.AppObjectComponentType.CONTROLLER;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
exports.AppObjectController = AppObjectController;
|
|
12
|
-
//# sourceMappingURL=AppObjectController.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AppObjectController.js","sourceRoot":"","sources":["../../../src/AppObject/AppObjectController.ts"],"names":[],"mappings":";;;AAAA,6DAG8B;AAE9B,MAAa,mBAAoB,SAAQ,uCAAkB;IAA3D;;QACW,kBAAa,GAAG,2CAAsB,CAAC,UAAU,CAAC;IAC7D,CAAC;CAAA;AAFD,kDAEC","sourcesContent":["import {\r\n AppObjectComponent,\r\n AppObjectComponentType,\r\n} from \"./AppObjectComponent\";\r\n\r\nexport class AppObjectController extends AppObjectComponent {\r\n readonly componentType = AppObjectComponentType.CONTROLLER;\r\n}\r\n"]}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AppObjectEntity = void 0;
|
|
4
|
-
const Entities_1 = require("../Entities");
|
|
5
|
-
const AppObjectComponent_1 = require("./AppObjectComponent");
|
|
6
|
-
class AppObjectEntity extends AppObjectComponent_1.AppObjectComponent {
|
|
7
|
-
dispose() {
|
|
8
|
-
this.removeChangeObserver(this.appObject.notify);
|
|
9
|
-
this.onDisposeObserverList.notify();
|
|
10
|
-
this.onChangeObserverList.clear();
|
|
11
|
-
this.onDisposeObserverList.clear();
|
|
12
|
-
super.dispose();
|
|
13
|
-
}
|
|
14
|
-
constructor(appObject, type) {
|
|
15
|
-
super(appObject, type);
|
|
16
|
-
this.componentType = AppObjectComponent_1.AppObjectComponentType.ENTITY;
|
|
17
|
-
this.onDisposeObserverList = new Entities_1.ObserverList();
|
|
18
|
-
this.addOnDisposeObserver = (observer) => {
|
|
19
|
-
this.onDisposeObserverList.add(observer);
|
|
20
|
-
};
|
|
21
|
-
this.removeOnDisposeObserver = (observer) => {
|
|
22
|
-
this.onDisposeObserverList.remove(observer);
|
|
23
|
-
};
|
|
24
|
-
this.onChangeObserverList = new Entities_1.ObserverList();
|
|
25
|
-
this.addChangeObserver = (observer) => {
|
|
26
|
-
this.onChangeObserverList.add(observer);
|
|
27
|
-
};
|
|
28
|
-
this.removeChangeObserver = (observer) => {
|
|
29
|
-
this.onChangeObserverList.remove(observer);
|
|
30
|
-
};
|
|
31
|
-
this.notifyOnChange = () => {
|
|
32
|
-
this.onChangeObserverList.notify();
|
|
33
|
-
};
|
|
34
|
-
this.addChangeObserver(appObject.notify);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
exports.AppObjectEntity = AppObjectEntity;
|
|
38
|
-
//# sourceMappingURL=AppObjectEntity.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AppObjectEntity.js","sourceRoot":"","sources":["../../../src/AppObject/AppObjectEntity.ts"],"names":[],"mappings":";;;AAAA,0CAA2C;AAE3C,6DAAkF;AAIlF,MAAa,eAAgB,SAAQ,uCAAkB;IAuBrD,OAAO;QACL,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEjD,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC;QACpC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;QAEnC,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC;IAED,YAAY,SAAoB,EAAE,IAAY;QAC5C,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;QAjCf,kBAAa,GAAG,2CAAsB,CAAC,MAAM,CAAC;QAE/C,0BAAqB,GAAG,IAAI,uBAAY,EAAQ,CAAC;QACzD,yBAAoB,GAAG,CAAC,QAAiC,EAAE,EAAE;YAC3D,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC,CAAC;QACF,4BAAuB,GAAG,CAAC,QAAiC,EAAQ,EAAE;YACpE,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC,CAAC;QAEM,yBAAoB,GAAG,IAAI,uBAAY,EAAQ,CAAC;QACxD,sBAAiB,GAAG,CAAC,QAAiC,EAAQ,EAAE;YAC9D,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC,CAAC;QACF,yBAAoB,GAAG,CAAC,QAAiC,EAAQ,EAAE;YACjE,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC,CAAC;QAEF,mBAAc,GAAG,GAAG,EAAE;YACpB,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC;QACrC,CAAC,CAAC;QAeA,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;CACF;AAtCD,0CAsCC","sourcesContent":["import { ObserverList } from \"../Entities\";\r\nimport { AppObject } from \"./AppObject\";\r\nimport { AppObjectComponent, AppObjectComponentType } from \"./AppObjectComponent\";\r\n\r\nexport type AppObjectEntityObserver = () => void;\r\n\r\nexport class AppObjectEntity extends AppObjectComponent {\r\n readonly componentType = AppObjectComponentType.ENTITY;\r\n \r\n private onDisposeObserverList = new ObserverList<void>();\r\n addOnDisposeObserver = (observer: AppObjectEntityObserver) => {\r\n this.onDisposeObserverList.add(observer);\r\n };\r\n removeOnDisposeObserver = (observer: AppObjectEntityObserver): void => {\r\n this.onDisposeObserverList.remove(observer);\r\n };\r\n\r\n private onChangeObserverList = new ObserverList<void>();\r\n addChangeObserver = (observer: AppObjectEntityObserver): void => {\r\n this.onChangeObserverList.add(observer);\r\n };\r\n removeChangeObserver = (observer: AppObjectEntityObserver): void => {\r\n this.onChangeObserverList.remove(observer);\r\n };\r\n\r\n notifyOnChange = () => {\r\n this.onChangeObserverList.notify();\r\n };\r\n\r\n dispose() {\r\n this.removeChangeObserver(this.appObject.notify);\r\n\r\n this.onDisposeObserverList.notify();\r\n this.onChangeObserverList.clear();\r\n this.onDisposeObserverList.clear();\r\n\r\n super.dispose();\r\n }\r\n\r\n constructor(appObject: AppObject, type: string) {\r\n super(appObject, type)\r\n \r\n this.addChangeObserver(appObject.notify);\r\n }\r\n}\r\n"]}
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const AppObject_1 = require("./AppObject");
|
|
4
|
-
const AppObjectComponent_1 = require("./AppObjectComponent");
|
|
5
|
-
const AppObjectEntity_1 = require("./AppObjectEntity");
|
|
6
|
-
const AppObjectRepo_1 = require("./AppObjectRepo");
|
|
7
|
-
class MockEntity extends AppObjectEntity_1.AppObjectEntity {
|
|
8
|
-
constructor(appObject) {
|
|
9
|
-
super(appObject, MockEntity.type);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
MockEntity.type = "mockEntity";
|
|
13
|
-
function makeTestRig() {
|
|
14
|
-
const appObjectRepo = (0, AppObjectRepo_1.makeAppObjectRepo)();
|
|
15
|
-
const appObj = (0, AppObject_1.makeAppObject)("appObj", appObjectRepo);
|
|
16
|
-
const appObjectEntity = new MockEntity(appObj);
|
|
17
|
-
const onChangeObserver = jest.fn();
|
|
18
|
-
appObjectEntity.addChangeObserver(onChangeObserver);
|
|
19
|
-
return { appObjectEntity, onChangeObserver, appObj, appObjectRepo };
|
|
20
|
-
}
|
|
21
|
-
describe("Abstract Observable Entity", () => {
|
|
22
|
-
it("Sets the type", () => {
|
|
23
|
-
const { appObjectEntity } = makeTestRig();
|
|
24
|
-
expect(appObjectEntity.type).toEqual("mockEntity");
|
|
25
|
-
});
|
|
26
|
-
it("Notifies on change", () => {
|
|
27
|
-
const { onChangeObserver, appObjectEntity } = makeTestRig();
|
|
28
|
-
appObjectEntity.notifyOnChange();
|
|
29
|
-
expect(onChangeObserver).toBeCalled();
|
|
30
|
-
});
|
|
31
|
-
it("Removes an on change onChangeObserver", () => {
|
|
32
|
-
const { onChangeObserver, appObjectEntity } = makeTestRig();
|
|
33
|
-
appObjectEntity.removeChangeObserver(onChangeObserver);
|
|
34
|
-
appObjectEntity.notifyOnChange();
|
|
35
|
-
expect(onChangeObserver).not.toBeCalled();
|
|
36
|
-
});
|
|
37
|
-
it("Notifies when disposed", () => {
|
|
38
|
-
const { appObjectEntity } = makeTestRig();
|
|
39
|
-
const disposeObserver = jest.fn();
|
|
40
|
-
appObjectEntity.addOnDisposeObserver(disposeObserver);
|
|
41
|
-
appObjectEntity.dispose();
|
|
42
|
-
expect(disposeObserver).toBeCalled();
|
|
43
|
-
});
|
|
44
|
-
it("Removes a dispose onChangeObserver", () => {
|
|
45
|
-
const { appObjectEntity } = makeTestRig();
|
|
46
|
-
const disposeObserver = jest.fn();
|
|
47
|
-
appObjectEntity.addOnDisposeObserver(disposeObserver);
|
|
48
|
-
appObjectEntity.removeOnDisposeObserver(disposeObserver);
|
|
49
|
-
appObjectEntity.dispose();
|
|
50
|
-
expect(disposeObserver).not.toBeCalled();
|
|
51
|
-
});
|
|
52
|
-
it("Clears all observers when disposed", () => {
|
|
53
|
-
const { onChangeObserver, appObjectEntity } = makeTestRig();
|
|
54
|
-
const disposeObserver = jest.fn();
|
|
55
|
-
appObjectEntity.addOnDisposeObserver(disposeObserver);
|
|
56
|
-
appObjectEntity.dispose();
|
|
57
|
-
disposeObserver.mockClear();
|
|
58
|
-
onChangeObserver.mockClear();
|
|
59
|
-
appObjectEntity.notifyOnChange();
|
|
60
|
-
appObjectEntity.dispose();
|
|
61
|
-
expect(onChangeObserver).not.toBeCalled();
|
|
62
|
-
expect(disposeObserver).not.toBeCalled();
|
|
63
|
-
});
|
|
64
|
-
it("Stores the app object", () => {
|
|
65
|
-
const { appObjectEntity, appObj } = makeTestRig();
|
|
66
|
-
expect(appObjectEntity.appObject).toEqual(appObj);
|
|
67
|
-
});
|
|
68
|
-
it("Adds itself to the app object", () => {
|
|
69
|
-
const { appObjectEntity, appObj } = makeTestRig();
|
|
70
|
-
expect(appObj.hasComponent(appObjectEntity.type)).toEqual(true);
|
|
71
|
-
});
|
|
72
|
-
it("Removes itself from the app object when disposed", () => {
|
|
73
|
-
const { appObjectEntity, appObj } = makeTestRig();
|
|
74
|
-
appObjectEntity.dispose();
|
|
75
|
-
expect(appObj.hasComponent(appObjectEntity.type)).toEqual(false);
|
|
76
|
-
});
|
|
77
|
-
it("Forwards notifications to the App Object observers", () => {
|
|
78
|
-
const { appObjectEntity, appObj } = makeTestRig();
|
|
79
|
-
const appObjObserver = jest.fn();
|
|
80
|
-
appObj.addObserver(appObjObserver);
|
|
81
|
-
appObjectEntity.notifyOnChange();
|
|
82
|
-
expect(appObjObserver).toBeCalled();
|
|
83
|
-
});
|
|
84
|
-
it("Stops forwarding notifications to the App Object observers when disposed", () => {
|
|
85
|
-
const { appObjectEntity, appObj } = makeTestRig();
|
|
86
|
-
const appObjObserver = jest.fn();
|
|
87
|
-
appObj.addObserver(appObjObserver);
|
|
88
|
-
appObjectEntity.dispose();
|
|
89
|
-
appObjObserver.mockClear();
|
|
90
|
-
appObjectEntity.notifyOnChange();
|
|
91
|
-
expect(appObjObserver).not.toBeCalled();
|
|
92
|
-
});
|
|
93
|
-
it("Returns the repo", () => {
|
|
94
|
-
const { appObjectEntity, appObjectRepo } = makeTestRig();
|
|
95
|
-
expect(appObjectEntity.appObjects).toEqual(appObjectRepo);
|
|
96
|
-
});
|
|
97
|
-
it("Forwards a warn to the App Object Repo warn", () => {
|
|
98
|
-
const { appObjectEntity, appObjectRepo } = makeTestRig();
|
|
99
|
-
appObjectRepo.submitWarning = jest.fn();
|
|
100
|
-
appObjectEntity.warn("Some warning");
|
|
101
|
-
expect(appObjectRepo.submitWarning).toBeCalledWith(`appObj/mockEntity`, "Some warning");
|
|
102
|
-
});
|
|
103
|
-
it("Sets Component type to Entity", () => {
|
|
104
|
-
const { appObjectEntity } = makeTestRig();
|
|
105
|
-
expect(appObjectEntity.componentType).toEqual(AppObjectComponent_1.AppObjectComponentType.ENTITY);
|
|
106
|
-
});
|
|
107
|
-
});
|
|
108
|
-
//# sourceMappingURL=AppObjectEntity.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AppObjectEntity.test.js","sourceRoot":"","sources":["../../../src/AppObject/AppObjectEntity.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, makeAppObject } from \"./AppObject\";\r\nimport { AppObjectComponentType } from \"./AppObjectComponent\";\r\nimport { AppObjectEntity } from \"./AppObjectEntity\";\r\nimport { makeAppObjectRepo } from \"./AppObjectRepo\";\r\n\r\nclass MockEntity extends AppObjectEntity {\r\n static type = \"mockEntity\";\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, MockEntity.type);\r\n }\r\n}\r\n\r\nfunction makeTestRig() {\r\n const appObjectRepo = makeAppObjectRepo();\r\n const appObj = makeAppObject(\"appObj\", appObjectRepo);\r\n const appObjectEntity = new MockEntity(appObj);\r\n\r\n const onChangeObserver = jest.fn();\r\n appObjectEntity.addChangeObserver(onChangeObserver);\r\n\r\n return { appObjectEntity, onChangeObserver, appObj, appObjectRepo };\r\n}\r\n\r\ndescribe(\"Abstract Observable Entity\", () => {\r\n it(\"Sets the type\", () => {\r\n const { appObjectEntity } = makeTestRig();\r\n expect(appObjectEntity.type).toEqual(\"mockEntity\");\r\n });\r\n\r\n it(\"Notifies on change\", () => {\r\n const { onChangeObserver, appObjectEntity } = makeTestRig();\r\n appObjectEntity.notifyOnChange();\r\n\r\n expect(onChangeObserver).toBeCalled();\r\n });\r\n\r\n it(\"Removes an on change onChangeObserver\", () => {\r\n const { onChangeObserver, appObjectEntity } = makeTestRig();\r\n appObjectEntity.removeChangeObserver(onChangeObserver);\r\n appObjectEntity.notifyOnChange();\r\n\r\n expect(onChangeObserver).not.toBeCalled();\r\n });\r\n\r\n it(\"Notifies when disposed\", () => {\r\n const { appObjectEntity } = makeTestRig();\r\n const disposeObserver = jest.fn();\r\n appObjectEntity.addOnDisposeObserver(disposeObserver);\r\n\r\n appObjectEntity.dispose();\r\n\r\n expect(disposeObserver).toBeCalled();\r\n });\r\n\r\n it(\"Removes a dispose onChangeObserver\", () => {\r\n const { appObjectEntity } = makeTestRig();\r\n const disposeObserver = jest.fn();\r\n appObjectEntity.addOnDisposeObserver(disposeObserver);\r\n appObjectEntity.removeOnDisposeObserver(disposeObserver);\r\n\r\n appObjectEntity.dispose();\r\n expect(disposeObserver).not.toBeCalled();\r\n });\r\n\r\n it(\"Clears all observers when disposed\", () => {\r\n const { onChangeObserver, appObjectEntity } = makeTestRig();\r\n const disposeObserver = jest.fn();\r\n appObjectEntity.addOnDisposeObserver(disposeObserver);\r\n\r\n appObjectEntity.dispose();\r\n\r\n disposeObserver.mockClear();\r\n onChangeObserver.mockClear();\r\n\r\n appObjectEntity.notifyOnChange();\r\n appObjectEntity.dispose();\r\n\r\n expect(onChangeObserver).not.toBeCalled();\r\n expect(disposeObserver).not.toBeCalled();\r\n });\r\n\r\n it(\"Stores the app object\", () => {\r\n const { appObjectEntity, appObj } = makeTestRig();\r\n expect(appObjectEntity.appObject).toEqual(appObj);\r\n });\r\n\r\n it(\"Adds itself to the app object\", () => {\r\n const { appObjectEntity, appObj } = makeTestRig();\r\n\r\n expect(appObj.hasComponent(appObjectEntity.type)).toEqual(true);\r\n });\r\n\r\n it(\"Removes itself from the app object when disposed\", () => {\r\n const { appObjectEntity, appObj } = makeTestRig();\r\n\r\n appObjectEntity.dispose();\r\n\r\n expect(appObj.hasComponent(appObjectEntity.type)).toEqual(false);\r\n });\r\n\r\n it(\"Forwards notifications to the App Object observers\", () => {\r\n const { appObjectEntity, appObj } = makeTestRig();\r\n\r\n const appObjObserver = jest.fn();\r\n appObj.addObserver(appObjObserver);\r\n\r\n appObjectEntity.notifyOnChange();\r\n\r\n expect(appObjObserver).toBeCalled();\r\n });\r\n\r\n it(\"Stops forwarding notifications to the App Object observers when disposed\", () => {\r\n const { appObjectEntity, appObj } = makeTestRig();\r\n\r\n const appObjObserver = jest.fn();\r\n appObj.addObserver(appObjObserver);\r\n\r\n appObjectEntity.dispose();\r\n appObjObserver.mockClear();\r\n\r\n appObjectEntity.notifyOnChange();\r\n\r\n expect(appObjObserver).not.toBeCalled();\r\n });\r\n\r\n it(\"Returns the repo\", () => {\r\n const { appObjectEntity, appObjectRepo } = makeTestRig();\r\n expect(appObjectEntity.appObjects).toEqual(appObjectRepo);\r\n });\r\n\r\n it(\"Forwards a warn to the App Object Repo warn\", () => {\r\n const { appObjectEntity, appObjectRepo } = makeTestRig();\r\n appObjectRepo.submitWarning = jest.fn();\r\n\r\n appObjectEntity.warn(\"Some warning\");\r\n\r\n expect(appObjectRepo.submitWarning).toBeCalledWith(\r\n `appObj/mockEntity`,\r\n \"Some warning\"\r\n );\r\n });\r\n\r\n it(\"Sets Component type to Entity\", () => {\r\n const { appObjectEntity } = makeTestRig();\r\n\r\n expect(appObjectEntity.componentType).toEqual(\r\n AppObjectComponentType.ENTITY\r\n );\r\n });\r\n});\r\n"]}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AppObjectEntityRepo = void 0;
|
|
4
|
-
const Entities_1 = require("../Entities");
|
|
5
|
-
const AppObjectEntity_1 = require("./AppObjectEntity");
|
|
6
|
-
class AppObjectEntityRepo extends AppObjectEntity_1.AppObjectEntity {
|
|
7
|
-
constructor() {
|
|
8
|
-
super(...arguments);
|
|
9
|
-
this.entityLookup = new Map();
|
|
10
|
-
this.onEntityAddedObservers = new Entities_1.ObserverList();
|
|
11
|
-
this.addEntityAddedObserver = (observer) => {
|
|
12
|
-
this.onEntityAddedObservers.add(observer);
|
|
13
|
-
};
|
|
14
|
-
this.removeEntityAddedObserver = (observer) => {
|
|
15
|
-
this.onEntityAddedObservers.remove(observer);
|
|
16
|
-
};
|
|
17
|
-
this.onEntityRemovedObservers = new Entities_1.ObserverList();
|
|
18
|
-
this.addEntityRemovedObserver = (observer) => {
|
|
19
|
-
this.onEntityRemovedObservers.add(observer);
|
|
20
|
-
};
|
|
21
|
-
this.removeEntityRemovedObserver = (observer) => {
|
|
22
|
-
this.onEntityRemovedObservers.remove(observer);
|
|
23
|
-
};
|
|
24
|
-
this.hasForAppObject = (appObjectID) => {
|
|
25
|
-
return this.entityLookup.has(appObjectID);
|
|
26
|
-
};
|
|
27
|
-
this.removeForAppObject = (id) => {
|
|
28
|
-
const existing = this.entityLookup.get(id);
|
|
29
|
-
if (!existing)
|
|
30
|
-
return;
|
|
31
|
-
this.entityLookup.delete(id);
|
|
32
|
-
existing.removeChangeObserver(this.notifyOnChange);
|
|
33
|
-
this.notifyOnChange();
|
|
34
|
-
this.onEntityRemovedObservers.notify(existing);
|
|
35
|
-
};
|
|
36
|
-
this.getForAppObject = (appObjectID) => {
|
|
37
|
-
return this.entityLookup.get(appObjectID);
|
|
38
|
-
};
|
|
39
|
-
this.getAll = () => {
|
|
40
|
-
return Array.from(this.entityLookup.values());
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
add(entity) {
|
|
44
|
-
const existing = this.entityLookup.get(entity.appObject.id);
|
|
45
|
-
if (existing) {
|
|
46
|
-
existing.removeChangeObserver(this.notifyOnChange);
|
|
47
|
-
}
|
|
48
|
-
this.entityLookup.set(entity.appObject.id, entity);
|
|
49
|
-
entity.addChangeObserver(this.notifyOnChange);
|
|
50
|
-
this.notifyOnChange();
|
|
51
|
-
this.onEntityAddedObservers.notify(entity);
|
|
52
|
-
}
|
|
53
|
-
;
|
|
54
|
-
}
|
|
55
|
-
exports.AppObjectEntityRepo = AppObjectEntityRepo;
|
|
56
|
-
//# sourceMappingURL=AppObjectEntityRepo.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AppObjectEntityRepo.js","sourceRoot":"","sources":["../../../src/AppObject/AppObjectEntityRepo.ts"],"names":[],"mappings":";;;AAAA,0CAA2C;AAC3C,uDAAoD;AAEpD,MAAa,mBAEX,SAAQ,iCAAe;IAFzB;;QAIU,iBAAY,GAAG,IAAI,GAAG,EAAa,CAAC;QAEpC,2BAAsB,GAAG,IAAI,uBAAY,EAAK,CAAC;QACvD,2BAAsB,GAAG,CAAC,QAAkC,EAAE,EAAE;YAC9D,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC,CAAC;QACF,8BAAyB,GAAG,CAAC,QAAkC,EAAQ,EAAE;YACvE,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC,CAAC;QAEM,6BAAwB,GAAG,IAAI,uBAAY,EAAK,CAAC;QACzD,6BAAwB,GAAG,CAAC,QAAoC,EAAE,EAAE;YAClE,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC,CAAC;QACF,gCAA2B,GAAG,CAC5B,QAAoC,EAC9B,EAAE;YACR,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC,CAAC;QAEF,oBAAe,GAAG,CAAC,WAAmB,EAAW,EAAE;YACjD,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC5C,CAAC,CAAC;QAcF,uBAAkB,GAAG,CAAC,EAAU,EAAE,EAAE;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC3C,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAEtB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC7B,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACnD,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC,CAAC;QAEF,oBAAe,GAAG,CAAC,WAAmB,EAAiB,EAAE;YACvD,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC5C,CAAC,CAAC;QAEF,WAAM,GAAG,GAAQ,EAAE;YACjB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;QAChD,CAAC,CAAC;IACJ,CAAC;IA7BC,GAAG,CAAC,MAAS;QACX,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC5D,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACnD,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC9C,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAAA,CAAC;CAmBH;AAzDD,kDAyDC","sourcesContent":["import { ObserverList } from \"../Entities\";\r\nimport { AppObjectEntity } from \"./AppObjectEntity\";\r\n\r\nexport class AppObjectEntityRepo<\r\n T extends AppObjectEntity\r\n> extends AppObjectEntity {\r\n\r\n private entityLookup = new Map<string, T>();\r\n\r\n private onEntityAddedObservers = new ObserverList<T>();\r\n addEntityAddedObserver = (observer: (addedEntity: T) => void) => {\r\n this.onEntityAddedObservers.add(observer);\r\n };\r\n removeEntityAddedObserver = (observer: (addedEntity: T) => void): void => {\r\n this.onEntityAddedObservers.remove(observer);\r\n };\r\n\r\n private onEntityRemovedObservers = new ObserverList<T>();\r\n addEntityRemovedObserver = (observer: (removedEntity: T) => void) => {\r\n this.onEntityRemovedObservers.add(observer);\r\n };\r\n removeEntityRemovedObserver = (\r\n observer: (removedEntity: T) => void\r\n ): void => {\r\n this.onEntityRemovedObservers.remove(observer);\r\n };\r\n\r\n hasForAppObject = (appObjectID: string): boolean => {\r\n return this.entityLookup.has(appObjectID);\r\n };\r\n\r\n add(entity: T) {\r\n const existing = this.entityLookup.get(entity.appObject.id);\r\n if (existing) {\r\n existing.removeChangeObserver(this.notifyOnChange);\r\n }\r\n\r\n this.entityLookup.set(entity.appObject.id, entity);\r\n entity.addChangeObserver(this.notifyOnChange);\r\n this.notifyOnChange();\r\n this.onEntityAddedObservers.notify(entity);\r\n };\r\n\r\n removeForAppObject = (id: string) => {\r\n const existing = this.entityLookup.get(id);\r\n if (!existing) return;\r\n\r\n this.entityLookup.delete(id);\r\n existing.removeChangeObserver(this.notifyOnChange);\r\n this.notifyOnChange();\r\n this.onEntityRemovedObservers.notify(existing);\r\n };\r\n\r\n getForAppObject = (appObjectID: string): T | undefined => {\r\n return this.entityLookup.get(appObjectID);\r\n };\r\n\r\n getAll = (): T[] => {\r\n return Array.from(this.entityLookup.values());\r\n };\r\n}\r\n"]}
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const AppObject_1 = require("./AppObject");
|
|
4
|
-
const AppObjectEntity_1 = require("./AppObjectEntity");
|
|
5
|
-
const AppObjectEntityRepo_1 = require("./AppObjectEntityRepo");
|
|
6
|
-
const AppObjectRepo_1 = require("./AppObjectRepo");
|
|
7
|
-
class MockAppEntity extends AppObjectEntity_1.AppObjectEntity {
|
|
8
|
-
constructor(appObject) {
|
|
9
|
-
super(appObject, MockAppEntity.type);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
MockAppEntity.type = "mockEntity";
|
|
13
|
-
class MockEntityRepoImp extends AppObjectEntityRepo_1.AppObjectEntityRepo {
|
|
14
|
-
makeEntity(appObj) {
|
|
15
|
-
return new MockAppEntity(appObj);
|
|
16
|
-
}
|
|
17
|
-
constructor(appObject) {
|
|
18
|
-
super(appObject, MockAppEntity.type);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
MockEntityRepoImp.type = "Mock Repo";
|
|
22
|
-
function makeTestRig() {
|
|
23
|
-
const appObjects = (0, AppObjectRepo_1.makeAppObjectRepo)();
|
|
24
|
-
const repoAppObj = (0, AppObject_1.makeAppObject)("repo", appObjects);
|
|
25
|
-
const repo = new MockEntityRepoImp(repoAppObj);
|
|
26
|
-
const appObj = (0, AppObject_1.makeAppObject)("appObjID", appObjects);
|
|
27
|
-
const observer = jest.fn();
|
|
28
|
-
repo.addChangeObserver(observer);
|
|
29
|
-
return { repo, observer, appObj };
|
|
30
|
-
}
|
|
31
|
-
describe("Observable Entity Repo", () => {
|
|
32
|
-
it("Allows an entity to be added", () => {
|
|
33
|
-
const { repo, appObj } = makeTestRig();
|
|
34
|
-
const entity = new MockAppEntity(appObj);
|
|
35
|
-
expect(repo.hasForAppObject("appObjID")).toEqual(false);
|
|
36
|
-
repo.add(entity);
|
|
37
|
-
expect(repo.hasForAppObject("appObjID")).toEqual(true);
|
|
38
|
-
});
|
|
39
|
-
it("Notifies when an entity is added", () => {
|
|
40
|
-
const { repo, observer, appObj } = makeTestRig();
|
|
41
|
-
const entity = new MockAppEntity(appObj);
|
|
42
|
-
repo.add(entity);
|
|
43
|
-
expect(observer).toBeCalled();
|
|
44
|
-
});
|
|
45
|
-
it("Forwards notification from an added entity", () => {
|
|
46
|
-
const { repo, observer, appObj } = makeTestRig();
|
|
47
|
-
const entity = new MockAppEntity(appObj);
|
|
48
|
-
repo.add(entity);
|
|
49
|
-
observer.mockClear();
|
|
50
|
-
entity.notifyOnChange();
|
|
51
|
-
expect(observer).toBeCalled();
|
|
52
|
-
});
|
|
53
|
-
it("Stops notifying if adding an entity replaces and exisitng entity", () => {
|
|
54
|
-
const { repo, observer, appObj } = makeTestRig();
|
|
55
|
-
console.warn = jest.fn(); // Replacing warns. This keeps the console clean
|
|
56
|
-
const original = new MockAppEntity(appObj);
|
|
57
|
-
repo.add(original);
|
|
58
|
-
const replacement = new MockAppEntity(appObj);
|
|
59
|
-
repo.add(replacement);
|
|
60
|
-
observer.mockClear();
|
|
61
|
-
original.notifyOnChange();
|
|
62
|
-
expect(observer).not.toBeCalled();
|
|
63
|
-
});
|
|
64
|
-
it("Removes an entity", () => {
|
|
65
|
-
const { repo, appObj } = makeTestRig();
|
|
66
|
-
const entity = new MockAppEntity(appObj);
|
|
67
|
-
repo.add(entity);
|
|
68
|
-
expect(repo.hasForAppObject("appObjID")).toEqual(true);
|
|
69
|
-
repo.removeForAppObject("appObjID");
|
|
70
|
-
expect(repo.hasForAppObject("appObjID")).toEqual(false);
|
|
71
|
-
});
|
|
72
|
-
it("Notifies if an entity is removed", () => {
|
|
73
|
-
const { repo, observer, appObj } = makeTestRig();
|
|
74
|
-
const entity = new MockAppEntity(appObj);
|
|
75
|
-
repo.add(entity);
|
|
76
|
-
observer.mockClear();
|
|
77
|
-
repo.removeForAppObject("appObjID");
|
|
78
|
-
expect(observer).toBeCalled();
|
|
79
|
-
});
|
|
80
|
-
it("Does not notifyOnChange if the entity to be removed cannot be found", () => {
|
|
81
|
-
const { repo, observer } = makeTestRig();
|
|
82
|
-
repo.removeForAppObject("someId");
|
|
83
|
-
repo.removeForAppObject("someId");
|
|
84
|
-
repo.removeForAppObject("someId");
|
|
85
|
-
expect(observer).not.toBeCalled();
|
|
86
|
-
});
|
|
87
|
-
it("Stops observing a removed entity", () => {
|
|
88
|
-
const { repo, observer, appObj } = makeTestRig();
|
|
89
|
-
const entity = new MockAppEntity(appObj);
|
|
90
|
-
repo.add(entity);
|
|
91
|
-
repo.removeForAppObject("appObjID");
|
|
92
|
-
observer.mockClear();
|
|
93
|
-
entity.notifyOnChange();
|
|
94
|
-
expect(observer).not.toBeCalled();
|
|
95
|
-
});
|
|
96
|
-
it("Gets an entity", () => {
|
|
97
|
-
const { repo, appObj } = makeTestRig();
|
|
98
|
-
const entity = new MockAppEntity(appObj);
|
|
99
|
-
repo.add(entity);
|
|
100
|
-
expect(repo.getForAppObject("appObjID")).toEqual(entity);
|
|
101
|
-
});
|
|
102
|
-
it("Gets all entities", () => {
|
|
103
|
-
const { repo, appObj } = makeTestRig();
|
|
104
|
-
const entity = new MockAppEntity(appObj);
|
|
105
|
-
repo.add(entity);
|
|
106
|
-
expect(repo.getAll()).toEqual([entity]);
|
|
107
|
-
});
|
|
108
|
-
it("Returns undefined for an unknown entity", () => {
|
|
109
|
-
const { repo } = makeTestRig();
|
|
110
|
-
expect(repo.getForAppObject("unknownID")).toBeUndefined();
|
|
111
|
-
});
|
|
112
|
-
it("Supports notifying an observer when an entity is added", () => {
|
|
113
|
-
const { repo, appObj } = makeTestRig();
|
|
114
|
-
const addEntityObserver = jest.fn();
|
|
115
|
-
repo.addEntityAddedObserver(addEntityObserver);
|
|
116
|
-
const ent = new MockAppEntity(appObj);
|
|
117
|
-
repo.add(ent);
|
|
118
|
-
expect(addEntityObserver).toBeCalledWith(ent);
|
|
119
|
-
});
|
|
120
|
-
it("Add entity observer can be removed", () => {
|
|
121
|
-
const { repo, appObj } = makeTestRig();
|
|
122
|
-
const addEntityObserver = jest.fn();
|
|
123
|
-
repo.addEntityAddedObserver(addEntityObserver);
|
|
124
|
-
repo.removeEntityAddedObserver(addEntityObserver);
|
|
125
|
-
const ent = new MockAppEntity(appObj);
|
|
126
|
-
repo.add(ent);
|
|
127
|
-
expect(addEntityObserver).not.toBeCalled();
|
|
128
|
-
});
|
|
129
|
-
it("Supports notifying an observer when an entity is removed", () => {
|
|
130
|
-
const { repo, appObj } = makeTestRig();
|
|
131
|
-
const removeEntityObserver = jest.fn();
|
|
132
|
-
repo.addEntityRemovedObserver(removeEntityObserver);
|
|
133
|
-
const ent = new MockAppEntity(appObj);
|
|
134
|
-
repo.add(ent);
|
|
135
|
-
repo.removeForAppObject("appObjID");
|
|
136
|
-
expect(removeEntityObserver).toBeCalledWith(ent);
|
|
137
|
-
});
|
|
138
|
-
it("Remove entity observer can be removed", () => {
|
|
139
|
-
const { repo, appObj } = makeTestRig();
|
|
140
|
-
const removeEntityObserver = jest.fn();
|
|
141
|
-
repo.addEntityRemovedObserver(removeEntityObserver);
|
|
142
|
-
repo.removeEntityRemovedObserver(removeEntityObserver);
|
|
143
|
-
const ent = new MockAppEntity(appObj);
|
|
144
|
-
repo.add(ent);
|
|
145
|
-
repo.removeForAppObject("appObjID");
|
|
146
|
-
expect(removeEntityObserver).not.toBeCalled();
|
|
147
|
-
});
|
|
148
|
-
});
|
|
149
|
-
//# sourceMappingURL=AppObjectEntityRepo.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AppObjectEntityRepo.test.js","sourceRoot":"","sources":["../../../src/AppObject/AppObjectEntityRepo.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, makeAppObject } from \"./AppObject\";\r\nimport { AppObjectEntity } from \"./AppObjectEntity\";\r\nimport { AppObjectEntityRepo } from \"./AppObjectEntityRepo\";\r\nimport { makeAppObjectRepo } from \"./AppObjectRepo\";\r\n\r\nclass MockAppEntity extends AppObjectEntity {\r\n static type: string = \"mockEntity\";\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, MockAppEntity.type)\r\n }\r\n}\r\n\r\nclass MockEntityRepoImp extends AppObjectEntityRepo<MockAppEntity> {\r\n static type: string = \"Mock Repo\";\r\n\r\n makeEntity(appObj: AppObject): MockAppEntity {\r\n return new MockAppEntity(appObj);\r\n }\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, MockAppEntity.type)\r\n }\r\n}\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const repoAppObj = makeAppObject(\"repo\", appObjects);\r\n const repo = new MockEntityRepoImp(repoAppObj);\r\n \r\n const appObj = makeAppObject(\"appObjID\", appObjects);\r\n const observer = jest.fn();\r\n repo.addChangeObserver(observer);\r\n\r\n return { repo, observer, appObj };\r\n}\r\n\r\ndescribe(\"Observable Entity Repo\", () => {\r\n it(\"Allows an entity to be added\", () => {\r\n const { repo, appObj } = makeTestRig();\r\n const entity = new MockAppEntity(appObj);\r\n\r\n expect(repo.hasForAppObject(\"appObjID\")).toEqual(false);\r\n\r\n repo.add(entity);\r\n\r\n expect(repo.hasForAppObject(\"appObjID\")).toEqual(true);\r\n });\r\n\r\n it(\"Notifies when an entity is added\", () => {\r\n const { repo, observer, appObj } = makeTestRig();\r\n const entity =new MockAppEntity(appObj);\r\n repo.add(entity);\r\n\r\n expect(observer).toBeCalled();\r\n });\r\n\r\n it(\"Forwards notification from an added entity\", () => {\r\n const { repo, observer, appObj } = makeTestRig();\r\n const entity =new MockAppEntity(appObj);\r\n repo.add(entity);\r\n\r\n observer.mockClear();\r\n\r\n entity.notifyOnChange();\r\n\r\n expect(observer).toBeCalled();\r\n });\r\n\r\n it(\"Stops notifying if adding an entity replaces and exisitng entity\", () => {\r\n const { repo, observer, appObj } = makeTestRig();\r\n\r\n console.warn = jest.fn(); // Replacing warns. This keeps the console clean\r\n\r\n const original =new MockAppEntity(appObj);\r\n repo.add(original);\r\n\r\n const replacement =new MockAppEntity(appObj);\r\n repo.add(replacement);\r\n observer.mockClear();\r\n\r\n original.notifyOnChange();\r\n\r\n expect(observer).not.toBeCalled();\r\n });\r\n\r\n it(\"Removes an entity\", () => {\r\n const { repo, appObj } = makeTestRig();\r\n const entity =new MockAppEntity(appObj);\r\n\r\n repo.add(entity);\r\n\r\n expect(repo.hasForAppObject(\"appObjID\")).toEqual(true);\r\n\r\n repo.removeForAppObject(\"appObjID\");\r\n\r\n expect(repo.hasForAppObject(\"appObjID\")).toEqual(false);\r\n });\r\n\r\n it(\"Notifies if an entity is removed\", () => {\r\n const { repo, observer, appObj } = makeTestRig();\r\n const entity =new MockAppEntity(appObj);\r\n\r\n repo.add(entity);\r\n observer.mockClear();\r\n\r\n repo.removeForAppObject(\"appObjID\");\r\n\r\n expect(observer).toBeCalled();\r\n });\r\n\r\n it(\"Does not notifyOnChange if the entity to be removed cannot be found\", () => {\r\n const { repo, observer } = makeTestRig();\r\n\r\n repo.removeForAppObject(\"someId\");\r\n repo.removeForAppObject(\"someId\");\r\n repo.removeForAppObject(\"someId\");\r\n\r\n expect(observer).not.toBeCalled();\r\n });\r\n\r\n it(\"Stops observing a removed entity\", () => {\r\n const { repo, observer, appObj } = makeTestRig();\r\n const entity =new MockAppEntity(appObj);\r\n\r\n repo.add(entity);\r\n repo.removeForAppObject(\"appObjID\");\r\n\r\n observer.mockClear();\r\n\r\n entity.notifyOnChange();\r\n\r\n expect(observer).not.toBeCalled();\r\n });\r\n\r\n it(\"Gets an entity\", () => {\r\n const { repo, appObj } = makeTestRig();\r\n const entity =new MockAppEntity(appObj);\r\n repo.add(entity);\r\n\r\n expect(repo.getForAppObject(\"appObjID\")).toEqual(entity);\r\n });\r\n\r\n it(\"Gets all entities\", () => {\r\n const { repo, appObj } = makeTestRig();\r\n const entity =new MockAppEntity(appObj);\r\n repo.add(entity);\r\n\r\n expect(repo.getAll()).toEqual([entity]);\r\n });\r\n\r\n it(\"Returns undefined for an unknown entity\", () => {\r\n const { repo } = makeTestRig();\r\n\r\n expect(repo.getForAppObject(\"unknownID\")).toBeUndefined();\r\n });\r\n\r\n\r\n it(\"Supports notifying an observer when an entity is added\", () => {\r\n const { repo, appObj } = makeTestRig();\r\n\r\n const addEntityObserver = jest.fn();\r\n repo.addEntityAddedObserver(addEntityObserver);\r\n\r\n const ent =new MockAppEntity(appObj);\r\n repo.add(ent);\r\n\r\n expect(addEntityObserver).toBeCalledWith(ent);\r\n });\r\n\r\n it(\"Add entity observer can be removed\", () => {\r\n const { repo, appObj } = makeTestRig();\r\n\r\n const addEntityObserver = jest.fn();\r\n repo.addEntityAddedObserver(addEntityObserver);\r\n repo.removeEntityAddedObserver(addEntityObserver);\r\n\r\n const ent =new MockAppEntity(appObj);\r\n repo.add(ent);\r\n\r\n expect(addEntityObserver).not.toBeCalled();\r\n });\r\n\r\n it(\"Supports notifying an observer when an entity is removed\", () => {\r\n const { repo, appObj } = makeTestRig();\r\n\r\n const removeEntityObserver = jest.fn();\r\n repo.addEntityRemovedObserver(removeEntityObserver);\r\n\r\n const ent =new MockAppEntity(appObj);\r\n repo.add(ent);\r\n\r\n repo.removeForAppObject(\"appObjID\");\r\n\r\n expect(removeEntityObserver).toBeCalledWith(ent);\r\n });\r\n\r\n it(\"Remove entity observer can be removed\", () => {\r\n const { repo, appObj } = makeTestRig();\r\n\r\n const removeEntityObserver = jest.fn();\r\n repo.addEntityRemovedObserver(removeEntityObserver);\r\n repo.removeEntityRemovedObserver(removeEntityObserver);\r\n\r\n const ent =new MockAppEntity(appObj);\r\n repo.add(ent);\r\n repo.removeForAppObject(\"appObjID\");\r\n\r\n expect(removeEntityObserver).not.toBeCalled();\r\n });\r\n});\r\n"]}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AppObjectPM = void 0;
|
|
4
|
-
const Entities_1 = require("../Entities");
|
|
5
|
-
const AppObjectComponent_1 = require("./AppObjectComponent");
|
|
6
|
-
class AppObjectPM extends AppObjectComponent_1.AppObjectComponent {
|
|
7
|
-
constructor() {
|
|
8
|
-
super(...arguments);
|
|
9
|
-
this.componentType = AppObjectComponent_1.AppObjectComponentType.PM;
|
|
10
|
-
this.observerList = new Entities_1.ObserverList();
|
|
11
|
-
}
|
|
12
|
-
get lastVM() {
|
|
13
|
-
return this._lastVM;
|
|
14
|
-
}
|
|
15
|
-
addView(updateView) {
|
|
16
|
-
this.observerList.add(updateView);
|
|
17
|
-
if (this._lastVM !== undefined) {
|
|
18
|
-
updateView(this._lastVM);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
removeView(updateView) {
|
|
22
|
-
this.observerList.remove(updateView);
|
|
23
|
-
}
|
|
24
|
-
doUpdateView(vm) {
|
|
25
|
-
if (this._lastVM && this.vmsAreEqual(this._lastVM, vm)) {
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
this._lastVM = vm;
|
|
29
|
-
this.observerList.notify(vm);
|
|
30
|
-
}
|
|
31
|
-
dispose() {
|
|
32
|
-
this.observerList.clear();
|
|
33
|
-
if (this.appObject.getComponent(this.type) === this) {
|
|
34
|
-
this.appObject.removeComponent(this.type);
|
|
35
|
-
}
|
|
36
|
-
super.dispose();
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
exports.AppObjectPM = AppObjectPM;
|
|
40
|
-
//# sourceMappingURL=AppObjectPM.js.map
|