@vived/app 6.1.0 → 6.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Dispatcher/Mocks/MockDispatchStateChange.js +1 -0
- package/dist/cjs/Dispatcher/Mocks/MockDispatchStateChange.js.map +1 -1
- package/dist/cjs/Dispatcher/UC/DispatchStateChangeUC.js +7 -2
- package/dist/cjs/Dispatcher/UC/DispatchStateChangeUC.js.map +1 -1
- package/dist/cjs/Dispatcher/UC/DispatchStateChangeUC.test.js +30 -0
- package/dist/cjs/Dispatcher/UC/DispatchStateChangeUC.test.js.map +1 -1
- package/dist/cjs/Dispatcher/UC/StateHasChangedUC.js +4 -3
- package/dist/cjs/Dispatcher/UC/StateHasChangedUC.js.map +1 -1
- package/dist/cjs/Dispatcher/UC/StateHasChangedUC.test.js +30 -0
- package/dist/cjs/Dispatcher/UC/StateHasChangedUC.test.js.map +1 -1
- package/dist/cjs/HoverLabel/UseCases/ToggleAllowHoverLabel.test.js +1 -0
- package/dist/cjs/HoverLabel/UseCases/ToggleAllowHoverLabel.test.js.map +1 -1
- package/dist/cjs/StoredView/UC/ClearStoredViewUC.test.js +1 -0
- package/dist/cjs/StoredView/UC/ClearStoredViewUC.test.js.map +1 -1
- package/dist/cjs/StoredView/UC/StoreCurrentViewUC.test.js +1 -0
- package/dist/cjs/StoredView/UC/StoreCurrentViewUC.test.js.map +1 -1
- package/dist/esm/Dispatcher/Mocks/MockDispatchStateChange.js +1 -0
- package/dist/esm/Dispatcher/Mocks/MockDispatchStateChange.js.map +1 -1
- package/dist/esm/Dispatcher/UC/DispatchStateChangeUC.js +7 -2
- package/dist/esm/Dispatcher/UC/DispatchStateChangeUC.js.map +1 -1
- package/dist/esm/Dispatcher/UC/DispatchStateChangeUC.test.js +30 -0
- package/dist/esm/Dispatcher/UC/DispatchStateChangeUC.test.js.map +1 -1
- package/dist/esm/Dispatcher/UC/StateHasChangedUC.js +4 -3
- package/dist/esm/Dispatcher/UC/StateHasChangedUC.js.map +1 -1
- package/dist/esm/Dispatcher/UC/StateHasChangedUC.test.js +30 -0
- package/dist/esm/Dispatcher/UC/StateHasChangedUC.test.js.map +1 -1
- package/dist/esm/HoverLabel/UseCases/ToggleAllowHoverLabel.test.js +1 -0
- package/dist/esm/HoverLabel/UseCases/ToggleAllowHoverLabel.test.js.map +1 -1
- package/dist/esm/StoredView/UC/ClearStoredViewUC.test.js +1 -0
- package/dist/esm/StoredView/UC/ClearStoredViewUC.test.js.map +1 -1
- package/dist/esm/StoredView/UC/StoreCurrentViewUC.test.js +1 -0
- package/dist/esm/StoredView/UC/StoreCurrentViewUC.test.js.map +1 -1
- package/dist/types/Dispatcher/Mocks/MockDispatchStateChange.d.ts +1 -0
- package/dist/types/Dispatcher/Mocks/MockDispatchStateChange.d.ts.map +1 -1
- package/dist/types/Dispatcher/UC/DispatchStateChangeUC.d.ts +2 -0
- package/dist/types/Dispatcher/UC/DispatchStateChangeUC.d.ts.map +1 -1
- package/dist/types/Dispatcher/UC/StateHasChangedUC.d.ts +1 -1
- package/dist/types/Dispatcher/UC/StateHasChangedUC.d.ts.map +1 -1
- package/dist/types/HoverLabel/UseCases/ToggleAllowHoverLabel.test.d.ts +1 -0
- package/dist/types/HoverLabel/UseCases/ToggleAllowHoverLabel.test.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -8,6 +8,7 @@ class MockDispatchStateChange extends DispatchStateChangeUC_1.DispatchStateChang
|
|
|
8
8
|
super(appObject, DispatchStateChangeUC_1.DispatchStateChangeUC.type);
|
|
9
9
|
this.validateState = () => undefined;
|
|
10
10
|
this.getStateAssets = () => [];
|
|
11
|
+
this.getResponseType = () => undefined;
|
|
11
12
|
this.doDispatch = () => { };
|
|
12
13
|
}
|
|
13
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MockDispatchStateChange.js","sourceRoot":"","sources":["../../../../src/Dispatcher/Mocks/MockDispatchStateChange.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"MockDispatchStateChange.js","sourceRoot":"","sources":["../../../../src/Dispatcher/Mocks/MockDispatchStateChange.ts"],"names":[],"mappings":";;;AAeA,kEAEC;AAfD,uEAAoE;AAEpE,MAAa,uBAAwB,SAAQ,6CAAqB;IAMhE,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,6CAAqB,CAAC,IAAI,CAAC,CAAC;QAN/C,kBAAa,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC;QAChC,mBAAc,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC;QAC1B,oBAAe,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC;QAClC,eAAU,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;IAItB,CAAC;CACF;AATD,0DASC;AAED,SAAgB,2BAA2B,CAAC,UAAyB;IACnE,OAAO,IAAI,uBAAuB,CAAC,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;AAC3E,CAAC","sourcesContent":["import { AppObjectRepo } from \"@vived/core\";\nimport { AppObject } from \"@vived/core\";\nimport { DispatchStateChangeUC } from \"../UC/DispatchStateChangeUC\";\n\nexport class MockDispatchStateChange extends DispatchStateChangeUC {\n validateState = () => undefined;\n getStateAssets = () => [];\n getResponseType = () => undefined;\n doDispatch = () => {};\n\n constructor(appObject: AppObject) {\n super(appObject, DispatchStateChangeUC.type);\n }\n}\n\nexport function makeMockDispatchStateChange(appObjects: AppObjectRepo) {\n return new MockDispatchStateChange(appObjects.getOrCreate(\"Dispatcher\"));\n}\n"]}
|
|
@@ -31,13 +31,15 @@ function dispatchStateChange(appObjects) {
|
|
|
31
31
|
class DispatchStateChangeUCImp extends DispatchStateChangeUC {
|
|
32
32
|
constructor(appObject) {
|
|
33
33
|
super(appObject, DispatchStateChangeUC.type);
|
|
34
|
-
this.requestVersion = 3;
|
|
35
34
|
this.validateState = () => {
|
|
36
35
|
return undefined;
|
|
37
36
|
};
|
|
38
37
|
this.getStateAssets = () => {
|
|
39
38
|
return [];
|
|
40
39
|
};
|
|
40
|
+
this.getResponseType = () => {
|
|
41
|
+
return undefined;
|
|
42
|
+
};
|
|
41
43
|
this.doDispatch = () => {
|
|
42
44
|
const stateMachine = Entities_1.StateMachineEntity.get(this.appObject.appObjectRepo);
|
|
43
45
|
if (!stateMachine) {
|
|
@@ -51,12 +53,15 @@ class DispatchStateChangeUCImp extends DispatchStateChangeUC {
|
|
|
51
53
|
}
|
|
52
54
|
if (!baseApp.isAuthoring)
|
|
53
55
|
return;
|
|
56
|
+
const responseType = this.getResponseType();
|
|
54
57
|
const payload = {
|
|
55
58
|
stateObject: stateMachine.getSerializedStates(),
|
|
56
59
|
assets: this.getStateAssets(),
|
|
57
60
|
validationErrorMessage: this.validateState(),
|
|
61
|
+
responseType,
|
|
58
62
|
};
|
|
59
|
-
|
|
63
|
+
const version = responseType !== undefined ? 4 : 3;
|
|
64
|
+
this.appDispatcher?.formRequestAndDispatch(this.requestType, version, payload);
|
|
60
65
|
};
|
|
61
66
|
this.appDispatcher = appObject.getComponent(AppDispatcher_1.AppDispatcher.type);
|
|
62
67
|
if (!this.appDispatcher) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DispatchStateChangeUC.js","sourceRoot":"","sources":["../../../../src/Dispatcher/UC/DispatchStateChangeUC.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"DispatchStateChangeUC.js","sourceRoot":"","sources":["../../../../src/Dispatcher/UC/DispatchStateChangeUC.ts"],"names":[],"mappings":";;;AA8BA,8DAIC;AAED,kDAWC;AA/CD,sCAKqB;AACrB,oEAAiE;AACjE,0DAAiE;AACjE,6DAA0D;AAS1D,MAAsB,qBAAsB,SAAQ,kBAAW;IAA/D;;QAEW,gBAAW,GAAG,iBAAiB,CAAC;IAS3C,CAAC;;AAXD,sDAWC;AAViB,0BAAI,GAAG,uBAAuB,AAA1B,CAA2B;AAQxC,yBAAG,GAAG,CAAC,UAAyB,EAAqC,EAAE,CAC5E,IAAA,4BAAqB,EAAC,qBAAqB,CAAC,IAAI,EAAE,UAAU,CAAC,AADrD,CACsD;AAGlE,SAAgB,yBAAyB,CACvC,SAAoB;IAEpB,OAAO,IAAI,wBAAwB,CAAC,SAAS,CAAC,CAAC;AACjD,CAAC;AAED,SAAgB,mBAAmB,CAAC,UAAyB;IAC3D,MAAM,UAAU,GAAG,qBAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAEzD,IAAI,UAAU,EAAE,CAAC;QACf,UAAU,CAAC,UAAU,EAAE,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,UAAU,CAAC,aAAa,CACtB,qBAAqB,EACrB,kCAAkC,CACnC,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,wBAAyB,SAAQ,qBAAqB;IA+C1D,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,qBAAqB,CAAC,IAAI,CAAC,CAAC;QA7C/C,kBAAa,GAA6B,GAAG,EAAE;YAC7C,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC;QACF,mBAAc,GAAmB,GAAG,EAAE;YACpC,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QACF,oBAAe,GAA6B,GAAG,EAAE;YAC/C,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC;QAEF,eAAU,GAAG,GAAS,EAAE;YACtB,MAAM,YAAY,GAAG,6BAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YAE1E,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,IAAI,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;gBAC/C,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAG,2BAAY,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YAC/D,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;gBACzC,OAAO;YACT,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,WAAW;gBAAE,OAAO;YAEjC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YAE5C,MAAM,OAAO,GAA+B;gBAC1C,WAAW,EAAE,YAAY,CAAC,mBAAmB,EAAE;gBAC/C,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE;gBAC7B,sBAAsB,EAAE,IAAI,CAAC,aAAa,EAAE;gBAC5C,YAAY;aACb,CAAC;YAEF,MAAM,OAAO,GAAG,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEnD,IAAI,CAAC,aAAa,EAAE,sBAAsB,CACxC,IAAI,CAAC,WAAW,EAChB,OAAO,EACP,OAAO,CACR,CAAC;QACJ,CAAC,CAAC;QAKA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,YAAY,CACzC,6BAAa,CAAC,IAAI,CACnB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CACP,kHAAkH,CACnH,CAAC;YACF,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;CACF","sourcesContent":["import {\n AppObject,\n AppObjectRepo,\n AppObjectUC,\n getSingletonComponent,\n} from \"@vived/core\";\nimport { BaseAppState } from \"../../BaseApp/Entity/BaseAppState\";\nimport { StateMachineEntity } from \"../../StateMachine/Entities\";\nimport { AppDispatcher } from \"../Entities/AppDispatcher\";\n\nexport interface DispatchStateChangePayload {\n stateObject: object;\n assets: string[];\n validationErrorMessage?: string | undefined;\n responseType?: string | undefined;\n}\n\nexport abstract class DispatchStateChangeUC extends AppObjectUC {\n static readonly type = \"DispatchStateChangeUC\";\n readonly requestType = \"ON_STATE_CHANGE\";\n\n abstract doDispatch(): void;\n abstract validateState: () => string | undefined;\n abstract getStateAssets: () => string[];\n abstract getResponseType: () => string | undefined;\n\n static get = (appObjects: AppObjectRepo): DispatchStateChangeUC | undefined =>\n getSingletonComponent(DispatchStateChangeUC.type, appObjects);\n}\n\nexport function makeDispatchStateChangeUC(\n appObject: AppObject,\n): DispatchStateChangeUC {\n return new DispatchStateChangeUCImp(appObject);\n}\n\nexport function dispatchStateChange(appObjects: AppObjectRepo) {\n const dispatchUC = DispatchStateChangeUC.get(appObjects);\n\n if (dispatchUC) {\n dispatchUC.doDispatch();\n } else {\n appObjects.submitWarning(\n \"dispatchStateChange\",\n \"Can't find DispatchStateChangeUC\",\n );\n }\n}\n\nclass DispatchStateChangeUCImp extends DispatchStateChangeUC {\n private appDispatcher?: AppDispatcher;\n\n validateState: () => string | undefined = () => {\n return undefined;\n };\n getStateAssets: () => string[] = () => {\n return [];\n };\n getResponseType: () => string | undefined = () => {\n return undefined;\n };\n\n doDispatch = (): void => {\n const stateMachine = StateMachineEntity.get(this.appObject.appObjectRepo);\n\n if (!stateMachine) {\n this.warn(\"Could not find StateMachineEntity\");\n return;\n }\n\n const baseApp = BaseAppState.get(this.appObject.appObjectRepo);\n if (!baseApp) {\n this.warn(\"Could not find BaseAppState\");\n return;\n }\n\n if (!baseApp.isAuthoring) return;\n\n const responseType = this.getResponseType();\n\n const payload: DispatchStateChangePayload = {\n stateObject: stateMachine.getSerializedStates(),\n assets: this.getStateAssets(),\n validationErrorMessage: this.validateState(),\n responseType,\n };\n\n const version = responseType !== undefined ? 4 : 3;\n\n this.appDispatcher?.formRequestAndDispatch(\n this.requestType,\n version,\n payload,\n );\n };\n\n constructor(appObject: AppObject) {\n super(appObject, DispatchStateChangeUC.type);\n\n this.appDispatcher = appObject.getComponent<AppDispatcher>(\n AppDispatcher.type,\n );\n if (!this.appDispatcher) {\n this.warn(\n \"DispatchStateChangeUC has been added to an App Object that does not have a AppDispatcher. Add a dispatcher first\",\n );\n this.dispose();\n }\n }\n}\n"]}
|
|
@@ -87,5 +87,35 @@ describe("Dispatch State Change", () => {
|
|
|
87
87
|
.calls[0][2];
|
|
88
88
|
expect(payload.stateObject).toEqual({ mock: "state" });
|
|
89
89
|
});
|
|
90
|
+
it("Dispatches version 3 when getResponseType returns undefined", () => {
|
|
91
|
+
const { uc, mockDispatcher } = makeTestRig();
|
|
92
|
+
uc.doDispatch();
|
|
93
|
+
expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);
|
|
94
|
+
expect(mockDispatcher.formRequestAndDispatch.mock.calls[0][1]).toEqual(3);
|
|
95
|
+
});
|
|
96
|
+
it("Dispatches version 4 when getResponseType returns a value", () => {
|
|
97
|
+
const { uc, mockDispatcher } = makeTestRig();
|
|
98
|
+
uc.getResponseType = jest.fn().mockReturnValue("SCORE");
|
|
99
|
+
uc.doDispatch();
|
|
100
|
+
expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);
|
|
101
|
+
expect(mockDispatcher.formRequestAndDispatch.mock.calls[0][1]).toEqual(4);
|
|
102
|
+
});
|
|
103
|
+
it("Includes responseType in the payload when provided", () => {
|
|
104
|
+
const { uc, mockDispatcher } = makeTestRig();
|
|
105
|
+
uc.getResponseType = jest.fn().mockReturnValue("HIT");
|
|
106
|
+
uc.doDispatch();
|
|
107
|
+
expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);
|
|
108
|
+
const payload = mockDispatcher.formRequestAndDispatch.mock
|
|
109
|
+
.calls[0][2];
|
|
110
|
+
expect(payload.responseType).toEqual("HIT");
|
|
111
|
+
});
|
|
112
|
+
it("Has undefined responseType in the payload when not provided", () => {
|
|
113
|
+
const { uc, mockDispatcher } = makeTestRig();
|
|
114
|
+
uc.doDispatch();
|
|
115
|
+
expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);
|
|
116
|
+
const payload = mockDispatcher.formRequestAndDispatch.mock
|
|
117
|
+
.calls[0][2];
|
|
118
|
+
expect(payload.responseType).toBeUndefined();
|
|
119
|
+
});
|
|
90
120
|
});
|
|
91
121
|
//# sourceMappingURL=DispatchStateChangeUC.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DispatchStateChangeUC.test.js","sourceRoot":"","sources":["../../../../src/Dispatcher/UC/DispatchStateChangeUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { makeBaseAppState } from \"../../BaseApp/Entity/BaseAppState\";\nimport { makeMockStateMachine } from \"../../StateMachine\";\nimport { MockDispatcher } from \"../Mocks/MockDispatcher\";\nimport {\n dispatchStateChange,\n DispatchStateChangePayload,\n DispatchStateChangeUC,\n makeDispatchStateChangeUC,\n} from \"./DispatchStateChangeUC\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const dispatcherAO = appObjects.getOrCreate(\"dispatcher\");\n const mockDispatcher = new MockDispatcher(dispatcherAO);\n mockDispatcher.formRequestAndDispatch = jest.fn();\n const app = appObjects.getOrCreate(\"App\");\n const baseApp = makeBaseAppState(app);\n baseApp.isAuthoring = true;\n\n const mockStateMachine = makeMockStateMachine(appObjects);\n mockStateMachine.getSerializedStates.mockReturnValue({ mock: \"state\" });\n\n const uc = makeDispatchStateChangeUC(dispatcherAO);\n\n return {\n uc,\n mockDispatcher,\n appObjects,\n baseApp,\n mockStateMachine,\n };\n}\n\ndescribe(\"Dispatch State Change\", () => {\n it(\"Gets the UC\", () => {\n const { uc, appObjects } = makeTestRig();\n expect(DispatchStateChangeUC.get(appObjects)).toEqual(uc);\n });\n\n it(\"Finds and dispatches to the UC\", () => {\n const { appObjects, uc } = makeTestRig();\n\n uc.doDispatch = jest.fn();\n\n dispatchStateChange(appObjects);\n expect(uc.doDispatch).toHaveBeenCalled();\n });\n\n it(\"Does not dispatch if base app is not authoring\", () => {\n const { baseApp, uc, mockDispatcher } = makeTestRig();\n\n baseApp.isAuthoring = false;\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).not.toHaveBeenCalled();\n });\n\n it(\"Dispatches the correct type\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);\n expect(\n (mockDispatcher.formRequestAndDispatch as jest.Mock).mock.calls[0][0],\n ).toEqual(uc.requestType);\n });\n\n it(\"Dispatches the correct version\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);\n expect(\n (mockDispatcher.formRequestAndDispatch as jest.Mock).mock.calls[0][1],\n ).toEqual(3);\n });\n\n it(\"Dispatches the payload validation message as undefined\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);\n const payload = (mockDispatcher.formRequestAndDispatch as jest.Mock).mock\n .calls[0][2] as DispatchStateChangePayload;\n\n expect(payload.validationErrorMessage).toBeUndefined();\n });\n\n it(\"Dispatches the payload validation message\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n uc.validateState = jest.fn().mockReturnValue(\"Some validation message\");\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);\n const payload = (mockDispatcher.formRequestAndDispatch as jest.Mock).mock\n .calls[0][2] as DispatchStateChangePayload;\n\n expect(payload.validationErrorMessage).toEqual(\"Some validation message\");\n });\n\n it(\"Dispatches the payload assets\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n uc.getStateAssets = jest.fn().mockReturnValue([\"model1\"]);\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);\n const payload = (mockDispatcher.formRequestAndDispatch as jest.Mock).mock\n .calls[0][2] as DispatchStateChangePayload;\n\n expect(payload.assets).toEqual([\"model1\"]);\n });\n\n it(\"Dispatches the payload state\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);\n const payload = (mockDispatcher.formRequestAndDispatch as jest.Mock).mock\n .calls[0][2] as DispatchStateChangePayload;\n\n expect(payload.stateObject).toEqual({ mock: \"state\" });\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"DispatchStateChangeUC.test.js","sourceRoot":"","sources":["../../../../src/Dispatcher/UC/DispatchStateChangeUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { makeBaseAppState } from \"../../BaseApp/Entity/BaseAppState\";\nimport { makeMockStateMachine } from \"../../StateMachine\";\nimport { MockDispatcher } from \"../Mocks/MockDispatcher\";\nimport {\n dispatchStateChange,\n DispatchStateChangePayload,\n DispatchStateChangeUC,\n makeDispatchStateChangeUC,\n} from \"./DispatchStateChangeUC\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const dispatcherAO = appObjects.getOrCreate(\"dispatcher\");\n const mockDispatcher = new MockDispatcher(dispatcherAO);\n mockDispatcher.formRequestAndDispatch = jest.fn();\n const app = appObjects.getOrCreate(\"App\");\n const baseApp = makeBaseAppState(app);\n baseApp.isAuthoring = true;\n\n const mockStateMachine = makeMockStateMachine(appObjects);\n mockStateMachine.getSerializedStates.mockReturnValue({ mock: \"state\" });\n\n const uc = makeDispatchStateChangeUC(dispatcherAO);\n\n return {\n uc,\n mockDispatcher,\n appObjects,\n baseApp,\n mockStateMachine,\n };\n}\n\ndescribe(\"Dispatch State Change\", () => {\n it(\"Gets the UC\", () => {\n const { uc, appObjects } = makeTestRig();\n expect(DispatchStateChangeUC.get(appObjects)).toEqual(uc);\n });\n\n it(\"Finds and dispatches to the UC\", () => {\n const { appObjects, uc } = makeTestRig();\n\n uc.doDispatch = jest.fn();\n\n dispatchStateChange(appObjects);\n expect(uc.doDispatch).toHaveBeenCalled();\n });\n\n it(\"Does not dispatch if base app is not authoring\", () => {\n const { baseApp, uc, mockDispatcher } = makeTestRig();\n\n baseApp.isAuthoring = false;\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).not.toHaveBeenCalled();\n });\n\n it(\"Dispatches the correct type\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);\n expect(\n (mockDispatcher.formRequestAndDispatch as jest.Mock).mock.calls[0][0],\n ).toEqual(uc.requestType);\n });\n\n it(\"Dispatches the correct version\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);\n expect(\n (mockDispatcher.formRequestAndDispatch as jest.Mock).mock.calls[0][1],\n ).toEqual(3);\n });\n\n it(\"Dispatches the payload validation message as undefined\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);\n const payload = (mockDispatcher.formRequestAndDispatch as jest.Mock).mock\n .calls[0][2] as DispatchStateChangePayload;\n\n expect(payload.validationErrorMessage).toBeUndefined();\n });\n\n it(\"Dispatches the payload validation message\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n uc.validateState = jest.fn().mockReturnValue(\"Some validation message\");\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);\n const payload = (mockDispatcher.formRequestAndDispatch as jest.Mock).mock\n .calls[0][2] as DispatchStateChangePayload;\n\n expect(payload.validationErrorMessage).toEqual(\"Some validation message\");\n });\n\n it(\"Dispatches the payload assets\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n uc.getStateAssets = jest.fn().mockReturnValue([\"model1\"]);\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);\n const payload = (mockDispatcher.formRequestAndDispatch as jest.Mock).mock\n .calls[0][2] as DispatchStateChangePayload;\n\n expect(payload.assets).toEqual([\"model1\"]);\n });\n\n it(\"Dispatches the payload state\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);\n const payload = (mockDispatcher.formRequestAndDispatch as jest.Mock).mock\n .calls[0][2] as DispatchStateChangePayload;\n\n expect(payload.stateObject).toEqual({ mock: \"state\" });\n });\n\n it(\"Dispatches version 3 when getResponseType returns undefined\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);\n expect(\n (mockDispatcher.formRequestAndDispatch as jest.Mock).mock.calls[0][1],\n ).toEqual(3);\n });\n\n it(\"Dispatches version 4 when getResponseType returns a value\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n uc.getResponseType = jest.fn().mockReturnValue(\"SCORE\");\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);\n expect(\n (mockDispatcher.formRequestAndDispatch as jest.Mock).mock.calls[0][1],\n ).toEqual(4);\n });\n\n it(\"Includes responseType in the payload when provided\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n uc.getResponseType = jest.fn().mockReturnValue(\"HIT\");\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);\n const payload = (mockDispatcher.formRequestAndDispatch as jest.Mock).mock\n .calls[0][2] as DispatchStateChangePayload;\n\n expect(payload.responseType).toEqual(\"HIT\");\n });\n\n it(\"Has undefined responseType in the payload when not provided\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);\n const payload = (mockDispatcher.formRequestAndDispatch as jest.Mock).mock\n .calls[0][2] as DispatchStateChangePayload;\n\n expect(payload.responseType).toBeUndefined();\n });\n});\n"]}
|
|
@@ -19,16 +19,17 @@ function makeStateHasChangedUC(appObject) {
|
|
|
19
19
|
class StateHasChangedUCImp extends StateHasChangedUC {
|
|
20
20
|
constructor(appObject) {
|
|
21
21
|
super(appObject, StateHasChangedUC.type);
|
|
22
|
-
this.
|
|
23
|
-
this.stateHasChanged = (stateObject, assets, validationErrorMessage) => {
|
|
22
|
+
this.stateHasChanged = (stateObject, assets, validationErrorMessage, responseType) => {
|
|
24
23
|
if (!this.appDispatcher)
|
|
25
24
|
return;
|
|
26
25
|
const payload = {
|
|
27
26
|
stateObject,
|
|
28
27
|
assets,
|
|
29
28
|
validationErrorMessage,
|
|
29
|
+
responseType,
|
|
30
30
|
};
|
|
31
|
-
|
|
31
|
+
const version = responseType !== undefined ? 4 : 3;
|
|
32
|
+
this.appDispatcher.formRequestAndDispatch(this.requestType, version, payload);
|
|
32
33
|
};
|
|
33
34
|
this.appDispatcher = appObject.getComponent(AppDispatcher_1.AppDispatcher.type);
|
|
34
35
|
if (!this.appDispatcher) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StateHasChangedUC.js","sourceRoot":"","sources":["../../../../src/Dispatcher/UC/StateHasChangedUC.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"StateHasChangedUC.js","sourceRoot":"","sources":["../../../../src/Dispatcher/UC/StateHasChangedUC.ts"],"names":[],"mappings":";;;AAuBA,sDAEC;AAzBD,sCAKqB;AACrB,6DAA0D;AAE1D,MAAsB,iBAAkB,SAAQ,kBAAW;IAA3D;;QAEW,gBAAW,GAAG,iBAAiB,CAAC;IAW3C,CAAC;;AAbD,8CAaC;AAZiB,sBAAI,GAAG,mBAAmB,AAAtB,CAAuB;AAUpC,qBAAG,GAAG,CAAC,UAAyB,EAAiC,EAAE,CACxE,IAAA,4BAAqB,EAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,AADjD,CACkD;AAG9D,SAAgB,qBAAqB,CAAC,SAAoB;IACxD,OAAO,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,oBAAqB,SAAQ,iBAAiB;IA2BlD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAzB3C,oBAAe,GAAG,CAChB,WAAmB,EACnB,MAAgB,EAChB,sBAA2C,EAC3C,YAAiC,EACjC,EAAE;YACF,IAAI,CAAC,IAAI,CAAC,aAAa;gBAAE,OAAO;YAEhC,MAAM,OAAO,GAAG;gBACd,WAAW;gBACX,MAAM;gBACN,sBAAsB;gBACtB,YAAY;aACb,CAAC;YAEF,MAAM,OAAO,GAAG,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEnD,IAAI,CAAC,aAAa,CAAC,sBAAsB,CACvC,IAAI,CAAC,WAAW,EAChB,OAAO,EACP,OAAO,CACR,CAAC;QACJ,CAAC,CAAC;QAIA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,YAAY,CACzC,6BAAa,CAAC,IAAI,CACnB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CACP,GAAG,iBAAiB,CAAC,IAAI,6FAA6F,CACvH,CAAC;YACF,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;CACF","sourcesContent":["import {\n AppObject,\n AppObjectRepo,\n AppObjectUC,\n getSingletonComponent,\n} from \"@vived/core\";\nimport { AppDispatcher } from \"../Entities/AppDispatcher\";\n\nexport abstract class StateHasChangedUC extends AppObjectUC {\n static readonly type = \"StateHasChangedUC\";\n readonly requestType = \"ON_STATE_CHANGE\";\n\n abstract stateHasChanged(\n stateObject: object,\n assets: string[],\n validationErrorMessage?: string | undefined,\n responseType?: string | undefined,\n ): void;\n\n static get = (appObjects: AppObjectRepo): StateHasChangedUC | undefined =>\n getSingletonComponent(StateHasChangedUC.type, appObjects);\n}\n\nexport function makeStateHasChangedUC(appObject: AppObject): StateHasChangedUC {\n return new StateHasChangedUCImp(appObject);\n}\n\nclass StateHasChangedUCImp extends StateHasChangedUC {\n private appDispatcher?: AppDispatcher;\n\n stateHasChanged = (\n stateObject: object,\n assets: string[],\n validationErrorMessage?: string | undefined,\n responseType?: string | undefined,\n ) => {\n if (!this.appDispatcher) return;\n\n const payload = {\n stateObject,\n assets,\n validationErrorMessage,\n responseType,\n };\n\n const version = responseType !== undefined ? 4 : 3;\n\n this.appDispatcher.formRequestAndDispatch(\n this.requestType,\n version,\n payload,\n );\n };\n\n constructor(appObject: AppObject) {\n super(appObject, StateHasChangedUC.type);\n this.appDispatcher = appObject.getComponent<AppDispatcher>(\n AppDispatcher.type,\n );\n if (!this.appDispatcher) {\n this.warn(\n `${StateHasChangedUC.type} has been added to an App Object that does not have a AppDispatcher. Add a dispatcher first`,\n );\n this.dispose();\n }\n }\n}\n"]}
|
|
@@ -46,5 +46,35 @@ describe("Dispatch StateHasChangedUC", () => {
|
|
|
46
46
|
expect(payload.assets).toEqual(["model1"]);
|
|
47
47
|
expect(payload.validationErrorMessage).toEqual("validation message");
|
|
48
48
|
});
|
|
49
|
+
it("Dispatches version 3 when responseType is not provided", () => {
|
|
50
|
+
const { uc, mockDispatcher } = makeTestRig();
|
|
51
|
+
const spy = jest.spyOn(mockDispatcher, "formRequestAndDispatch");
|
|
52
|
+
uc.stateHasChanged({ foo: "bar" }, ["model1"]);
|
|
53
|
+
expect(spy).toHaveBeenCalledTimes(1);
|
|
54
|
+
expect(spy.mock.calls[0][1]).toEqual(3);
|
|
55
|
+
});
|
|
56
|
+
it("Dispatches version 4 when responseType is provided", () => {
|
|
57
|
+
const { uc, mockDispatcher } = makeTestRig();
|
|
58
|
+
const spy = jest.spyOn(mockDispatcher, "formRequestAndDispatch");
|
|
59
|
+
uc.stateHasChanged({ foo: "bar" }, ["model1"], undefined, "SCORE");
|
|
60
|
+
expect(spy).toHaveBeenCalledTimes(1);
|
|
61
|
+
expect(spy.mock.calls[0][1]).toEqual(4);
|
|
62
|
+
});
|
|
63
|
+
it("Includes responseType in the payload when provided", () => {
|
|
64
|
+
const { uc, mockDispatcher } = makeTestRig();
|
|
65
|
+
const spy = jest.spyOn(mockDispatcher, "formRequestAndDispatch");
|
|
66
|
+
uc.stateHasChanged({ foo: "bar" }, ["model1"], undefined, "HIT");
|
|
67
|
+
expect(spy).toHaveBeenCalledTimes(1);
|
|
68
|
+
const payload = spy.mock.calls[0][2];
|
|
69
|
+
expect(payload.responseType).toEqual("HIT");
|
|
70
|
+
});
|
|
71
|
+
it("Has undefined responseType in the payload when not provided", () => {
|
|
72
|
+
const { uc, mockDispatcher } = makeTestRig();
|
|
73
|
+
const spy = jest.spyOn(mockDispatcher, "formRequestAndDispatch");
|
|
74
|
+
uc.stateHasChanged({ foo: "bar" }, ["model1"]);
|
|
75
|
+
expect(spy).toHaveBeenCalledTimes(1);
|
|
76
|
+
const payload = spy.mock.calls[0][2];
|
|
77
|
+
expect(payload.responseType).toBeUndefined();
|
|
78
|
+
});
|
|
49
79
|
});
|
|
50
80
|
//# sourceMappingURL=StateHasChangedUC.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StateHasChangedUC.test.js","sourceRoot":"","sources":["../../../../src/Dispatcher/UC/StateHasChangedUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { AppDispatcher } from \"../Entities/AppDispatcher\";\nimport { StateHasChangedUC, makeStateHasChangedUC } from \"./StateHasChangedUC\";\n\nclass MockDispatcher extends AppDispatcher {\n dispatch = jest.fn();\n formRequestAndDispatch = jest.fn();\n}\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const dispatcher = appObjects.getOrCreate(\"Dispatcher\");\n const mockDispatcher = new MockDispatcher(dispatcher, AppDispatcher.type);\n const uc = makeStateHasChangedUC(dispatcher);\n\n return { uc, dispatcher, appObjects, mockDispatcher };\n}\n\ndescribe(\"Dispatch StateHasChangedUC\", () => {\n it(\"Gets the UC\", () => {\n const { uc, appObjects } = makeTestRig();\n\n expect(StateHasChangedUC.get(appObjects)).toEqual(uc);\n });\n\n it(\"Dispatches the correct type\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n const spy = jest.spyOn(mockDispatcher, \"formRequestAndDispatch\");\n\n uc.stateHasChanged({ foo: \"bar\" }, [\"model1\"], \"validation message\");\n\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy.mock.calls[0][0]).toEqual(\"ON_STATE_CHANGE\");\n });\n\n it(\"Dispatches the correct version\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n const spy = jest.spyOn(mockDispatcher, \"formRequestAndDispatch\");\n\n uc.stateHasChanged({ foo: \"bar\" }, [\"model1\"], \"validation message\");\n\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy.mock.calls[0][1]).toEqual(3);\n });\n\n it(\"Dispatches the correct payload\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n const spy = jest.spyOn(mockDispatcher, \"formRequestAndDispatch\");\n\n uc.stateHasChanged({ foo: \"bar\" }, [\"model1\"], \"validation message\");\n expect(spy).toHaveBeenCalledTimes(1);\n const payload = spy.mock.calls[0][2];\n\n expect(payload.stateObject).toEqual({ foo: \"bar\" });\n expect(payload.assets).toEqual([\"model1\"]);\n expect(payload.validationErrorMessage).toEqual(\"validation message\");\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"StateHasChangedUC.test.js","sourceRoot":"","sources":["../../../../src/Dispatcher/UC/StateHasChangedUC.test.ts"],"names":[],"mappings":";;AAAA,sCAAgD;AAChD,6DAA0D;AAC1D,2DAA+E;AAE/E,MAAM,cAAe,SAAQ,6BAAa;IAA1C;;QACE,aAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACrB,2BAAsB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACrC,CAAC;CAAA;AAED,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,IAAA,wBAAiB,GAAE,CAAC;IACvC,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,UAAU,EAAE,6BAAa,CAAC,IAAI,CAAC,CAAC;IAC1E,MAAM,EAAE,GAAG,IAAA,yCAAqB,EAAC,UAAU,CAAC,CAAC;IAE7C,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;AACxD,CAAC;AAED,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;QACrB,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAEzC,MAAM,CAAC,qCAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,GAAG,WAAW,EAAE,CAAC;QAE7C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC;QAEjE,EAAE,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC,CAAC;QAErE,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,GAAG,WAAW,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC;QAEjE,EAAE,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC,CAAC;QAErE,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,GAAG,WAAW,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC;QAEjE,EAAE,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC,CAAC;QACrE,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAErC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QACpD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,GAAG,WAAW,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC;QAEjE,EAAE,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE/C,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,GAAG,WAAW,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC;QAEjE,EAAE,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAEnE,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,GAAG,WAAW,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC;QAEjE,EAAE,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAEjE,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAErC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,GAAG,WAAW,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC;QAEjE,EAAE,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE/C,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAErC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,aAAa,EAAE,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { AppDispatcher } from \"../Entities/AppDispatcher\";\nimport { StateHasChangedUC, makeStateHasChangedUC } from \"./StateHasChangedUC\";\n\nclass MockDispatcher extends AppDispatcher {\n dispatch = jest.fn();\n formRequestAndDispatch = jest.fn();\n}\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const dispatcher = appObjects.getOrCreate(\"Dispatcher\");\n const mockDispatcher = new MockDispatcher(dispatcher, AppDispatcher.type);\n const uc = makeStateHasChangedUC(dispatcher);\n\n return { uc, dispatcher, appObjects, mockDispatcher };\n}\n\ndescribe(\"Dispatch StateHasChangedUC\", () => {\n it(\"Gets the UC\", () => {\n const { uc, appObjects } = makeTestRig();\n\n expect(StateHasChangedUC.get(appObjects)).toEqual(uc);\n });\n\n it(\"Dispatches the correct type\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n const spy = jest.spyOn(mockDispatcher, \"formRequestAndDispatch\");\n\n uc.stateHasChanged({ foo: \"bar\" }, [\"model1\"], \"validation message\");\n\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy.mock.calls[0][0]).toEqual(\"ON_STATE_CHANGE\");\n });\n\n it(\"Dispatches the correct version\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n const spy = jest.spyOn(mockDispatcher, \"formRequestAndDispatch\");\n\n uc.stateHasChanged({ foo: \"bar\" }, [\"model1\"], \"validation message\");\n\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy.mock.calls[0][1]).toEqual(3);\n });\n\n it(\"Dispatches the correct payload\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n const spy = jest.spyOn(mockDispatcher, \"formRequestAndDispatch\");\n\n uc.stateHasChanged({ foo: \"bar\" }, [\"model1\"], \"validation message\");\n expect(spy).toHaveBeenCalledTimes(1);\n const payload = spy.mock.calls[0][2];\n\n expect(payload.stateObject).toEqual({ foo: \"bar\" });\n expect(payload.assets).toEqual([\"model1\"]);\n expect(payload.validationErrorMessage).toEqual(\"validation message\");\n });\n\n it(\"Dispatches version 3 when responseType is not provided\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n const spy = jest.spyOn(mockDispatcher, \"formRequestAndDispatch\");\n\n uc.stateHasChanged({ foo: \"bar\" }, [\"model1\"]);\n\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy.mock.calls[0][1]).toEqual(3);\n });\n\n it(\"Dispatches version 4 when responseType is provided\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n const spy = jest.spyOn(mockDispatcher, \"formRequestAndDispatch\");\n\n uc.stateHasChanged({ foo: \"bar\" }, [\"model1\"], undefined, \"SCORE\");\n\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy.mock.calls[0][1]).toEqual(4);\n });\n\n it(\"Includes responseType in the payload when provided\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n const spy = jest.spyOn(mockDispatcher, \"formRequestAndDispatch\");\n\n uc.stateHasChanged({ foo: \"bar\" }, [\"model1\"], undefined, \"HIT\");\n\n expect(spy).toHaveBeenCalledTimes(1);\n const payload = spy.mock.calls[0][2];\n\n expect(payload.responseType).toEqual(\"HIT\");\n });\n\n it(\"Has undefined responseType in the payload when not provided\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n const spy = jest.spyOn(mockDispatcher, \"formRequestAndDispatch\");\n\n uc.stateHasChanged({ foo: \"bar\" }, [\"model1\"]);\n\n expect(spy).toHaveBeenCalledTimes(1);\n const payload = spy.mock.calls[0][2];\n\n expect(payload.responseType).toBeUndefined();\n });\n});\n"]}
|
|
@@ -10,6 +10,7 @@ class MockDispatchStateChange extends Dispatcher_1.DispatchStateChangeUC {
|
|
|
10
10
|
super(appObject, Dispatcher_1.DispatchStateChangeUC.type);
|
|
11
11
|
this.validateState = jest.fn();
|
|
12
12
|
this.getStateAssets = jest.fn();
|
|
13
|
+
this.getResponseType = jest.fn();
|
|
13
14
|
this.doDispatch = jest.fn();
|
|
14
15
|
}
|
|
15
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleAllowHoverLabel.test.js","sourceRoot":"","sources":["../../../../src/HoverLabel/UseCases/ToggleAllowHoverLabel.test.ts"],"names":[],"mappings":";;;AAAA,sCAA2D;AAC3D,iDAAyD;AACzD,mEAAoE;AACpE,mEAAoE;AAEpE,MAAa,uBAAwB,SAAQ,kCAAqB;
|
|
1
|
+
{"version":3,"file":"ToggleAllowHoverLabel.test.js","sourceRoot":"","sources":["../../../../src/HoverLabel/UseCases/ToggleAllowHoverLabel.test.ts"],"names":[],"mappings":";;;AAAA,sCAA2D;AAC3D,iDAAyD;AACzD,mEAAoE;AACpE,mEAAoE;AAEpE,MAAa,uBAAwB,SAAQ,kCAAqB;IAMhE,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,kCAAqB,CAAC,IAAI,CAAC,CAAC;QAN/C,kBAAa,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC1B,mBAAc,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC3B,oBAAe,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC5B,eAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAIvB,CAAC;CACF;AATD,0DASC;AAED,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,IAAA,wBAAiB,GAAE,CAAC;IAEvC,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,IAAA,uCAAoB,EAAC,MAAM,CAAC,CAAC;IAEhD,MAAM,uBAAuB,GAAG,IAAA,iDAAyB,EAAC,MAAM,CAAC,CAAC;IAElE,MAAM,uBAAuB,GAAG,IAAI,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAEpE,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,CAAC;AAC1E,CAAC;AAED,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,EAAE,UAAU,EAAE,uBAAuB,EAAE,GAAG,WAAW,EAAE,CAAC;QAE9D,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,UAAU,EAAE,CAAC;QAEhD,uBAAuB,CAAC,qBAAqB,EAAE,CAAC;QAEhD,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,SAAS,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,GAAG,WAAW,EAAE,CAAC;QAE3E,uBAAuB,CAAC,qBAAqB,EAAE,CAAC;QAEhD,MAAM,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { AppObject, makeAppObjectRepo } from \"@vived/core\";\nimport { DispatchStateChangeUC } from \"../../Dispatcher\";\nimport { makeHoverLabelEntity } from \"../Entities/HoverLabelEntity\";\nimport { makeToggleAllowHoverLabel } from \"./ToggleAllowHoverLabel\";\n\nexport class MockDispatchStateChange extends DispatchStateChangeUC {\n validateState = jest.fn();\n getStateAssets = jest.fn();\n getResponseType = jest.fn();\n doDispatch = jest.fn();\n\n constructor(appObject: AppObject) {\n super(appObject, DispatchStateChangeUC.type);\n }\n}\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n\n const appObj = appObjects.getOrCreate(\"appObj\");\n const hoverLabel = makeHoverLabelEntity(appObj);\n\n const toggleAllowHoverLabelUC = makeToggleAllowHoverLabel(appObj);\n\n const mockDispatchStateChange = new MockDispatchStateChange(appObj);\n\n return { hoverLabel, toggleAllowHoverLabelUC, mockDispatchStateChange };\n}\n\ndescribe(\"Toggle Allow Hover Label UC\", () => {\n it(\"Toggles allowHoverLabel flag\", () => {\n const { hoverLabel, toggleAllowHoverLabelUC } = makeTestRig();\n\n expect(hoverLabel.allowHoverLabel).toBeTruthy();\n\n toggleAllowHoverLabelUC.toggleAllowHoverLabel();\n\n expect(hoverLabel.allowHoverLabel).toBeFalsy();\n });\n\n it(\"Dispatches state change\", () => {\n const { toggleAllowHoverLabelUC, mockDispatchStateChange } = makeTestRig();\n\n toggleAllowHoverLabelUC.toggleAllowHoverLabel();\n\n expect(mockDispatchStateChange.doDispatch).toHaveBeenCalled();\n });\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClearStoredViewUC.test.js","sourceRoot":"","sources":["../../../../src/StoredView/UC/ClearStoredViewUC.test.ts"],"names":[],"mappings":";;AAAA,sCAAgD;AAChD,sCAAyD;AACzD,iDAAyD;AACzD,0CAA6C;AAC7C,2DAA+E;AAE/E,MAAM,uBAAwB,SAAQ,kCAAqB;IAA3D;;QACE,eAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACvB,mBAAc,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC3B,kBAAa,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"ClearStoredViewUC.test.js","sourceRoot":"","sources":["../../../../src/StoredView/UC/ClearStoredViewUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { Angle, Quaternion, Vector3 } from \"@vived/core\";\nimport { DispatchStateChangeUC } from \"../../Dispatcher\";\nimport { makeStoredView } from \"../Entities\";\nimport { ClearStoredViewUC, makeClearStoredViewUC } from \"./ClearStoredViewUC\";\n\nclass MockDispatchStateChange extends DispatchStateChangeUC {\n doDispatch = jest.fn();\n getStateAssets = jest.fn();\n validateState = jest.fn();\n getResponseType = jest.fn();\n}\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n\n const appObj = appObjects.getOrCreate(\"SceneRoto\");\n const storedView = makeStoredView(appObj);\n const mockDispatch = new MockDispatchStateChange(\n appObj,\n DispatchStateChangeUC.type,\n );\n\n const clearStoredViewUC = makeClearStoredViewUC(appObj);\n const clearStoredView = clearStoredViewUC.clearStoredView;\n\n return {\n appObj,\n storedView,\n clearStoredViewUC,\n clearStoredView,\n mockDispatch,\n appObjects,\n };\n}\n\ndescribe(\"Clear Stored View UC\", () => {\n it(\"Is added to the app object as a component\", () => {\n const { appObj, clearStoredViewUC } = makeTestRig();\n\n expect(appObj.hasComponent(clearStoredViewUC.type)).toBeTruthy();\n expect(\n appObj.getComponent<ClearStoredViewUC>(clearStoredViewUC.type),\n ).toEqual(clearStoredViewUC);\n });\n\n it(\"Clears the current view\", () => {\n const { clearStoredView, storedView } = makeTestRig();\n\n storedView.scale = 2;\n storedView.position = new Vector3(1, 2, 3);\n const rotQ = Quaternion.FromAngleAxis(\n new Vector3(1, 2, 3),\n Angle.FromDegrees(25),\n );\n storedView.rotation = rotQ;\n storedView.hasStoredView = true;\n\n clearStoredView();\n\n expect(storedView.position).toEqual(Vector3.Zero());\n expect(storedView.rotation).toEqual(Quaternion.Identity());\n expect(storedView.scale).toEqual(1);\n expect(storedView.hasStoredView).toEqual(false);\n });\n\n it(\"Dispatches a state change\", () => {\n const { clearStoredView, storedView, mockDispatch } = makeTestRig();\n\n storedView.scale = 2;\n storedView.position = new Vector3(1, 2, 3);\n const rotQ = Quaternion.FromAngleAxis(\n new Vector3(1, 2, 3),\n Angle.FromDegrees(25),\n );\n storedView.rotation = rotQ;\n storedView.hasStoredView = true;\n\n clearStoredView();\n\n expect(mockDispatch.doDispatch).toHaveBeenCalled();\n });\n\n it(\"Gets the UC\", () => {\n const { appObjects, clearStoredViewUC } = makeTestRig();\n expect(ClearStoredViewUC.get(appObjects)).toEqual(clearStoredViewUC);\n });\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoreCurrentViewUC.test.js","sourceRoot":"","sources":["../../../../src/StoredView/UC/StoreCurrentViewUC.test.ts"],"names":[],"mappings":";;AAAA,sCAAgD;AAChD,sCAAyD;AACzD,iDAAyD;AACzD,+CAAsD;AACtD,0CAA6C;AAC7C,6DAG8B;AAE9B,MAAM,uBAAwB,SAAQ,kCAAqB;IAA3D;;QACE,eAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACvB,mBAAc,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC3B,kBAAa,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"StoreCurrentViewUC.test.js","sourceRoot":"","sources":["../../../../src/StoredView/UC/StoreCurrentViewUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { Angle, Quaternion, Vector3 } from \"@vived/core\";\nimport { DispatchStateChangeUC } from \"../../Dispatcher\";\nimport { makeSceneRootEntity } from \"../../SceneRoot\";\nimport { makeStoredView } from \"../Entities\";\nimport {\n makeStoreCurrentViewUC,\n StoreCurrentViewUC,\n} from \"./StoreCurrentViewUC\";\n\nclass MockDispatchStateChange extends DispatchStateChangeUC {\n doDispatch = jest.fn();\n getStateAssets = jest.fn();\n validateState = jest.fn();\n getResponseType = jest.fn();\n}\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n\n const appObj = appObjects.getOrCreate(\"SceneRoot\");\n const sceneRoot = makeSceneRootEntity(appObj);\n const storedView = makeStoredView(appObj);\n const mockDispatch = new MockDispatchStateChange(\n appObj,\n DispatchStateChangeUC.type,\n );\n\n const storeCurrentViewUC = makeStoreCurrentViewUC(appObj);\n\n return {\n appObj,\n sceneRoot,\n storedView,\n storeCurrentViewUC,\n mockDispatch,\n appObjects,\n };\n}\n\ndescribe(\"Store Current View UC\", () => {\n it(\"Is added to the app object as a component\", () => {\n const { appObj, storeCurrentViewUC } = makeTestRig();\n\n expect(appObj.hasComponent(storeCurrentViewUC.type)).toBeTruthy();\n expect(\n appObj.getComponent<StoreCurrentViewUC>(storeCurrentViewUC.type),\n ).toEqual(storeCurrentViewUC);\n });\n\n it(\"Stores the current view\", () => {\n const { storeCurrentViewUC, storedView, sceneRoot } = makeTestRig();\n expect(storedView.position).toEqual(Vector3.Zero());\n expect(storedView.rotation).toEqual(Quaternion.Identity());\n expect(storedView.scale).toEqual(1);\n expect(storedView.hasStoredView).toEqual(false);\n\n sceneRoot.scale = 2;\n sceneRoot.position = new Vector3(1, 2, 3);\n const rotQ = Quaternion.FromAngleAxis(\n new Vector3(1, 2, 3),\n Angle.FromDegrees(25),\n );\n sceneRoot.rotation = rotQ;\n\n storeCurrentViewUC.storeCurrentView();\n\n expect(storedView.position).toEqual(new Vector3(1, 2, 3));\n expect(Quaternion.Close(storedView.rotation, sceneRoot.rotation)).toEqual(\n true,\n );\n expect(storedView.scale).toEqual(2);\n expect(storedView.hasStoredView).toEqual(true);\n });\n\n it(\"Dispatches a state change\", () => {\n const { storeCurrentViewUC, mockDispatch, sceneRoot } = makeTestRig();\n\n sceneRoot.scale = 2;\n sceneRoot.position = new Vector3(1, 2, 3);\n const rotQ = Quaternion.FromAngleAxis(\n new Vector3(1, 2, 3),\n Angle.FromDegrees(25),\n );\n sceneRoot.rotation = rotQ;\n\n storeCurrentViewUC.storeCurrentView();\n\n expect(mockDispatch.doDispatch).toHaveBeenCalled();\n });\n\n it(\"Gets the UC\", () => {\n const { appObjects, storeCurrentViewUC } = makeTestRig();\n expect(StoreCurrentViewUC.get(appObjects)).toEqual(storeCurrentViewUC);\n });\n});\n"]}
|
|
@@ -4,6 +4,7 @@ export class MockDispatchStateChange extends DispatchStateChangeUC {
|
|
|
4
4
|
super(appObject, DispatchStateChangeUC.type);
|
|
5
5
|
this.validateState = () => undefined;
|
|
6
6
|
this.getStateAssets = () => [];
|
|
7
|
+
this.getResponseType = () => undefined;
|
|
7
8
|
this.doDispatch = () => { };
|
|
8
9
|
}
|
|
9
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MockDispatchStateChange.js","sourceRoot":"","sources":["../../../../src/Dispatcher/Mocks/MockDispatchStateChange.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,MAAM,OAAO,uBAAwB,SAAQ,qBAAqB;
|
|
1
|
+
{"version":3,"file":"MockDispatchStateChange.js","sourceRoot":"","sources":["../../../../src/Dispatcher/Mocks/MockDispatchStateChange.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,MAAM,OAAO,uBAAwB,SAAQ,qBAAqB;IAMhE,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAN/C,kBAAa,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC;QAChC,mBAAc,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC;QAC1B,oBAAe,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC;QAClC,eAAU,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;IAItB,CAAC;CACF;AAED,MAAM,UAAU,2BAA2B,CAAC,UAAyB;IACnE,OAAO,IAAI,uBAAuB,CAAC,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;AAC3E,CAAC","sourcesContent":["import { AppObjectRepo } from \"@vived/core\";\nimport { AppObject } from \"@vived/core\";\nimport { DispatchStateChangeUC } from \"../UC/DispatchStateChangeUC\";\n\nexport class MockDispatchStateChange extends DispatchStateChangeUC {\n validateState = () => undefined;\n getStateAssets = () => [];\n getResponseType = () => undefined;\n doDispatch = () => {};\n\n constructor(appObject: AppObject) {\n super(appObject, DispatchStateChangeUC.type);\n }\n}\n\nexport function makeMockDispatchStateChange(appObjects: AppObjectRepo) {\n return new MockDispatchStateChange(appObjects.getOrCreate(\"Dispatcher\"));\n}\n"]}
|
|
@@ -25,13 +25,15 @@ export function dispatchStateChange(appObjects) {
|
|
|
25
25
|
class DispatchStateChangeUCImp extends DispatchStateChangeUC {
|
|
26
26
|
constructor(appObject) {
|
|
27
27
|
super(appObject, DispatchStateChangeUC.type);
|
|
28
|
-
this.requestVersion = 3;
|
|
29
28
|
this.validateState = () => {
|
|
30
29
|
return undefined;
|
|
31
30
|
};
|
|
32
31
|
this.getStateAssets = () => {
|
|
33
32
|
return [];
|
|
34
33
|
};
|
|
34
|
+
this.getResponseType = () => {
|
|
35
|
+
return undefined;
|
|
36
|
+
};
|
|
35
37
|
this.doDispatch = () => {
|
|
36
38
|
const stateMachine = StateMachineEntity.get(this.appObject.appObjectRepo);
|
|
37
39
|
if (!stateMachine) {
|
|
@@ -45,12 +47,15 @@ class DispatchStateChangeUCImp extends DispatchStateChangeUC {
|
|
|
45
47
|
}
|
|
46
48
|
if (!baseApp.isAuthoring)
|
|
47
49
|
return;
|
|
50
|
+
const responseType = this.getResponseType();
|
|
48
51
|
const payload = {
|
|
49
52
|
stateObject: stateMachine.getSerializedStates(),
|
|
50
53
|
assets: this.getStateAssets(),
|
|
51
54
|
validationErrorMessage: this.validateState(),
|
|
55
|
+
responseType,
|
|
52
56
|
};
|
|
53
|
-
|
|
57
|
+
const version = responseType !== undefined ? 4 : 3;
|
|
58
|
+
this.appDispatcher?.formRequestAndDispatch(this.requestType, version, payload);
|
|
54
59
|
};
|
|
55
60
|
this.appDispatcher = appObject.getComponent(AppDispatcher.type);
|
|
56
61
|
if (!this.appDispatcher) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DispatchStateChangeUC.js","sourceRoot":"","sources":["../../../../src/Dispatcher/UC/DispatchStateChangeUC.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,EACX,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"DispatchStateChangeUC.js","sourceRoot":"","sources":["../../../../src/Dispatcher/UC/DispatchStateChangeUC.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AppObject,\n AppObjectRepo,\n AppObjectUC,\n getSingletonComponent,\n} from \"@vived/core\";\nimport { BaseAppState } from \"../../BaseApp/Entity/BaseAppState\";\nimport { StateMachineEntity } from \"../../StateMachine/Entities\";\nimport { AppDispatcher } from \"../Entities/AppDispatcher\";\n\nexport interface DispatchStateChangePayload {\n stateObject: object;\n assets: string[];\n validationErrorMessage?: string | undefined;\n responseType?: string | undefined;\n}\n\nexport abstract class DispatchStateChangeUC extends AppObjectUC {\n static readonly type = \"DispatchStateChangeUC\";\n readonly requestType = \"ON_STATE_CHANGE\";\n\n abstract doDispatch(): void;\n abstract validateState: () => string | undefined;\n abstract getStateAssets: () => string[];\n abstract getResponseType: () => string | undefined;\n\n static get = (appObjects: AppObjectRepo): DispatchStateChangeUC | undefined =>\n getSingletonComponent(DispatchStateChangeUC.type, appObjects);\n}\n\nexport function makeDispatchStateChangeUC(\n appObject: AppObject,\n): DispatchStateChangeUC {\n return new DispatchStateChangeUCImp(appObject);\n}\n\nexport function dispatchStateChange(appObjects: AppObjectRepo) {\n const dispatchUC = DispatchStateChangeUC.get(appObjects);\n\n if (dispatchUC) {\n dispatchUC.doDispatch();\n } else {\n appObjects.submitWarning(\n \"dispatchStateChange\",\n \"Can't find DispatchStateChangeUC\",\n );\n }\n}\n\nclass DispatchStateChangeUCImp extends DispatchStateChangeUC {\n private appDispatcher?: AppDispatcher;\n\n validateState: () => string | undefined = () => {\n return undefined;\n };\n getStateAssets: () => string[] = () => {\n return [];\n };\n getResponseType: () => string | undefined = () => {\n return undefined;\n };\n\n doDispatch = (): void => {\n const stateMachine = StateMachineEntity.get(this.appObject.appObjectRepo);\n\n if (!stateMachine) {\n this.warn(\"Could not find StateMachineEntity\");\n return;\n }\n\n const baseApp = BaseAppState.get(this.appObject.appObjectRepo);\n if (!baseApp) {\n this.warn(\"Could not find BaseAppState\");\n return;\n }\n\n if (!baseApp.isAuthoring) return;\n\n const responseType = this.getResponseType();\n\n const payload: DispatchStateChangePayload = {\n stateObject: stateMachine.getSerializedStates(),\n assets: this.getStateAssets(),\n validationErrorMessage: this.validateState(),\n responseType,\n };\n\n const version = responseType !== undefined ? 4 : 3;\n\n this.appDispatcher?.formRequestAndDispatch(\n this.requestType,\n version,\n payload,\n );\n };\n\n constructor(appObject: AppObject) {\n super(appObject, DispatchStateChangeUC.type);\n\n this.appDispatcher = appObject.getComponent<AppDispatcher>(\n AppDispatcher.type,\n );\n if (!this.appDispatcher) {\n this.warn(\n \"DispatchStateChangeUC has been added to an App Object that does not have a AppDispatcher. Add a dispatcher first\",\n );\n this.dispose();\n }\n }\n}\n"]}
|
|
@@ -85,5 +85,35 @@ describe("Dispatch State Change", () => {
|
|
|
85
85
|
.calls[0][2];
|
|
86
86
|
expect(payload.stateObject).toEqual({ mock: "state" });
|
|
87
87
|
});
|
|
88
|
+
it("Dispatches version 3 when getResponseType returns undefined", () => {
|
|
89
|
+
const { uc, mockDispatcher } = makeTestRig();
|
|
90
|
+
uc.doDispatch();
|
|
91
|
+
expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);
|
|
92
|
+
expect(mockDispatcher.formRequestAndDispatch.mock.calls[0][1]).toEqual(3);
|
|
93
|
+
});
|
|
94
|
+
it("Dispatches version 4 when getResponseType returns a value", () => {
|
|
95
|
+
const { uc, mockDispatcher } = makeTestRig();
|
|
96
|
+
uc.getResponseType = jest.fn().mockReturnValue("SCORE");
|
|
97
|
+
uc.doDispatch();
|
|
98
|
+
expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);
|
|
99
|
+
expect(mockDispatcher.formRequestAndDispatch.mock.calls[0][1]).toEqual(4);
|
|
100
|
+
});
|
|
101
|
+
it("Includes responseType in the payload when provided", () => {
|
|
102
|
+
const { uc, mockDispatcher } = makeTestRig();
|
|
103
|
+
uc.getResponseType = jest.fn().mockReturnValue("HIT");
|
|
104
|
+
uc.doDispatch();
|
|
105
|
+
expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);
|
|
106
|
+
const payload = mockDispatcher.formRequestAndDispatch.mock
|
|
107
|
+
.calls[0][2];
|
|
108
|
+
expect(payload.responseType).toEqual("HIT");
|
|
109
|
+
});
|
|
110
|
+
it("Has undefined responseType in the payload when not provided", () => {
|
|
111
|
+
const { uc, mockDispatcher } = makeTestRig();
|
|
112
|
+
uc.doDispatch();
|
|
113
|
+
expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);
|
|
114
|
+
const payload = mockDispatcher.formRequestAndDispatch.mock
|
|
115
|
+
.calls[0][2];
|
|
116
|
+
expect(payload.responseType).toBeUndefined();
|
|
117
|
+
});
|
|
88
118
|
});
|
|
89
119
|
//# sourceMappingURL=DispatchStateChangeUC.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DispatchStateChangeUC.test.js","sourceRoot":"","sources":["../../../../src/Dispatcher/UC/DispatchStateChangeUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { makeBaseAppState } from \"../../BaseApp/Entity/BaseAppState\";\nimport { makeMockStateMachine } from \"../../StateMachine\";\nimport { MockDispatcher } from \"../Mocks/MockDispatcher\";\nimport {\n dispatchStateChange,\n DispatchStateChangePayload,\n DispatchStateChangeUC,\n makeDispatchStateChangeUC,\n} from \"./DispatchStateChangeUC\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const dispatcherAO = appObjects.getOrCreate(\"dispatcher\");\n const mockDispatcher = new MockDispatcher(dispatcherAO);\n mockDispatcher.formRequestAndDispatch = jest.fn();\n const app = appObjects.getOrCreate(\"App\");\n const baseApp = makeBaseAppState(app);\n baseApp.isAuthoring = true;\n\n const mockStateMachine = makeMockStateMachine(appObjects);\n mockStateMachine.getSerializedStates.mockReturnValue({ mock: \"state\" });\n\n const uc = makeDispatchStateChangeUC(dispatcherAO);\n\n return {\n uc,\n mockDispatcher,\n appObjects,\n baseApp,\n mockStateMachine,\n };\n}\n\ndescribe(\"Dispatch State Change\", () => {\n it(\"Gets the UC\", () => {\n const { uc, appObjects } = makeTestRig();\n expect(DispatchStateChangeUC.get(appObjects)).toEqual(uc);\n });\n\n it(\"Finds and dispatches to the UC\", () => {\n const { appObjects, uc } = makeTestRig();\n\n uc.doDispatch = jest.fn();\n\n dispatchStateChange(appObjects);\n expect(uc.doDispatch).toHaveBeenCalled();\n });\n\n it(\"Does not dispatch if base app is not authoring\", () => {\n const { baseApp, uc, mockDispatcher } = makeTestRig();\n\n baseApp.isAuthoring = false;\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).not.toHaveBeenCalled();\n });\n\n it(\"Dispatches the correct type\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);\n expect(\n (mockDispatcher.formRequestAndDispatch as jest.Mock).mock.calls[0][0],\n ).toEqual(uc.requestType);\n });\n\n it(\"Dispatches the correct version\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);\n expect(\n (mockDispatcher.formRequestAndDispatch as jest.Mock).mock.calls[0][1],\n ).toEqual(3);\n });\n\n it(\"Dispatches the payload validation message as undefined\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);\n const payload = (mockDispatcher.formRequestAndDispatch as jest.Mock).mock\n .calls[0][2] as DispatchStateChangePayload;\n\n expect(payload.validationErrorMessage).toBeUndefined();\n });\n\n it(\"Dispatches the payload validation message\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n uc.validateState = jest.fn().mockReturnValue(\"Some validation message\");\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);\n const payload = (mockDispatcher.formRequestAndDispatch as jest.Mock).mock\n .calls[0][2] as DispatchStateChangePayload;\n\n expect(payload.validationErrorMessage).toEqual(\"Some validation message\");\n });\n\n it(\"Dispatches the payload assets\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n uc.getStateAssets = jest.fn().mockReturnValue([\"model1\"]);\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);\n const payload = (mockDispatcher.formRequestAndDispatch as jest.Mock).mock\n .calls[0][2] as DispatchStateChangePayload;\n\n expect(payload.assets).toEqual([\"model1\"]);\n });\n\n it(\"Dispatches the payload state\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);\n const payload = (mockDispatcher.formRequestAndDispatch as jest.Mock).mock\n .calls[0][2] as DispatchStateChangePayload;\n\n expect(payload.stateObject).toEqual({ mock: \"state\" });\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"DispatchStateChangeUC.test.js","sourceRoot":"","sources":["../../../../src/Dispatcher/UC/DispatchStateChangeUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { makeBaseAppState } from \"../../BaseApp/Entity/BaseAppState\";\nimport { makeMockStateMachine } from \"../../StateMachine\";\nimport { MockDispatcher } from \"../Mocks/MockDispatcher\";\nimport {\n dispatchStateChange,\n DispatchStateChangePayload,\n DispatchStateChangeUC,\n makeDispatchStateChangeUC,\n} from \"./DispatchStateChangeUC\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const dispatcherAO = appObjects.getOrCreate(\"dispatcher\");\n const mockDispatcher = new MockDispatcher(dispatcherAO);\n mockDispatcher.formRequestAndDispatch = jest.fn();\n const app = appObjects.getOrCreate(\"App\");\n const baseApp = makeBaseAppState(app);\n baseApp.isAuthoring = true;\n\n const mockStateMachine = makeMockStateMachine(appObjects);\n mockStateMachine.getSerializedStates.mockReturnValue({ mock: \"state\" });\n\n const uc = makeDispatchStateChangeUC(dispatcherAO);\n\n return {\n uc,\n mockDispatcher,\n appObjects,\n baseApp,\n mockStateMachine,\n };\n}\n\ndescribe(\"Dispatch State Change\", () => {\n it(\"Gets the UC\", () => {\n const { uc, appObjects } = makeTestRig();\n expect(DispatchStateChangeUC.get(appObjects)).toEqual(uc);\n });\n\n it(\"Finds and dispatches to the UC\", () => {\n const { appObjects, uc } = makeTestRig();\n\n uc.doDispatch = jest.fn();\n\n dispatchStateChange(appObjects);\n expect(uc.doDispatch).toHaveBeenCalled();\n });\n\n it(\"Does not dispatch if base app is not authoring\", () => {\n const { baseApp, uc, mockDispatcher } = makeTestRig();\n\n baseApp.isAuthoring = false;\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).not.toHaveBeenCalled();\n });\n\n it(\"Dispatches the correct type\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);\n expect(\n (mockDispatcher.formRequestAndDispatch as jest.Mock).mock.calls[0][0],\n ).toEqual(uc.requestType);\n });\n\n it(\"Dispatches the correct version\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);\n expect(\n (mockDispatcher.formRequestAndDispatch as jest.Mock).mock.calls[0][1],\n ).toEqual(3);\n });\n\n it(\"Dispatches the payload validation message as undefined\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);\n const payload = (mockDispatcher.formRequestAndDispatch as jest.Mock).mock\n .calls[0][2] as DispatchStateChangePayload;\n\n expect(payload.validationErrorMessage).toBeUndefined();\n });\n\n it(\"Dispatches the payload validation message\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n uc.validateState = jest.fn().mockReturnValue(\"Some validation message\");\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);\n const payload = (mockDispatcher.formRequestAndDispatch as jest.Mock).mock\n .calls[0][2] as DispatchStateChangePayload;\n\n expect(payload.validationErrorMessage).toEqual(\"Some validation message\");\n });\n\n it(\"Dispatches the payload assets\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n uc.getStateAssets = jest.fn().mockReturnValue([\"model1\"]);\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);\n const payload = (mockDispatcher.formRequestAndDispatch as jest.Mock).mock\n .calls[0][2] as DispatchStateChangePayload;\n\n expect(payload.assets).toEqual([\"model1\"]);\n });\n\n it(\"Dispatches the payload state\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);\n const payload = (mockDispatcher.formRequestAndDispatch as jest.Mock).mock\n .calls[0][2] as DispatchStateChangePayload;\n\n expect(payload.stateObject).toEqual({ mock: \"state\" });\n });\n\n it(\"Dispatches version 3 when getResponseType returns undefined\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);\n expect(\n (mockDispatcher.formRequestAndDispatch as jest.Mock).mock.calls[0][1],\n ).toEqual(3);\n });\n\n it(\"Dispatches version 4 when getResponseType returns a value\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n uc.getResponseType = jest.fn().mockReturnValue(\"SCORE\");\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);\n expect(\n (mockDispatcher.formRequestAndDispatch as jest.Mock).mock.calls[0][1],\n ).toEqual(4);\n });\n\n it(\"Includes responseType in the payload when provided\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n uc.getResponseType = jest.fn().mockReturnValue(\"HIT\");\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);\n const payload = (mockDispatcher.formRequestAndDispatch as jest.Mock).mock\n .calls[0][2] as DispatchStateChangePayload;\n\n expect(payload.responseType).toEqual(\"HIT\");\n });\n\n it(\"Has undefined responseType in the payload when not provided\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n uc.doDispatch();\n\n expect(mockDispatcher.formRequestAndDispatch).toHaveBeenCalledTimes(1);\n const payload = (mockDispatcher.formRequestAndDispatch as jest.Mock).mock\n .calls[0][2] as DispatchStateChangePayload;\n\n expect(payload.responseType).toBeUndefined();\n });\n});\n"]}
|
|
@@ -14,16 +14,17 @@ export function makeStateHasChangedUC(appObject) {
|
|
|
14
14
|
class StateHasChangedUCImp extends StateHasChangedUC {
|
|
15
15
|
constructor(appObject) {
|
|
16
16
|
super(appObject, StateHasChangedUC.type);
|
|
17
|
-
this.
|
|
18
|
-
this.stateHasChanged = (stateObject, assets, validationErrorMessage) => {
|
|
17
|
+
this.stateHasChanged = (stateObject, assets, validationErrorMessage, responseType) => {
|
|
19
18
|
if (!this.appDispatcher)
|
|
20
19
|
return;
|
|
21
20
|
const payload = {
|
|
22
21
|
stateObject,
|
|
23
22
|
assets,
|
|
24
23
|
validationErrorMessage,
|
|
24
|
+
responseType,
|
|
25
25
|
};
|
|
26
|
-
|
|
26
|
+
const version = responseType !== undefined ? 4 : 3;
|
|
27
|
+
this.appDispatcher.formRequestAndDispatch(this.requestType, version, payload);
|
|
27
28
|
};
|
|
28
29
|
this.appDispatcher = appObject.getComponent(AppDispatcher.type);
|
|
29
30
|
if (!this.appDispatcher) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StateHasChangedUC.js","sourceRoot":"","sources":["../../../../src/Dispatcher/UC/StateHasChangedUC.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,EACX,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,MAAM,OAAgB,iBAAkB,SAAQ,WAAW;IAA3D;;QAEW,gBAAW,GAAG,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"StateHasChangedUC.js","sourceRoot":"","sources":["../../../../src/Dispatcher/UC/StateHasChangedUC.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,EACX,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,MAAM,OAAgB,iBAAkB,SAAQ,WAAW;IAA3D;;QAEW,gBAAW,GAAG,iBAAiB,CAAC;IAW3C,CAAC;;AAZiB,sBAAI,GAAG,mBAAmB,AAAtB,CAAuB;AAUpC,qBAAG,GAAG,CAAC,UAAyB,EAAiC,EAAE,CACxE,qBAAqB,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,AADjD,CACkD;AAG9D,MAAM,UAAU,qBAAqB,CAAC,SAAoB;IACxD,OAAO,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,oBAAqB,SAAQ,iBAAiB;IA2BlD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAzB3C,oBAAe,GAAG,CAChB,WAAmB,EACnB,MAAgB,EAChB,sBAA2C,EAC3C,YAAiC,EACjC,EAAE;YACF,IAAI,CAAC,IAAI,CAAC,aAAa;gBAAE,OAAO;YAEhC,MAAM,OAAO,GAAG;gBACd,WAAW;gBACX,MAAM;gBACN,sBAAsB;gBACtB,YAAY;aACb,CAAC;YAEF,MAAM,OAAO,GAAG,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEnD,IAAI,CAAC,aAAa,CAAC,sBAAsB,CACvC,IAAI,CAAC,WAAW,EAChB,OAAO,EACP,OAAO,CACR,CAAC;QACJ,CAAC,CAAC;QAIA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,YAAY,CACzC,aAAa,CAAC,IAAI,CACnB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CACP,GAAG,iBAAiB,CAAC,IAAI,6FAA6F,CACvH,CAAC;YACF,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;CACF","sourcesContent":["import {\n AppObject,\n AppObjectRepo,\n AppObjectUC,\n getSingletonComponent,\n} from \"@vived/core\";\nimport { AppDispatcher } from \"../Entities/AppDispatcher\";\n\nexport abstract class StateHasChangedUC extends AppObjectUC {\n static readonly type = \"StateHasChangedUC\";\n readonly requestType = \"ON_STATE_CHANGE\";\n\n abstract stateHasChanged(\n stateObject: object,\n assets: string[],\n validationErrorMessage?: string | undefined,\n responseType?: string | undefined,\n ): void;\n\n static get = (appObjects: AppObjectRepo): StateHasChangedUC | undefined =>\n getSingletonComponent(StateHasChangedUC.type, appObjects);\n}\n\nexport function makeStateHasChangedUC(appObject: AppObject): StateHasChangedUC {\n return new StateHasChangedUCImp(appObject);\n}\n\nclass StateHasChangedUCImp extends StateHasChangedUC {\n private appDispatcher?: AppDispatcher;\n\n stateHasChanged = (\n stateObject: object,\n assets: string[],\n validationErrorMessage?: string | undefined,\n responseType?: string | undefined,\n ) => {\n if (!this.appDispatcher) return;\n\n const payload = {\n stateObject,\n assets,\n validationErrorMessage,\n responseType,\n };\n\n const version = responseType !== undefined ? 4 : 3;\n\n this.appDispatcher.formRequestAndDispatch(\n this.requestType,\n version,\n payload,\n );\n };\n\n constructor(appObject: AppObject) {\n super(appObject, StateHasChangedUC.type);\n this.appDispatcher = appObject.getComponent<AppDispatcher>(\n AppDispatcher.type,\n );\n if (!this.appDispatcher) {\n this.warn(\n `${StateHasChangedUC.type} has been added to an App Object that does not have a AppDispatcher. Add a dispatcher first`,\n );\n this.dispose();\n }\n }\n}\n"]}
|
|
@@ -44,5 +44,35 @@ describe("Dispatch StateHasChangedUC", () => {
|
|
|
44
44
|
expect(payload.assets).toEqual(["model1"]);
|
|
45
45
|
expect(payload.validationErrorMessage).toEqual("validation message");
|
|
46
46
|
});
|
|
47
|
+
it("Dispatches version 3 when responseType is not provided", () => {
|
|
48
|
+
const { uc, mockDispatcher } = makeTestRig();
|
|
49
|
+
const spy = jest.spyOn(mockDispatcher, "formRequestAndDispatch");
|
|
50
|
+
uc.stateHasChanged({ foo: "bar" }, ["model1"]);
|
|
51
|
+
expect(spy).toHaveBeenCalledTimes(1);
|
|
52
|
+
expect(spy.mock.calls[0][1]).toEqual(3);
|
|
53
|
+
});
|
|
54
|
+
it("Dispatches version 4 when responseType is provided", () => {
|
|
55
|
+
const { uc, mockDispatcher } = makeTestRig();
|
|
56
|
+
const spy = jest.spyOn(mockDispatcher, "formRequestAndDispatch");
|
|
57
|
+
uc.stateHasChanged({ foo: "bar" }, ["model1"], undefined, "SCORE");
|
|
58
|
+
expect(spy).toHaveBeenCalledTimes(1);
|
|
59
|
+
expect(spy.mock.calls[0][1]).toEqual(4);
|
|
60
|
+
});
|
|
61
|
+
it("Includes responseType in the payload when provided", () => {
|
|
62
|
+
const { uc, mockDispatcher } = makeTestRig();
|
|
63
|
+
const spy = jest.spyOn(mockDispatcher, "formRequestAndDispatch");
|
|
64
|
+
uc.stateHasChanged({ foo: "bar" }, ["model1"], undefined, "HIT");
|
|
65
|
+
expect(spy).toHaveBeenCalledTimes(1);
|
|
66
|
+
const payload = spy.mock.calls[0][2];
|
|
67
|
+
expect(payload.responseType).toEqual("HIT");
|
|
68
|
+
});
|
|
69
|
+
it("Has undefined responseType in the payload when not provided", () => {
|
|
70
|
+
const { uc, mockDispatcher } = makeTestRig();
|
|
71
|
+
const spy = jest.spyOn(mockDispatcher, "formRequestAndDispatch");
|
|
72
|
+
uc.stateHasChanged({ foo: "bar" }, ["model1"]);
|
|
73
|
+
expect(spy).toHaveBeenCalledTimes(1);
|
|
74
|
+
const payload = spy.mock.calls[0][2];
|
|
75
|
+
expect(payload.responseType).toBeUndefined();
|
|
76
|
+
});
|
|
47
77
|
});
|
|
48
78
|
//# sourceMappingURL=StateHasChangedUC.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StateHasChangedUC.test.js","sourceRoot":"","sources":["../../../../src/Dispatcher/UC/StateHasChangedUC.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE/E,MAAM,cAAe,SAAQ,aAAa;IAA1C;;QACE,aAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACrB,2BAAsB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACrC,CAAC;CAAA;AAED,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IAC1E,MAAM,EAAE,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAE7C,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;AACxD,CAAC;AAED,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;QACrB,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAEzC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,GAAG,WAAW,EAAE,CAAC;QAE7C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC;QAEjE,EAAE,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC,CAAC;QAErE,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,GAAG,WAAW,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC;QAEjE,EAAE,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC,CAAC;QAErE,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,GAAG,WAAW,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC;QAEjE,EAAE,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC,CAAC;QACrE,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAErC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QACpD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { AppDispatcher } from \"../Entities/AppDispatcher\";\nimport { StateHasChangedUC, makeStateHasChangedUC } from \"./StateHasChangedUC\";\n\nclass MockDispatcher extends AppDispatcher {\n dispatch = jest.fn();\n formRequestAndDispatch = jest.fn();\n}\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const dispatcher = appObjects.getOrCreate(\"Dispatcher\");\n const mockDispatcher = new MockDispatcher(dispatcher, AppDispatcher.type);\n const uc = makeStateHasChangedUC(dispatcher);\n\n return { uc, dispatcher, appObjects, mockDispatcher };\n}\n\ndescribe(\"Dispatch StateHasChangedUC\", () => {\n it(\"Gets the UC\", () => {\n const { uc, appObjects } = makeTestRig();\n\n expect(StateHasChangedUC.get(appObjects)).toEqual(uc);\n });\n\n it(\"Dispatches the correct type\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n const spy = jest.spyOn(mockDispatcher, \"formRequestAndDispatch\");\n\n uc.stateHasChanged({ foo: \"bar\" }, [\"model1\"], \"validation message\");\n\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy.mock.calls[0][0]).toEqual(\"ON_STATE_CHANGE\");\n });\n\n it(\"Dispatches the correct version\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n const spy = jest.spyOn(mockDispatcher, \"formRequestAndDispatch\");\n\n uc.stateHasChanged({ foo: \"bar\" }, [\"model1\"], \"validation message\");\n\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy.mock.calls[0][1]).toEqual(3);\n });\n\n it(\"Dispatches the correct payload\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n const spy = jest.spyOn(mockDispatcher, \"formRequestAndDispatch\");\n\n uc.stateHasChanged({ foo: \"bar\" }, [\"model1\"], \"validation message\");\n expect(spy).toHaveBeenCalledTimes(1);\n const payload = spy.mock.calls[0][2];\n\n expect(payload.stateObject).toEqual({ foo: \"bar\" });\n expect(payload.assets).toEqual([\"model1\"]);\n expect(payload.validationErrorMessage).toEqual(\"validation message\");\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"StateHasChangedUC.test.js","sourceRoot":"","sources":["../../../../src/Dispatcher/UC/StateHasChangedUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { AppDispatcher } from \"../Entities/AppDispatcher\";\nimport { StateHasChangedUC, makeStateHasChangedUC } from \"./StateHasChangedUC\";\n\nclass MockDispatcher extends AppDispatcher {\n dispatch = jest.fn();\n formRequestAndDispatch = jest.fn();\n}\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const dispatcher = appObjects.getOrCreate(\"Dispatcher\");\n const mockDispatcher = new MockDispatcher(dispatcher, AppDispatcher.type);\n const uc = makeStateHasChangedUC(dispatcher);\n\n return { uc, dispatcher, appObjects, mockDispatcher };\n}\n\ndescribe(\"Dispatch StateHasChangedUC\", () => {\n it(\"Gets the UC\", () => {\n const { uc, appObjects } = makeTestRig();\n\n expect(StateHasChangedUC.get(appObjects)).toEqual(uc);\n });\n\n it(\"Dispatches the correct type\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n\n const spy = jest.spyOn(mockDispatcher, \"formRequestAndDispatch\");\n\n uc.stateHasChanged({ foo: \"bar\" }, [\"model1\"], \"validation message\");\n\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy.mock.calls[0][0]).toEqual(\"ON_STATE_CHANGE\");\n });\n\n it(\"Dispatches the correct version\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n const spy = jest.spyOn(mockDispatcher, \"formRequestAndDispatch\");\n\n uc.stateHasChanged({ foo: \"bar\" }, [\"model1\"], \"validation message\");\n\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy.mock.calls[0][1]).toEqual(3);\n });\n\n it(\"Dispatches the correct payload\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n const spy = jest.spyOn(mockDispatcher, \"formRequestAndDispatch\");\n\n uc.stateHasChanged({ foo: \"bar\" }, [\"model1\"], \"validation message\");\n expect(spy).toHaveBeenCalledTimes(1);\n const payload = spy.mock.calls[0][2];\n\n expect(payload.stateObject).toEqual({ foo: \"bar\" });\n expect(payload.assets).toEqual([\"model1\"]);\n expect(payload.validationErrorMessage).toEqual(\"validation message\");\n });\n\n it(\"Dispatches version 3 when responseType is not provided\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n const spy = jest.spyOn(mockDispatcher, \"formRequestAndDispatch\");\n\n uc.stateHasChanged({ foo: \"bar\" }, [\"model1\"]);\n\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy.mock.calls[0][1]).toEqual(3);\n });\n\n it(\"Dispatches version 4 when responseType is provided\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n const spy = jest.spyOn(mockDispatcher, \"formRequestAndDispatch\");\n\n uc.stateHasChanged({ foo: \"bar\" }, [\"model1\"], undefined, \"SCORE\");\n\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy.mock.calls[0][1]).toEqual(4);\n });\n\n it(\"Includes responseType in the payload when provided\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n const spy = jest.spyOn(mockDispatcher, \"formRequestAndDispatch\");\n\n uc.stateHasChanged({ foo: \"bar\" }, [\"model1\"], undefined, \"HIT\");\n\n expect(spy).toHaveBeenCalledTimes(1);\n const payload = spy.mock.calls[0][2];\n\n expect(payload.responseType).toEqual(\"HIT\");\n });\n\n it(\"Has undefined responseType in the payload when not provided\", () => {\n const { uc, mockDispatcher } = makeTestRig();\n const spy = jest.spyOn(mockDispatcher, \"formRequestAndDispatch\");\n\n uc.stateHasChanged({ foo: \"bar\" }, [\"model1\"]);\n\n expect(spy).toHaveBeenCalledTimes(1);\n const payload = spy.mock.calls[0][2];\n\n expect(payload.responseType).toBeUndefined();\n });\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleAllowHoverLabel.test.js","sourceRoot":"","sources":["../../../../src/HoverLabel/UseCases/ToggleAllowHoverLabel.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,MAAM,OAAO,uBAAwB,SAAQ,qBAAqB;
|
|
1
|
+
{"version":3,"file":"ToggleAllowHoverLabel.test.js","sourceRoot":"","sources":["../../../../src/HoverLabel/UseCases/ToggleAllowHoverLabel.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,MAAM,OAAO,uBAAwB,SAAQ,qBAAqB;IAMhE,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAN/C,kBAAa,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC1B,mBAAc,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC3B,oBAAe,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC5B,eAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAIvB,CAAC;CACF;AAED,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IAEvC,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAEhD,MAAM,uBAAuB,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAElE,MAAM,uBAAuB,GAAG,IAAI,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAEpE,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,CAAC;AAC1E,CAAC;AAED,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,EAAE,UAAU,EAAE,uBAAuB,EAAE,GAAG,WAAW,EAAE,CAAC;QAE9D,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,UAAU,EAAE,CAAC;QAEhD,uBAAuB,CAAC,qBAAqB,EAAE,CAAC;QAEhD,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,SAAS,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,GAAG,WAAW,EAAE,CAAC;QAE3E,uBAAuB,CAAC,qBAAqB,EAAE,CAAC;QAEhD,MAAM,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { AppObject, makeAppObjectRepo } from \"@vived/core\";\nimport { DispatchStateChangeUC } from \"../../Dispatcher\";\nimport { makeHoverLabelEntity } from \"../Entities/HoverLabelEntity\";\nimport { makeToggleAllowHoverLabel } from \"./ToggleAllowHoverLabel\";\n\nexport class MockDispatchStateChange extends DispatchStateChangeUC {\n validateState = jest.fn();\n getStateAssets = jest.fn();\n getResponseType = jest.fn();\n doDispatch = jest.fn();\n\n constructor(appObject: AppObject) {\n super(appObject, DispatchStateChangeUC.type);\n }\n}\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n\n const appObj = appObjects.getOrCreate(\"appObj\");\n const hoverLabel = makeHoverLabelEntity(appObj);\n\n const toggleAllowHoverLabelUC = makeToggleAllowHoverLabel(appObj);\n\n const mockDispatchStateChange = new MockDispatchStateChange(appObj);\n\n return { hoverLabel, toggleAllowHoverLabelUC, mockDispatchStateChange };\n}\n\ndescribe(\"Toggle Allow Hover Label UC\", () => {\n it(\"Toggles allowHoverLabel flag\", () => {\n const { hoverLabel, toggleAllowHoverLabelUC } = makeTestRig();\n\n expect(hoverLabel.allowHoverLabel).toBeTruthy();\n\n toggleAllowHoverLabelUC.toggleAllowHoverLabel();\n\n expect(hoverLabel.allowHoverLabel).toBeFalsy();\n });\n\n it(\"Dispatches state change\", () => {\n const { toggleAllowHoverLabelUC, mockDispatchStateChange } = makeTestRig();\n\n toggleAllowHoverLabelUC.toggleAllowHoverLabel();\n\n expect(mockDispatchStateChange.doDispatch).toHaveBeenCalled();\n });\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClearStoredViewUC.test.js","sourceRoot":"","sources":["../../../../src/StoredView/UC/ClearStoredViewUC.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE/E,MAAM,uBAAwB,SAAQ,qBAAqB;IAA3D;;QACE,eAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACvB,mBAAc,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC3B,kBAAa,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"ClearStoredViewUC.test.js","sourceRoot":"","sources":["../../../../src/StoredView/UC/ClearStoredViewUC.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE/E,MAAM,uBAAwB,SAAQ,qBAAqB;IAA3D;;QACE,eAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACvB,mBAAc,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC3B,kBAAa,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC1B,oBAAe,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAC9B,CAAC;CAAA;AAED,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IAEvC,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,YAAY,GAAG,IAAI,uBAAuB,CAC9C,MAAM,EACN,qBAAqB,CAAC,IAAI,CAC3B,CAAC;IAEF,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,eAAe,GAAG,iBAAiB,CAAC,eAAe,CAAC;IAE1D,OAAO;QACL,MAAM;QACN,UAAU;QACV,iBAAiB;QACjB,eAAe;QACf,YAAY;QACZ,UAAU;KACX,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,WAAW,EAAE,CAAC;QAEpD,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QACjE,MAAM,CACJ,MAAM,CAAC,YAAY,CAAoB,iBAAiB,CAAC,IAAI,CAAC,CAC/D,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAEtD,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC;QACrB,UAAU,CAAC,QAAQ,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,UAAU,CAAC,aAAa,CACnC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACpB,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CACtB,CAAC;QACF,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC3B,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC;QAEhC,eAAe,EAAE,CAAC;QAElB,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACpD,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3D,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,WAAW,EAAE,CAAC;QAEpE,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC;QACrB,UAAU,CAAC,QAAQ,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,UAAU,CAAC,aAAa,CACnC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACpB,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CACtB,CAAC;QACF,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC3B,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC;QAEhC,eAAe,EAAE,CAAC;QAElB,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;QACrB,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,WAAW,EAAE,CAAC;QACxD,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { Angle, Quaternion, Vector3 } from \"@vived/core\";\nimport { DispatchStateChangeUC } from \"../../Dispatcher\";\nimport { makeStoredView } from \"../Entities\";\nimport { ClearStoredViewUC, makeClearStoredViewUC } from \"./ClearStoredViewUC\";\n\nclass MockDispatchStateChange extends DispatchStateChangeUC {\n doDispatch = jest.fn();\n getStateAssets = jest.fn();\n validateState = jest.fn();\n getResponseType = jest.fn();\n}\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n\n const appObj = appObjects.getOrCreate(\"SceneRoto\");\n const storedView = makeStoredView(appObj);\n const mockDispatch = new MockDispatchStateChange(\n appObj,\n DispatchStateChangeUC.type,\n );\n\n const clearStoredViewUC = makeClearStoredViewUC(appObj);\n const clearStoredView = clearStoredViewUC.clearStoredView;\n\n return {\n appObj,\n storedView,\n clearStoredViewUC,\n clearStoredView,\n mockDispatch,\n appObjects,\n };\n}\n\ndescribe(\"Clear Stored View UC\", () => {\n it(\"Is added to the app object as a component\", () => {\n const { appObj, clearStoredViewUC } = makeTestRig();\n\n expect(appObj.hasComponent(clearStoredViewUC.type)).toBeTruthy();\n expect(\n appObj.getComponent<ClearStoredViewUC>(clearStoredViewUC.type),\n ).toEqual(clearStoredViewUC);\n });\n\n it(\"Clears the current view\", () => {\n const { clearStoredView, storedView } = makeTestRig();\n\n storedView.scale = 2;\n storedView.position = new Vector3(1, 2, 3);\n const rotQ = Quaternion.FromAngleAxis(\n new Vector3(1, 2, 3),\n Angle.FromDegrees(25),\n );\n storedView.rotation = rotQ;\n storedView.hasStoredView = true;\n\n clearStoredView();\n\n expect(storedView.position).toEqual(Vector3.Zero());\n expect(storedView.rotation).toEqual(Quaternion.Identity());\n expect(storedView.scale).toEqual(1);\n expect(storedView.hasStoredView).toEqual(false);\n });\n\n it(\"Dispatches a state change\", () => {\n const { clearStoredView, storedView, mockDispatch } = makeTestRig();\n\n storedView.scale = 2;\n storedView.position = new Vector3(1, 2, 3);\n const rotQ = Quaternion.FromAngleAxis(\n new Vector3(1, 2, 3),\n Angle.FromDegrees(25),\n );\n storedView.rotation = rotQ;\n storedView.hasStoredView = true;\n\n clearStoredView();\n\n expect(mockDispatch.doDispatch).toHaveBeenCalled();\n });\n\n it(\"Gets the UC\", () => {\n const { appObjects, clearStoredViewUC } = makeTestRig();\n expect(ClearStoredViewUC.get(appObjects)).toEqual(clearStoredViewUC);\n });\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoreCurrentViewUC.test.js","sourceRoot":"","sources":["../../../../src/StoredView/UC/StoreCurrentViewUC.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EACL,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,uBAAwB,SAAQ,qBAAqB;IAA3D;;QACE,eAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACvB,mBAAc,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC3B,kBAAa,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"StoreCurrentViewUC.test.js","sourceRoot":"","sources":["../../../../src/StoredView/UC/StoreCurrentViewUC.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EACL,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,uBAAwB,SAAQ,qBAAqB;IAA3D;;QACE,eAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACvB,mBAAc,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC3B,kBAAa,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC1B,oBAAe,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAC9B,CAAC;CAAA;AAED,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IAEvC,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,YAAY,GAAG,IAAI,uBAAuB,CAC9C,MAAM,EACN,qBAAqB,CAAC,IAAI,CAC3B,CAAC;IAEF,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAE1D,OAAO;QACL,MAAM;QACN,SAAS;QACT,UAAU;QACV,kBAAkB;QAClB,YAAY;QACZ,UAAU;KACX,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,WAAW,EAAE,CAAC;QAErD,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QAClE,MAAM,CACJ,MAAM,CAAC,YAAY,CAAqB,kBAAkB,CAAC,IAAI,CAAC,CACjE,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,EAAE,kBAAkB,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,WAAW,EAAE,CAAC;QACpE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACpD,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3D,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEhD,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;QACpB,SAAS,CAAC,QAAQ,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,UAAU,CAAC,aAAa,CACnC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACpB,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CACtB,CAAC;QACF,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;QAE1B,kBAAkB,CAAC,gBAAgB,EAAE,CAAC;QAEtC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CACvE,IAAI,CACL,CAAC;QACF,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,EAAE,kBAAkB,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,WAAW,EAAE,CAAC;QAEtE,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;QACpB,SAAS,CAAC,QAAQ,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,UAAU,CAAC,aAAa,CACnC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACpB,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CACtB,CAAC;QACF,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;QAE1B,kBAAkB,CAAC,gBAAgB,EAAE,CAAC;QAEtC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;QACrB,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,GAAG,WAAW,EAAE,CAAC;QACzD,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { Angle, Quaternion, Vector3 } from \"@vived/core\";\nimport { DispatchStateChangeUC } from \"../../Dispatcher\";\nimport { makeSceneRootEntity } from \"../../SceneRoot\";\nimport { makeStoredView } from \"../Entities\";\nimport {\n makeStoreCurrentViewUC,\n StoreCurrentViewUC,\n} from \"./StoreCurrentViewUC\";\n\nclass MockDispatchStateChange extends DispatchStateChangeUC {\n doDispatch = jest.fn();\n getStateAssets = jest.fn();\n validateState = jest.fn();\n getResponseType = jest.fn();\n}\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n\n const appObj = appObjects.getOrCreate(\"SceneRoot\");\n const sceneRoot = makeSceneRootEntity(appObj);\n const storedView = makeStoredView(appObj);\n const mockDispatch = new MockDispatchStateChange(\n appObj,\n DispatchStateChangeUC.type,\n );\n\n const storeCurrentViewUC = makeStoreCurrentViewUC(appObj);\n\n return {\n appObj,\n sceneRoot,\n storedView,\n storeCurrentViewUC,\n mockDispatch,\n appObjects,\n };\n}\n\ndescribe(\"Store Current View UC\", () => {\n it(\"Is added to the app object as a component\", () => {\n const { appObj, storeCurrentViewUC } = makeTestRig();\n\n expect(appObj.hasComponent(storeCurrentViewUC.type)).toBeTruthy();\n expect(\n appObj.getComponent<StoreCurrentViewUC>(storeCurrentViewUC.type),\n ).toEqual(storeCurrentViewUC);\n });\n\n it(\"Stores the current view\", () => {\n const { storeCurrentViewUC, storedView, sceneRoot } = makeTestRig();\n expect(storedView.position).toEqual(Vector3.Zero());\n expect(storedView.rotation).toEqual(Quaternion.Identity());\n expect(storedView.scale).toEqual(1);\n expect(storedView.hasStoredView).toEqual(false);\n\n sceneRoot.scale = 2;\n sceneRoot.position = new Vector3(1, 2, 3);\n const rotQ = Quaternion.FromAngleAxis(\n new Vector3(1, 2, 3),\n Angle.FromDegrees(25),\n );\n sceneRoot.rotation = rotQ;\n\n storeCurrentViewUC.storeCurrentView();\n\n expect(storedView.position).toEqual(new Vector3(1, 2, 3));\n expect(Quaternion.Close(storedView.rotation, sceneRoot.rotation)).toEqual(\n true,\n );\n expect(storedView.scale).toEqual(2);\n expect(storedView.hasStoredView).toEqual(true);\n });\n\n it(\"Dispatches a state change\", () => {\n const { storeCurrentViewUC, mockDispatch, sceneRoot } = makeTestRig();\n\n sceneRoot.scale = 2;\n sceneRoot.position = new Vector3(1, 2, 3);\n const rotQ = Quaternion.FromAngleAxis(\n new Vector3(1, 2, 3),\n Angle.FromDegrees(25),\n );\n sceneRoot.rotation = rotQ;\n\n storeCurrentViewUC.storeCurrentView();\n\n expect(mockDispatch.doDispatch).toHaveBeenCalled();\n });\n\n it(\"Gets the UC\", () => {\n const { appObjects, storeCurrentViewUC } = makeTestRig();\n expect(StoreCurrentViewUC.get(appObjects)).toEqual(storeCurrentViewUC);\n });\n});\n"]}
|
|
@@ -4,6 +4,7 @@ import { DispatchStateChangeUC } from "../UC/DispatchStateChangeUC";
|
|
|
4
4
|
export declare class MockDispatchStateChange extends DispatchStateChangeUC {
|
|
5
5
|
validateState: () => undefined;
|
|
6
6
|
getStateAssets: () => never[];
|
|
7
|
+
getResponseType: () => undefined;
|
|
7
8
|
doDispatch: () => void;
|
|
8
9
|
constructor(appObject: AppObject);
|
|
9
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MockDispatchStateChange.d.ts","sourceRoot":"","sources":["../../../../src/Dispatcher/Mocks/MockDispatchStateChange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,qBAAa,uBAAwB,SAAQ,qBAAqB;IAChE,aAAa,kBAAmB;IAChC,cAAc,gBAAY;IAC1B,UAAU,aAAY;gBAEV,SAAS,EAAE,SAAS;CAGjC;AAED,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,aAAa,2BAEpE"}
|
|
1
|
+
{"version":3,"file":"MockDispatchStateChange.d.ts","sourceRoot":"","sources":["../../../../src/Dispatcher/Mocks/MockDispatchStateChange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,qBAAa,uBAAwB,SAAQ,qBAAqB;IAChE,aAAa,kBAAmB;IAChC,cAAc,gBAAY;IAC1B,eAAe,kBAAmB;IAClC,UAAU,aAAY;gBAEV,SAAS,EAAE,SAAS;CAGjC;AAED,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,aAAa,2BAEpE"}
|
|
@@ -3,6 +3,7 @@ export interface DispatchStateChangePayload {
|
|
|
3
3
|
stateObject: object;
|
|
4
4
|
assets: string[];
|
|
5
5
|
validationErrorMessage?: string | undefined;
|
|
6
|
+
responseType?: string | undefined;
|
|
6
7
|
}
|
|
7
8
|
export declare abstract class DispatchStateChangeUC extends AppObjectUC {
|
|
8
9
|
static readonly type = "DispatchStateChangeUC";
|
|
@@ -10,6 +11,7 @@ export declare abstract class DispatchStateChangeUC extends AppObjectUC {
|
|
|
10
11
|
abstract doDispatch(): void;
|
|
11
12
|
abstract validateState: () => string | undefined;
|
|
12
13
|
abstract getStateAssets: () => string[];
|
|
14
|
+
abstract getResponseType: () => string | undefined;
|
|
13
15
|
static get: (appObjects: AppObjectRepo) => DispatchStateChangeUC | undefined;
|
|
14
16
|
}
|
|
15
17
|
export declare function makeDispatchStateChangeUC(appObject: AppObject): DispatchStateChangeUC;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DispatchStateChangeUC.d.ts","sourceRoot":"","sources":["../../../../src/Dispatcher/UC/DispatchStateChangeUC.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,aAAa,EACb,WAAW,EAEZ,MAAM,aAAa,CAAC;AAKrB,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,sBAAsB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"DispatchStateChangeUC.d.ts","sourceRoot":"","sources":["../../../../src/Dispatcher/UC/DispatchStateChangeUC.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,aAAa,EACb,WAAW,EAEZ,MAAM,aAAa,CAAC;AAKrB,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,sBAAsB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,8BAAsB,qBAAsB,SAAQ,WAAW;IAC7D,MAAM,CAAC,QAAQ,CAAC,IAAI,2BAA2B;IAC/C,QAAQ,CAAC,WAAW,qBAAqB;IAEzC,QAAQ,CAAC,UAAU,IAAI,IAAI;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,cAAc,EAAE,MAAM,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,eAAe,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAEnD,MAAM,CAAC,GAAG,GAAI,YAAY,aAAa,KAAG,qBAAqB,GAAG,SAAS,CACX;CACjE;AAED,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,SAAS,GACnB,qBAAqB,CAEvB;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,aAAa,QAW5D"}
|
|
@@ -2,7 +2,7 @@ import { AppObject, AppObjectRepo, AppObjectUC } from "@vived/core";
|
|
|
2
2
|
export declare abstract class StateHasChangedUC extends AppObjectUC {
|
|
3
3
|
static readonly type = "StateHasChangedUC";
|
|
4
4
|
readonly requestType = "ON_STATE_CHANGE";
|
|
5
|
-
abstract stateHasChanged(stateObject: object, assets: string[], validationErrorMessage?: string | undefined): void;
|
|
5
|
+
abstract stateHasChanged(stateObject: object, assets: string[], validationErrorMessage?: string | undefined, responseType?: string | undefined): void;
|
|
6
6
|
static get: (appObjects: AppObjectRepo) => StateHasChangedUC | undefined;
|
|
7
7
|
}
|
|
8
8
|
export declare function makeStateHasChangedUC(appObject: AppObject): StateHasChangedUC;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StateHasChangedUC.d.ts","sourceRoot":"","sources":["../../../../src/Dispatcher/UC/StateHasChangedUC.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,aAAa,EACb,WAAW,EAEZ,MAAM,aAAa,CAAC;AAGrB,8BAAsB,iBAAkB,SAAQ,WAAW;IACzD,MAAM,CAAC,QAAQ,CAAC,IAAI,uBAAuB;IAC3C,QAAQ,CAAC,WAAW,qBAAqB;IAEzC,QAAQ,CAAC,eAAe,CACtB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EAAE,EAChB,sBAAsB,CAAC,EAAE,MAAM,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"StateHasChangedUC.d.ts","sourceRoot":"","sources":["../../../../src/Dispatcher/UC/StateHasChangedUC.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,aAAa,EACb,WAAW,EAEZ,MAAM,aAAa,CAAC;AAGrB,8BAAsB,iBAAkB,SAAQ,WAAW;IACzD,MAAM,CAAC,QAAQ,CAAC,IAAI,uBAAuB;IAC3C,QAAQ,CAAC,WAAW,qBAAqB;IAEzC,QAAQ,CAAC,eAAe,CACtB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EAAE,EAChB,sBAAsB,CAAC,EAAE,MAAM,GAAG,SAAS,EAC3C,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,GAChC,IAAI;IAEP,MAAM,CAAC,GAAG,GAAI,YAAY,aAAa,KAAG,iBAAiB,GAAG,SAAS,CACX;CAC7D;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,SAAS,GAAG,iBAAiB,CAE7E"}
|
|
@@ -3,6 +3,7 @@ import { DispatchStateChangeUC } from "../../Dispatcher";
|
|
|
3
3
|
export declare class MockDispatchStateChange extends DispatchStateChangeUC {
|
|
4
4
|
validateState: jest.Mock<any, any, any>;
|
|
5
5
|
getStateAssets: jest.Mock<any, any, any>;
|
|
6
|
+
getResponseType: jest.Mock<any, any, any>;
|
|
6
7
|
doDispatch: jest.Mock<any, any, any>;
|
|
7
8
|
constructor(appObject: AppObject);
|
|
8
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleAllowHoverLabel.test.d.ts","sourceRoot":"","sources":["../../../../src/HoverLabel/UseCases/ToggleAllowHoverLabel.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqB,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAIzD,qBAAa,uBAAwB,SAAQ,qBAAqB;IAChE,aAAa,2BAAa;IAC1B,cAAc,2BAAa;IAC3B,UAAU,2BAAa;gBAEX,SAAS,EAAE,SAAS;CAGjC"}
|
|
1
|
+
{"version":3,"file":"ToggleAllowHoverLabel.test.d.ts","sourceRoot":"","sources":["../../../../src/HoverLabel/UseCases/ToggleAllowHoverLabel.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqB,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAIzD,qBAAa,uBAAwB,SAAQ,qBAAqB;IAChE,aAAa,2BAAa;IAC1B,cAAc,2BAAa;IAC3B,eAAe,2BAAa;IAC5B,UAAU,2BAAa;gBAEX,SAAS,EAAE,SAAS;CAGjC"}
|