@vived/host 4.0.3 → 4.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.
Files changed (196) hide show
  1. package/dist/cjs/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.js +24 -0
  2. package/dist/cjs/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.js.map +1 -0
  3. package/dist/cjs/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.test.js +30 -0
  4. package/dist/cjs/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.test.js.map +1 -0
  5. package/dist/cjs/ChallengeResults/Adapters/index.js +1 -0
  6. package/dist/cjs/ChallengeResults/Adapters/index.js.map +1 -1
  7. package/dist/cjs/ChallengeResults/Factories/index.js +1 -1
  8. package/dist/cjs/ChallengeResults/Factories/index.js.map +1 -1
  9. package/dist/cjs/ChallengeResults/Factories/setupChallengeResults.js +14 -0
  10. package/dist/cjs/ChallengeResults/Factories/setupChallengeResults.js.map +1 -0
  11. package/dist/cjs/ChallengeResults/Factories/setupChallengeResultsForSandbox.js +1 -0
  12. package/dist/cjs/ChallengeResults/Factories/setupChallengeResultsForSandbox.js.map +1 -1
  13. package/dist/cjs/ChallengeResults/Mocks/MockHasChallengeResultsPM.js +16 -0
  14. package/dist/cjs/ChallengeResults/Mocks/MockHasChallengeResultsPM.js.map +1 -0
  15. package/dist/cjs/ChallengeResults/Mocks/index.js +1 -0
  16. package/dist/cjs/ChallengeResults/Mocks/index.js.map +1 -1
  17. package/dist/cjs/ChallengeResults/PMs/ChallengeResultsListPM.js +2 -0
  18. package/dist/cjs/ChallengeResults/PMs/ChallengeResultsListPM.js.map +1 -1
  19. package/dist/cjs/ChallengeResults/PMs/ChallengeResultsListPM.test.js +4 -2
  20. package/dist/cjs/ChallengeResults/PMs/ChallengeResultsListPM.test.js.map +1 -1
  21. package/dist/cjs/ChallengeResults/PMs/HasChallengeResultsPM.js +37 -0
  22. package/dist/cjs/ChallengeResults/PMs/HasChallengeResultsPM.js.map +1 -0
  23. package/dist/cjs/ChallengeResults/PMs/HasChallengeResultsPM.test.js +32 -0
  24. package/dist/cjs/ChallengeResults/PMs/HasChallengeResultsPM.test.js.map +1 -0
  25. package/dist/cjs/ChallengeResults/PMs/index.js +1 -0
  26. package/dist/cjs/ChallengeResults/PMs/index.js.map +1 -1
  27. package/dist/cjs/StateMachine/Adapters/hostStateAdapter.js +24 -0
  28. package/dist/cjs/StateMachine/Adapters/hostStateAdapter.js.map +1 -0
  29. package/dist/cjs/StateMachine/Adapters/hostStateAdapter.test.js +49 -0
  30. package/dist/cjs/StateMachine/Adapters/hostStateAdapter.test.js.map +1 -0
  31. package/dist/cjs/StateMachine/Adapters/index.js +1 -0
  32. package/dist/cjs/StateMachine/Adapters/index.js.map +1 -1
  33. package/dist/cjs/StateMachine/Controllers/editStateName.js +13 -0
  34. package/dist/cjs/StateMachine/Controllers/editStateName.js.map +1 -0
  35. package/dist/cjs/StateMachine/Controllers/editStateName.test.js +49 -0
  36. package/dist/cjs/StateMachine/Controllers/editStateName.test.js.map +1 -0
  37. package/dist/cjs/StateMachine/Controllers/index.js +1 -0
  38. package/dist/cjs/StateMachine/Controllers/index.js.map +1 -1
  39. package/dist/cjs/StateMachine/Entities/HostStateMachine.js +67 -24
  40. package/dist/cjs/StateMachine/Entities/HostStateMachine.js.map +1 -1
  41. package/dist/cjs/StateMachine/Entities/HostStateMachine.test.js +174 -0
  42. package/dist/cjs/StateMachine/Entities/HostStateMachine.test.js.map +1 -1
  43. package/dist/cjs/StateMachine/Mocks/MockEditStateNameUC.js +12 -0
  44. package/dist/cjs/StateMachine/Mocks/MockEditStateNameUC.js.map +1 -0
  45. package/dist/cjs/StateMachine/Mocks/MockHostStatePM.js +23 -0
  46. package/dist/cjs/StateMachine/Mocks/MockHostStatePM.js.map +1 -0
  47. package/dist/cjs/StateMachine/PMs/HostStateMachinePM.js +21 -15
  48. package/dist/cjs/StateMachine/PMs/HostStateMachinePM.js.map +1 -1
  49. package/dist/cjs/StateMachine/PMs/HostStateMachinePM.test.js +65 -56
  50. package/dist/cjs/StateMachine/PMs/HostStateMachinePM.test.js.map +1 -1
  51. package/dist/cjs/StateMachine/PMs/HostStatePM.js +136 -0
  52. package/dist/cjs/StateMachine/PMs/HostStatePM.js.map +1 -0
  53. package/dist/cjs/StateMachine/PMs/HostStatePM.test.js +405 -0
  54. package/dist/cjs/StateMachine/PMs/HostStatePM.test.js.map +1 -0
  55. package/dist/cjs/StateMachine/PMs/index.js +1 -0
  56. package/dist/cjs/StateMachine/PMs/index.js.map +1 -1
  57. package/dist/cjs/StateMachine/UCs/EditStateNameUC.js +35 -0
  58. package/dist/cjs/StateMachine/UCs/EditStateNameUC.js.map +1 -0
  59. package/dist/cjs/StateMachine/UCs/EditStateNameUC.test.js +58 -0
  60. package/dist/cjs/StateMachine/UCs/EditStateNameUC.test.js.map +1 -0
  61. package/dist/cjs/StateMachine/UCs/index.js +1 -0
  62. package/dist/cjs/StateMachine/UCs/index.js.map +1 -1
  63. package/dist/cjs/ThemeColors/Factories/index.js +1 -1
  64. package/dist/cjs/ThemeColors/Factories/index.js.map +1 -1
  65. package/dist/cjs/ThemeColors/Factories/setupTheme.js +20 -0
  66. package/dist/cjs/ThemeColors/Factories/setupTheme.js.map +1 -0
  67. package/dist/cjs/ThemeColors/UCs/SetThemeUC.js +1 -1
  68. package/dist/cjs/ThemeColors/UCs/SetThemeUC.js.map +1 -1
  69. package/dist/esm/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.js +21 -0
  70. package/dist/esm/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.js.map +1 -0
  71. package/dist/esm/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.test.js +28 -0
  72. package/dist/esm/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.test.js.map +1 -0
  73. package/dist/esm/ChallengeResults/Adapters/index.js +1 -0
  74. package/dist/esm/ChallengeResults/Adapters/index.js.map +1 -1
  75. package/dist/esm/ChallengeResults/Factories/index.js +1 -1
  76. package/dist/esm/ChallengeResults/Factories/index.js.map +1 -1
  77. package/dist/esm/ChallengeResults/Factories/setupChallengeResults.js +11 -0
  78. package/dist/esm/ChallengeResults/Factories/setupChallengeResults.js.map +1 -0
  79. package/dist/esm/ChallengeResults/Factories/setupChallengeResultsForSandbox.js +2 -1
  80. package/dist/esm/ChallengeResults/Factories/setupChallengeResultsForSandbox.js.map +1 -1
  81. package/dist/esm/ChallengeResults/Mocks/MockHasChallengeResultsPM.js +11 -0
  82. package/dist/esm/ChallengeResults/Mocks/MockHasChallengeResultsPM.js.map +1 -0
  83. package/dist/esm/ChallengeResults/Mocks/index.js +1 -0
  84. package/dist/esm/ChallengeResults/Mocks/index.js.map +1 -1
  85. package/dist/esm/ChallengeResults/PMs/ChallengeResultsListPM.js +2 -0
  86. package/dist/esm/ChallengeResults/PMs/ChallengeResultsListPM.js.map +1 -1
  87. package/dist/esm/ChallengeResults/PMs/ChallengeResultsListPM.test.js +4 -2
  88. package/dist/esm/ChallengeResults/PMs/ChallengeResultsListPM.test.js.map +1 -1
  89. package/dist/esm/ChallengeResults/PMs/HasChallengeResultsPM.js +32 -0
  90. package/dist/esm/ChallengeResults/PMs/HasChallengeResultsPM.js.map +1 -0
  91. package/dist/esm/ChallengeResults/PMs/HasChallengeResultsPM.test.js +30 -0
  92. package/dist/esm/ChallengeResults/PMs/HasChallengeResultsPM.test.js.map +1 -0
  93. package/dist/esm/ChallengeResults/PMs/index.js +1 -0
  94. package/dist/esm/ChallengeResults/PMs/index.js.map +1 -1
  95. package/dist/esm/StateMachine/Adapters/hostStateAdapter.js +21 -0
  96. package/dist/esm/StateMachine/Adapters/hostStateAdapter.js.map +1 -0
  97. package/dist/esm/StateMachine/Adapters/hostStateAdapter.test.js +47 -0
  98. package/dist/esm/StateMachine/Adapters/hostStateAdapter.test.js.map +1 -0
  99. package/dist/esm/StateMachine/Adapters/index.js +1 -0
  100. package/dist/esm/StateMachine/Adapters/index.js.map +1 -1
  101. package/dist/esm/StateMachine/Controllers/editStateName.js +10 -0
  102. package/dist/esm/StateMachine/Controllers/editStateName.js.map +1 -0
  103. package/dist/esm/StateMachine/Controllers/editStateName.test.js +47 -0
  104. package/dist/esm/StateMachine/Controllers/editStateName.test.js.map +1 -0
  105. package/dist/esm/StateMachine/Controllers/index.js +1 -0
  106. package/dist/esm/StateMachine/Controllers/index.js.map +1 -1
  107. package/dist/esm/StateMachine/Entities/HostStateMachine.js +67 -24
  108. package/dist/esm/StateMachine/Entities/HostStateMachine.js.map +1 -1
  109. package/dist/esm/StateMachine/Entities/HostStateMachine.test.js +174 -0
  110. package/dist/esm/StateMachine/Entities/HostStateMachine.test.js.map +1 -1
  111. package/dist/esm/StateMachine/Mocks/MockEditStateNameUC.js +8 -0
  112. package/dist/esm/StateMachine/Mocks/MockEditStateNameUC.js.map +1 -0
  113. package/dist/esm/StateMachine/Mocks/MockHostStatePM.js +18 -0
  114. package/dist/esm/StateMachine/Mocks/MockHostStatePM.js.map +1 -0
  115. package/dist/esm/StateMachine/PMs/HostStateMachinePM.js +21 -15
  116. package/dist/esm/StateMachine/PMs/HostStateMachinePM.js.map +1 -1
  117. package/dist/esm/StateMachine/PMs/HostStateMachinePM.test.js +65 -56
  118. package/dist/esm/StateMachine/PMs/HostStateMachinePM.test.js.map +1 -1
  119. package/dist/esm/StateMachine/PMs/HostStatePM.js +131 -0
  120. package/dist/esm/StateMachine/PMs/HostStatePM.js.map +1 -0
  121. package/dist/esm/StateMachine/PMs/HostStatePM.test.js +403 -0
  122. package/dist/esm/StateMachine/PMs/HostStatePM.test.js.map +1 -0
  123. package/dist/esm/StateMachine/PMs/index.js +1 -0
  124. package/dist/esm/StateMachine/PMs/index.js.map +1 -1
  125. package/dist/esm/StateMachine/UCs/EditStateNameUC.js +30 -0
  126. package/dist/esm/StateMachine/UCs/EditStateNameUC.js.map +1 -0
  127. package/dist/esm/StateMachine/UCs/EditStateNameUC.test.js +56 -0
  128. package/dist/esm/StateMachine/UCs/EditStateNameUC.test.js.map +1 -0
  129. package/dist/esm/StateMachine/UCs/index.js +1 -0
  130. package/dist/esm/StateMachine/UCs/index.js.map +1 -1
  131. package/dist/esm/ThemeColors/Factories/index.js +1 -1
  132. package/dist/esm/ThemeColors/Factories/index.js.map +1 -1
  133. package/dist/esm/ThemeColors/Factories/setupTheme.js +17 -0
  134. package/dist/esm/ThemeColors/Factories/setupTheme.js.map +1 -0
  135. package/dist/esm/ThemeColors/UCs/SetThemeUC.js +1 -1
  136. package/dist/esm/ThemeColors/UCs/SetThemeUC.js.map +1 -1
  137. package/dist/types/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.d.ts +3 -0
  138. package/dist/types/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.d.ts.map +1 -0
  139. package/dist/types/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.test.d.ts +2 -0
  140. package/dist/types/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.test.d.ts.map +1 -0
  141. package/dist/types/ChallengeResults/Adapters/index.d.ts +1 -0
  142. package/dist/types/ChallengeResults/Adapters/index.d.ts.map +1 -1
  143. package/dist/types/ChallengeResults/Factories/index.d.ts +1 -1
  144. package/dist/types/ChallengeResults/Factories/index.d.ts.map +1 -1
  145. package/dist/types/ChallengeResults/Factories/setupChallengeResults.d.ts +4 -0
  146. package/dist/types/ChallengeResults/Factories/setupChallengeResults.d.ts.map +1 -0
  147. package/dist/types/ChallengeResults/Factories/setupChallengeResultsForSandbox.d.ts.map +1 -1
  148. package/dist/types/ChallengeResults/Mocks/MockHasChallengeResultsPM.d.ts +8 -0
  149. package/dist/types/ChallengeResults/Mocks/MockHasChallengeResultsPM.d.ts.map +1 -0
  150. package/dist/types/ChallengeResults/Mocks/index.d.ts +1 -0
  151. package/dist/types/ChallengeResults/Mocks/index.d.ts.map +1 -1
  152. package/dist/types/ChallengeResults/PMs/ChallengeResultsListPM.d.ts +1 -0
  153. package/dist/types/ChallengeResults/PMs/ChallengeResultsListPM.d.ts.map +1 -1
  154. package/dist/types/ChallengeResults/PMs/HasChallengeResultsPM.d.ts +7 -0
  155. package/dist/types/ChallengeResults/PMs/HasChallengeResultsPM.d.ts.map +1 -0
  156. package/dist/types/ChallengeResults/PMs/HasChallengeResultsPM.test.d.ts +2 -0
  157. package/dist/types/ChallengeResults/PMs/HasChallengeResultsPM.test.d.ts.map +1 -0
  158. package/dist/types/ChallengeResults/PMs/index.d.ts +1 -0
  159. package/dist/types/ChallengeResults/PMs/index.d.ts.map +1 -1
  160. package/dist/types/StateMachine/Adapters/hostStateAdapter.d.ts +4 -0
  161. package/dist/types/StateMachine/Adapters/hostStateAdapter.d.ts.map +1 -0
  162. package/dist/types/StateMachine/Adapters/hostStateAdapter.test.d.ts +2 -0
  163. package/dist/types/StateMachine/Adapters/hostStateAdapter.test.d.ts.map +1 -0
  164. package/dist/types/StateMachine/Adapters/index.d.ts +1 -0
  165. package/dist/types/StateMachine/Adapters/index.d.ts.map +1 -1
  166. package/dist/types/StateMachine/Controllers/editStateName.d.ts +3 -0
  167. package/dist/types/StateMachine/Controllers/editStateName.d.ts.map +1 -0
  168. package/dist/types/StateMachine/Controllers/editStateName.test.d.ts +2 -0
  169. package/dist/types/StateMachine/Controllers/editStateName.test.d.ts.map +1 -0
  170. package/dist/types/StateMachine/Controllers/index.d.ts +1 -0
  171. package/dist/types/StateMachine/Controllers/index.d.ts.map +1 -1
  172. package/dist/types/StateMachine/Entities/HostStateMachine.d.ts +6 -0
  173. package/dist/types/StateMachine/Entities/HostStateMachine.d.ts.map +1 -1
  174. package/dist/types/StateMachine/Mocks/MockEditStateNameUC.d.ts +7 -0
  175. package/dist/types/StateMachine/Mocks/MockEditStateNameUC.d.ts.map +1 -0
  176. package/dist/types/StateMachine/Mocks/MockHostStatePM.d.ts +9 -0
  177. package/dist/types/StateMachine/Mocks/MockHostStatePM.d.ts.map +1 -0
  178. package/dist/types/StateMachine/PMs/HostStateMachinePM.d.ts +3 -4
  179. package/dist/types/StateMachine/PMs/HostStateMachinePM.d.ts.map +1 -1
  180. package/dist/types/StateMachine/PMs/HostStatePM.d.ts +18 -0
  181. package/dist/types/StateMachine/PMs/HostStatePM.d.ts.map +1 -0
  182. package/dist/types/StateMachine/PMs/HostStatePM.test.d.ts +2 -0
  183. package/dist/types/StateMachine/PMs/HostStatePM.test.d.ts.map +1 -0
  184. package/dist/types/StateMachine/PMs/index.d.ts +1 -0
  185. package/dist/types/StateMachine/PMs/index.d.ts.map +1 -1
  186. package/dist/types/StateMachine/UCs/EditStateNameUC.d.ts +9 -0
  187. package/dist/types/StateMachine/UCs/EditStateNameUC.d.ts.map +1 -0
  188. package/dist/types/StateMachine/UCs/EditStateNameUC.test.d.ts +2 -0
  189. package/dist/types/StateMachine/UCs/EditStateNameUC.test.d.ts.map +1 -0
  190. package/dist/types/StateMachine/UCs/index.d.ts +1 -0
  191. package/dist/types/StateMachine/UCs/index.d.ts.map +1 -1
  192. package/dist/types/ThemeColors/Factories/index.d.ts +1 -1
  193. package/dist/types/ThemeColors/Factories/index.d.ts.map +1 -1
  194. package/dist/types/ThemeColors/Factories/setupTheme.d.ts +3 -0
  195. package/dist/types/ThemeColors/Factories/setupTheme.d.ts.map +1 -0
  196. package/package.json +1 -1
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hasChallengeResultsPMAdapter = void 0;
4
+ const HasChallengeResultsPM_1 = require("../PMs/HasChallengeResultsPM");
5
+ exports.hasChallengeResultsPMAdapter = {
6
+ defaultVM: false,
7
+ subscribe: (appObjects, setVM) => {
8
+ const pm = HasChallengeResultsPM_1.HasChallengeResultsPM.get(appObjects);
9
+ if (!pm) {
10
+ appObjects.submitError("hasChallengeResultsPMAdapter", "Unable to find HasChallengeResultsPM");
11
+ return;
12
+ }
13
+ pm.addView(setVM);
14
+ },
15
+ unsubscribe: (appObjects, setVM) => {
16
+ const pm = HasChallengeResultsPM_1.HasChallengeResultsPM.get(appObjects);
17
+ if (!pm) {
18
+ appObjects.submitError("hasChallengeResultsPMAdapter", "Unable to find HasChallengeResultsPM");
19
+ return;
20
+ }
21
+ pm.removeView(setVM);
22
+ }
23
+ };
24
+ //# sourceMappingURL=hasChallengeResultsPMAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hasChallengeResultsPMAdapter.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.ts"],"names":[],"mappings":";;;AACA,wEAAqE;AAExD,QAAA,4BAA4B,GAAgC;IACvE,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,CAAC,UAAyB,EAAE,KAA4B,EAAE,EAAE;QACrE,MAAM,EAAE,GAAG,6CAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACjD,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,UAAU,CAAC,WAAW,CACpB,8BAA8B,EAC9B,sCAAsC,CACvC,CAAC;YACF,OAAO;QACT,CAAC;QACD,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IACD,WAAW,EAAE,CAAC,UAAyB,EAAE,KAA4B,EAAE,EAAE;QACvE,MAAM,EAAE,GAAG,6CAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACjD,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,UAAU,CAAC,WAAW,CACpB,8BAA8B,EAC9B,sCAAsC,CACvC,CAAC;YACF,OAAO;QACT,CAAC;QACD,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;CACF,CAAC","sourcesContent":["import { AppObjectRepo, SingletonPmAdapter } from \"@vived/core\";\r\nimport { HasChallengeResultsPM } from \"../PMs/HasChallengeResultsPM\";\r\n\r\nexport const hasChallengeResultsPMAdapter: SingletonPmAdapter<boolean> = {\r\n defaultVM: false,\r\n subscribe: (appObjects: AppObjectRepo, setVM: (vm: boolean) => void) => {\r\n const pm = HasChallengeResultsPM.get(appObjects);\r\n if (!pm) {\r\n appObjects.submitError(\r\n \"hasChallengeResultsPMAdapter\",\r\n \"Unable to find HasChallengeResultsPM\"\r\n );\r\n return;\r\n }\r\n pm.addView(setVM);\r\n },\r\n unsubscribe: (appObjects: AppObjectRepo, setVM: (vm: boolean) => void) => {\r\n const pm = HasChallengeResultsPM.get(appObjects);\r\n if (!pm) {\r\n appObjects.submitError(\r\n \"hasChallengeResultsPMAdapter\",\r\n \"Unable to find HasChallengeResultsPM\"\r\n );\r\n return;\r\n }\r\n pm.removeView(setVM);\r\n }\r\n};\r\n"]}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@vived/core");
4
+ const MockHasChallengeResultsPM_1 = require("../Mocks/MockHasChallengeResultsPM");
5
+ const hasChallengeResultsPMAdapter_1 = require("./hasChallengeResultsPMAdapter");
6
+ function makeTestRig() {
7
+ const appObjects = (0, core_1.makeAppObjectRepo)();
8
+ const mockPM = (0, MockHasChallengeResultsPM_1.makeMockHasChallengeResultsPM)(appObjects);
9
+ return { appObjects, mockPM };
10
+ }
11
+ describe("Has Challenge Results PM Adapter", () => {
12
+ it("Sets the Default VM", () => {
13
+ expect(hasChallengeResultsPMAdapter_1.hasChallengeResultsPMAdapter.defaultVM).toEqual(false);
14
+ });
15
+ it("Add a view on subscribe", () => {
16
+ const { mockPM, appObjects } = makeTestRig();
17
+ mockPM.addView = jest.fn();
18
+ const setVM = jest.fn();
19
+ hasChallengeResultsPMAdapter_1.hasChallengeResultsPMAdapter.subscribe(appObjects, setVM);
20
+ expect(mockPM.addView).toBeCalledWith(setVM);
21
+ });
22
+ it("Removes a view on unsubscribe", () => {
23
+ const { mockPM, appObjects } = makeTestRig();
24
+ mockPM.removeView = jest.fn();
25
+ const setVM = jest.fn();
26
+ hasChallengeResultsPMAdapter_1.hasChallengeResultsPMAdapter.unsubscribe(appObjects, setVM);
27
+ expect(mockPM.removeView).toBeCalledWith(setVM);
28
+ });
29
+ });
30
+ //# sourceMappingURL=hasChallengeResultsPMAdapter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hasChallengeResultsPMAdapter.test.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.test.ts"],"names":[],"mappings":";;AAAA,sCAAgD;AAChD,kFAAmF;AACnF,iFAA8E;AAE9E,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,IAAA,wBAAiB,GAAE,CAAC;IACvC,MAAM,MAAM,GAAG,IAAA,yDAA6B,EAAC,UAAU,CAAC,CAAC;IACzD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAChC,CAAC;AAED,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC7B,MAAM,CAAC,2DAA4B,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAE7C,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAExB,2DAA4B,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAE1D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAE7C,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAExB,2DAA4B,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAE5D,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { makeMockHasChallengeResultsPM } from \"../Mocks/MockHasChallengeResultsPM\";\r\nimport { hasChallengeResultsPMAdapter } from \"./hasChallengeResultsPMAdapter\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const mockPM = makeMockHasChallengeResultsPM(appObjects);\r\n return { appObjects, mockPM };\r\n}\r\n\r\ndescribe(\"Has Challenge Results PM Adapter\", () => {\r\n it(\"Sets the Default VM\", () => {\r\n expect(hasChallengeResultsPMAdapter.defaultVM).toEqual(false);\r\n });\r\n\r\n it(\"Add a view on subscribe\", () => {\r\n const { mockPM, appObjects } = makeTestRig();\r\n\r\n mockPM.addView = jest.fn();\r\n const setVM = jest.fn();\r\n\r\n hasChallengeResultsPMAdapter.subscribe(appObjects, setVM);\r\n\r\n expect(mockPM.addView).toBeCalledWith(setVM);\r\n });\r\n\r\n it(\"Removes a view on unsubscribe\", () => {\r\n const { mockPM, appObjects } = makeTestRig();\r\n\r\n mockPM.removeView = jest.fn();\r\n const setVM = jest.fn();\r\n\r\n hasChallengeResultsPMAdapter.unsubscribe(appObjects, setVM);\r\n\r\n expect(mockPM.removeView).toBeCalledWith(setVM);\r\n });\r\n});\r\n"]}
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./challengeResultsListAdapter"), exports);
18
+ __exportStar(require("./hasChallengeResultsPMAdapter"), exports);
18
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Adapters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA8C","sourcesContent":["export * from \"./challengeResultsListAdapter\";\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Adapters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA8C;AAC9C,iEAA+C","sourcesContent":["export * from \"./challengeResultsListAdapter\";\r\nexport * from \"./hasChallengeResultsPMAdapter\";\r\n"]}
@@ -14,5 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./setupChallengeResultsForSandbox"), exports);
17
+ __exportStar(require("./setupChallengeResults"), exports);
18
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Factories/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oEAAiD","sourcesContent":["export * from \"./setupChallengeResultsForSandbox\""]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Factories/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAuC","sourcesContent":["export * from \"./setupChallengeResults\""]}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setupChallengeResults = setupChallengeResults;
4
+ const Entities_1 = require("../Entities");
5
+ const PMs_1 = require("../PMs");
6
+ function setupChallengeResults(appObjects) {
7
+ const ao = appObjects.getOrCreate("ChallengeResults");
8
+ const entity = (0, Entities_1.makeChallengeResults)(ao);
9
+ // PM
10
+ (0, PMs_1.makeChallengeResultsPM)(ao);
11
+ (0, PMs_1.makeHasChallengeResultsPM)(ao);
12
+ return entity;
13
+ }
14
+ //# sourceMappingURL=setupChallengeResults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setupChallengeResults.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Factories/setupChallengeResults.ts"],"names":[],"mappings":";;AAIA,sDAYC;AAfD,0CAA2E;AAC3E,gCAA2E;AAE3E,SAAgB,qBAAqB,CACnC,UAAyB;IAEzB,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAEtD,MAAM,MAAM,GAAG,IAAA,+BAAoB,EAAC,EAAE,CAAC,CAAC;IAExC,KAAK;IACL,IAAA,4BAAsB,EAAC,EAAE,CAAC,CAAC;IAC3B,IAAA,+BAAyB,EAAC,EAAE,CAAC,CAAC;IAE9B,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import { AppObjectRepo } from \"@vived/core\";\r\nimport { ChallengeResultsEntity, makeChallengeResults } from \"../Entities\";\r\nimport { makeChallengeResultsPM, makeHasChallengeResultsPM } from \"../PMs\";\r\n\r\nexport function setupChallengeResults(\r\n appObjects: AppObjectRepo\r\n): ChallengeResultsEntity {\r\n const ao = appObjects.getOrCreate(\"ChallengeResults\");\r\n\r\n const entity = makeChallengeResults(ao);\r\n\r\n // PM\r\n makeChallengeResultsPM(ao);\r\n makeHasChallengeResultsPM(ao);\r\n\r\n return entity;\r\n}\r\n"]}
@@ -8,5 +8,6 @@ function setupChallengeResultsForSandbox(appObjects) {
8
8
  (0, Entities_1.makeChallengeResults)(ao);
9
9
  // PM
10
10
  (0, PMs_1.makeChallengeResultsPM)(ao);
11
+ (0, PMs_1.makeHasChallengeResultsPM)(ao);
11
12
  }
12
13
  //# sourceMappingURL=setupChallengeResultsForSandbox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setupChallengeResultsForSandbox.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Factories/setupChallengeResultsForSandbox.ts"],"names":[],"mappings":";;AAIA,0EAOC;AAVD,0CAAmD;AACnD,gCAAgD;AAEhD,SAAgB,+BAA+B,CAAC,UAAyB;IACvE,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAEtD,IAAA,+BAAoB,EAAC,EAAE,CAAC,CAAC;IAEzB,KAAK;IACL,IAAA,4BAAsB,EAAC,EAAE,CAAC,CAAC;AAC7B,CAAC","sourcesContent":["import { AppObjectRepo } from \"@vived/core\";\r\nimport { makeChallengeResults } from \"../Entities\";\r\nimport { makeChallengeResultsPM } from \"../PMs\";\r\n\r\nexport function setupChallengeResultsForSandbox(appObjects: AppObjectRepo) {\r\n const ao = appObjects.getOrCreate(\"ChallengeResults\");\r\n\r\n makeChallengeResults(ao);\r\n\r\n // PM\r\n makeChallengeResultsPM(ao);\r\n}\r\n"]}
1
+ {"version":3,"file":"setupChallengeResultsForSandbox.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Factories/setupChallengeResultsForSandbox.ts"],"names":[],"mappings":";;AAIA,0EAQC;AAXD,0CAAmD;AACnD,gCAA2E;AAE3E,SAAgB,+BAA+B,CAAC,UAAyB;IACvE,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAEtD,IAAA,+BAAoB,EAAC,EAAE,CAAC,CAAC;IAEzB,KAAK;IACL,IAAA,4BAAsB,EAAC,EAAE,CAAC,CAAC;IAC3B,IAAA,+BAAyB,EAAC,EAAE,CAAC,CAAC;AAChC,CAAC","sourcesContent":["import { AppObjectRepo } from \"@vived/core\";\r\nimport { makeChallengeResults } from \"../Entities\";\r\nimport { makeChallengeResultsPM, makeHasChallengeResultsPM } from \"../PMs\";\r\n\r\nexport function setupChallengeResultsForSandbox(appObjects: AppObjectRepo) {\r\n const ao = appObjects.getOrCreate(\"ChallengeResults\");\r\n\r\n makeChallengeResults(ao);\r\n\r\n // PM\r\n makeChallengeResultsPM(ao);\r\n makeHasChallengeResultsPM(ao);\r\n}\r\n"]}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MockHasChallengeResultsPM = void 0;
4
+ exports.makeMockHasChallengeResultsPM = makeMockHasChallengeResultsPM;
5
+ const HasChallengeResultsPM_1 = require("../PMs/HasChallengeResultsPM");
6
+ class MockHasChallengeResultsPM extends HasChallengeResultsPM_1.HasChallengeResultsPM {
7
+ constructor(appObject) {
8
+ super(appObject, HasChallengeResultsPM_1.HasChallengeResultsPM.type);
9
+ this.vmsAreEqual = jest.fn();
10
+ }
11
+ }
12
+ exports.MockHasChallengeResultsPM = MockHasChallengeResultsPM;
13
+ function makeMockHasChallengeResultsPM(appObjects) {
14
+ return new MockHasChallengeResultsPM(appObjects.getOrCreate("MockHasChallengeResultsPM"));
15
+ }
16
+ //# sourceMappingURL=MockHasChallengeResultsPM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MockHasChallengeResultsPM.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Mocks/MockHasChallengeResultsPM.ts"],"names":[],"mappings":";;;AAWA,sEAIC;AAdD,wEAAqE;AAErE,MAAa,yBAA0B,SAAQ,6CAAqB;IAGlE,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,6CAAqB,CAAC,IAAI,CAAC,CAAC;QAH/C,gBAAW,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAIxB,CAAC;CACF;AAND,8DAMC;AAED,SAAgB,6BAA6B,CAAC,UAAyB;IACrE,OAAO,IAAI,yBAAyB,CAClC,UAAU,CAAC,WAAW,CAAC,2BAA2B,CAAC,CACpD,CAAC;AACJ,CAAC","sourcesContent":["import { AppObject, AppObjectRepo } from \"@vived/core\";\r\nimport { HasChallengeResultsPM } from \"../PMs/HasChallengeResultsPM\";\r\n\r\nexport class MockHasChallengeResultsPM extends HasChallengeResultsPM {\r\n vmsAreEqual = jest.fn();\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, HasChallengeResultsPM.type);\r\n }\r\n}\r\n\r\nexport function makeMockHasChallengeResultsPM(appObjects: AppObjectRepo) {\r\n return new MockHasChallengeResultsPM(\r\n appObjects.getOrCreate(\"MockHasChallengeResultsPM\")\r\n );\r\n}\r\n"]}
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./ChallengeResultsListPMMock"), exports);
18
+ __exportStar(require("./MockHasChallengeResultsPM"), exports);
18
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Mocks/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA4C","sourcesContent":["export * from \"./ChallengeResultsListPMMock\""]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/Mocks/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA4C;AAC5C,8DAA2C","sourcesContent":["export * from \"./ChallengeResultsListPMMock\"\r\nexport * from \"./MockHasChallengeResultsPM\""]}
@@ -44,12 +44,14 @@ class ChallengeResultsPMImp extends ChallengeResultsListPM {
44
44
  this.results.results.forEach((result) => {
45
45
  const state = this.stateMachine.getStateByID(result.slideID);
46
46
  if (state) {
47
+ const stateIndex = this.stateMachine.getStateIndex(result.slideID) ?? -1;
47
48
  const vm = {
48
49
  id: result.slideID,
49
50
  slideName: state.name,
50
51
  attempts: result.tries,
51
52
  resultType: result.type,
52
53
  message: result.message,
54
+ stateIndex,
53
55
  resultData: result.resultData
54
56
  };
55
57
  organizedResults.push(vm);
@@ -1 +1 @@
1
- {"version":3,"file":"ChallengeResultsListPM.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/ChallengeResultsListPM.ts"],"names":[],"mappings":";;;AAsCA,wDAIC;AA1CD,sCAAoE;AACpE,mFAAgF;AAChF,mEAQsC;AAgBtC,MAAsB,sBAAuB,SAAQ,kBAEpD;IAGC,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,UAAU,CAAC,YAAY,CAC5B,sBAAsB,CAAC,IAAI,CAC5B,CAAC;IACJ,CAAC;;AATH,wDAUC;AAPQ,2BAAI,GAAG,wBAAwB,CAAC;AASzC,SAAgB,sBAAsB,CACpC,SAAoB;IAEpB,OAAO,IAAI,qBAAqB,CAAC,SAAS,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,qBAAsB,SAAQ,sBAAsB;IACxD,IAAY,OAAO;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAC5B,yCAAsB,CAAC,IAAI,CAC5B,CAAC;IACJ,CAAC;IAED,IAAY,YAAY;QACtB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,mCAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,WAAW,CAAC,CAAsB,EAAE,CAAsB;QACxD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAExC,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;YACvB,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE;gBAAE,QAAQ,GAAG,KAAK,CAAC;iBAC3C,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ;gBAAE,QAAQ,GAAG,KAAK,CAAC;QACnE,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC;IA0BD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAzBhD,mBAAc,GAAG,GAAS,EAAE;YAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY;gBAAE,OAAO;YAEhD,MAAM,gBAAgB,GAAwB,EAAE,CAAC;YAEjD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACtC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAa,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC9D,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,EAAE,GAAsB;wBAC5B,EAAE,EAAE,MAAM,CAAC,OAAO;wBAClB,SAAS,EAAE,KAAK,CAAC,IAAI;wBACrB,QAAQ,EAAE,MAAM,CAAC,KAAK;wBACtB,UAAU,EAAE,MAAM,CAAC,IAAI;wBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,UAAU,EAAE,MAAM,CAAC,UAAU;qBAC9B,CAAC;oBAEF,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;QACtC,CAAC,CAAC;QAIA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACtB,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAErD,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectPM, AppObjectRepo } from \"@vived/core\";\r\nimport { HostStateMachine } from \"../../StateMachine/Entities/HostStateMachine\";\r\nimport {\r\n ChallengeResultHitData,\r\n ChallengeResultMultiHitData,\r\n ChallengeResultProgressData,\r\n ChallengeResultQualityData,\r\n ChallengeResultScoreData,\r\n ChallengeResultsEntity,\r\n ChallengeResultType\r\n} from \"../Entities/ChallengeResults\";\r\n\r\nexport interface ChallengeResultVM {\r\n id: string;\r\n slideName: string;\r\n attempts: number;\r\n message: string;\r\n resultType: ChallengeResultType;\r\n resultData:\r\n | ChallengeResultHitData\r\n | ChallengeResultMultiHitData\r\n | ChallengeResultQualityData\r\n | ChallengeResultScoreData\r\n | ChallengeResultProgressData;\r\n}\r\n\r\nexport abstract class ChallengeResultsListPM extends AppObjectPM<\r\n ChallengeResultVM[]\r\n> {\r\n static type = \"ChallengeResultsListPM\";\r\n\r\n static get(appObjects: AppObjectRepo) {\r\n return appObjects.getSingleton<ChallengeResultsListPM>(\r\n ChallengeResultsListPM.type\r\n );\r\n }\r\n}\r\n\r\nexport function makeChallengeResultsPM(\r\n appObject: AppObject\r\n): ChallengeResultsListPM {\r\n return new ChallengeResultsPMImp(appObject);\r\n}\r\n\r\nclass ChallengeResultsPMImp extends ChallengeResultsListPM {\r\n private get results() {\r\n return this.getCachedSingleton<ChallengeResultsEntity>(\r\n ChallengeResultsEntity.type\r\n );\r\n }\r\n\r\n private get stateMachine() {\r\n return this.getCachedSingleton<HostStateMachine>(HostStateMachine.type);\r\n }\r\n\r\n vmsAreEqual(a: ChallengeResultVM[], b: ChallengeResultVM[]): boolean {\r\n if (a.length !== b.length) return false;\r\n\r\n let areEqual = true;\r\n a.forEach((aResult, i) => {\r\n const bResult = b[i];\r\n if (aResult.id !== bResult.id) areEqual = false;\r\n else if (aResult.attempts !== bResult.attempts) areEqual = false;\r\n });\r\n return areEqual;\r\n }\r\n\r\n onEntityChange = (): void => {\r\n if (!this.results || !this.stateMachine) return;\r\n\r\n const organizedResults: ChallengeResultVM[] = [];\r\n\r\n this.results.results.forEach((result) => {\r\n const state = this.stateMachine!.getStateByID(result.slideID);\r\n if (state) {\r\n const vm: ChallengeResultVM = {\r\n id: result.slideID,\r\n slideName: state.name,\r\n attempts: result.tries,\r\n resultType: result.type,\r\n message: result.message,\r\n resultData: result.resultData\r\n };\r\n\r\n organizedResults.push(vm);\r\n }\r\n });\r\n\r\n this.doUpdateView(organizedResults);\r\n };\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, ChallengeResultsListPM.type);\r\n this.doUpdateView([]);\r\n this.results?.addChangeObserver(this.onEntityChange);\r\n\r\n this.appObjects.registerSingleton(this);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ChallengeResultsListPM.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/ChallengeResultsListPM.ts"],"names":[],"mappings":";;;AAuCA,wDAIC;AA3CD,sCAAoE;AACpE,mFAAgF;AAChF,mEAQsC;AAiBtC,MAAsB,sBAAuB,SAAQ,kBAEpD;IAGC,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,UAAU,CAAC,YAAY,CAC5B,sBAAsB,CAAC,IAAI,CAC5B,CAAC;IACJ,CAAC;;AATH,wDAUC;AAPQ,2BAAI,GAAG,wBAAwB,CAAC;AASzC,SAAgB,sBAAsB,CACpC,SAAoB;IAEpB,OAAO,IAAI,qBAAqB,CAAC,SAAS,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,qBAAsB,SAAQ,sBAAsB;IACxD,IAAY,OAAO;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAC5B,yCAAsB,CAAC,IAAI,CAC5B,CAAC;IACJ,CAAC;IAED,IAAY,YAAY;QACtB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,mCAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,WAAW,CAAC,CAAsB,EAAE,CAAsB;QACxD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAExC,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;YACvB,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE;gBAAE,QAAQ,GAAG,KAAK,CAAC;iBAC3C,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ;gBAAE,QAAQ,GAAG,KAAK,CAAC;QACnE,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC;IA8BD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC;QA7BhD,mBAAc,GAAG,GAAS,EAAE;YAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY;gBAAE,OAAO;YAEhD,MAAM,gBAAgB,GAAwB,EAAE,CAAC;YAEjD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACtC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAa,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC9D,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,UAAU,GACd,IAAI,CAAC,YAAa,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;oBAEzD,MAAM,EAAE,GAAsB;wBAC5B,EAAE,EAAE,MAAM,CAAC,OAAO;wBAClB,SAAS,EAAE,KAAK,CAAC,IAAI;wBACrB,QAAQ,EAAE,MAAM,CAAC,KAAK;wBACtB,UAAU,EAAE,MAAM,CAAC,IAAI;wBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,UAAU;wBACV,UAAU,EAAE,MAAM,CAAC,UAAU;qBAC9B,CAAC;oBAEF,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;QACtC,CAAC,CAAC;QAIA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACtB,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAErD,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectPM, AppObjectRepo } from \"@vived/core\";\r\nimport { HostStateMachine } from \"../../StateMachine/Entities/HostStateMachine\";\r\nimport {\r\n ChallengeResultHitData,\r\n ChallengeResultMultiHitData,\r\n ChallengeResultProgressData,\r\n ChallengeResultQualityData,\r\n ChallengeResultScoreData,\r\n ChallengeResultsEntity,\r\n ChallengeResultType\r\n} from \"../Entities/ChallengeResults\";\r\n\r\nexport interface ChallengeResultVM {\r\n id: string;\r\n slideName: string;\r\n attempts: number;\r\n message: string;\r\n resultType: ChallengeResultType;\r\n stateIndex: number;\r\n resultData:\r\n | ChallengeResultHitData\r\n | ChallengeResultMultiHitData\r\n | ChallengeResultQualityData\r\n | ChallengeResultScoreData\r\n | ChallengeResultProgressData;\r\n}\r\n\r\nexport abstract class ChallengeResultsListPM extends AppObjectPM<\r\n ChallengeResultVM[]\r\n> {\r\n static type = \"ChallengeResultsListPM\";\r\n\r\n static get(appObjects: AppObjectRepo) {\r\n return appObjects.getSingleton<ChallengeResultsListPM>(\r\n ChallengeResultsListPM.type\r\n );\r\n }\r\n}\r\n\r\nexport function makeChallengeResultsPM(\r\n appObject: AppObject\r\n): ChallengeResultsListPM {\r\n return new ChallengeResultsPMImp(appObject);\r\n}\r\n\r\nclass ChallengeResultsPMImp extends ChallengeResultsListPM {\r\n private get results() {\r\n return this.getCachedSingleton<ChallengeResultsEntity>(\r\n ChallengeResultsEntity.type\r\n );\r\n }\r\n\r\n private get stateMachine() {\r\n return this.getCachedSingleton<HostStateMachine>(HostStateMachine.type);\r\n }\r\n\r\n vmsAreEqual(a: ChallengeResultVM[], b: ChallengeResultVM[]): boolean {\r\n if (a.length !== b.length) return false;\r\n\r\n let areEqual = true;\r\n a.forEach((aResult, i) => {\r\n const bResult = b[i];\r\n if (aResult.id !== bResult.id) areEqual = false;\r\n else if (aResult.attempts !== bResult.attempts) areEqual = false;\r\n });\r\n return areEqual;\r\n }\r\n\r\n onEntityChange = (): void => {\r\n if (!this.results || !this.stateMachine) return;\r\n\r\n const organizedResults: ChallengeResultVM[] = [];\r\n\r\n this.results.results.forEach((result) => {\r\n const state = this.stateMachine!.getStateByID(result.slideID);\r\n if (state) {\r\n const stateIndex =\r\n this.stateMachine!.getStateIndex(result.slideID) ?? -1;\r\n\r\n const vm: ChallengeResultVM = {\r\n id: result.slideID,\r\n slideName: state.name,\r\n attempts: result.tries,\r\n resultType: result.type,\r\n message: result.message,\r\n stateIndex,\r\n resultData: result.resultData\r\n };\r\n\r\n organizedResults.push(vm);\r\n }\r\n });\r\n\r\n this.doUpdateView(organizedResults);\r\n };\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, ChallengeResultsListPM.type);\r\n this.doUpdateView([]);\r\n this.results?.addChangeObserver(this.onEntityChange);\r\n\r\n this.appObjects.registerSingleton(this);\r\n }\r\n}\r\n"]}
@@ -28,7 +28,8 @@ function makeChallengeResultVM(id) {
28
28
  success: true
29
29
  },
30
30
  resultType: "HIT",
31
- slideName: "slide name"
31
+ slideName: "slide name",
32
+ stateIndex: 0
32
33
  };
33
34
  }
34
35
  describe("Challenge Results PM", () => {
@@ -99,7 +100,8 @@ describe("Challenge Results PM", () => {
99
100
  },
100
101
  resultType: "HIT",
101
102
  id: "state1",
102
- slideName: "State Name"
103
+ slideName: "State Name",
104
+ stateIndex: 0
103
105
  }
104
106
  ]);
105
107
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ChallengeResultsListPM.test.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/ChallengeResultsListPM.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { makeHostStateMachine } from \"../../StateMachine/Entities\";\r\nimport { makeMockHostStateEntity } from \"../../StateMachine/Mocks/MockHostStateEntity\";\r\nimport { makeChallengeResults } from \"../Entities\";\r\nimport {\r\n ChallengeResultsListPM,\r\n ChallengeResultVM,\r\n makeChallengeResultsPM\r\n} from \"./ChallengeResultsListPM\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const registerSingletonSpy = jest.spyOn(appObjects, \"registerSingleton\");\r\n const results = makeChallengeResults(appObjects.getOrCreate(\"Results\"));\r\n\r\n const stateMachine = makeHostStateMachine(\r\n appObjects.getOrCreate(\"StateMachine\")\r\n );\r\n stateMachine.setStates([makeMockHostStateEntity(\"state1\", appObjects)]);\r\n\r\n const pm = makeChallengeResultsPM(appObjects.getOrCreate(\"PM\"));\r\n\r\n return {\r\n pm,\r\n results,\r\n appObjects,\r\n registerSingletonSpy\r\n };\r\n}\r\n\r\nfunction makeChallengeResultVM(id: string): ChallengeResultVM {\r\n return {\r\n attempts: 1,\r\n id,\r\n message: \"a message\",\r\n resultData: {\r\n success: true\r\n },\r\n resultType: \"HIT\",\r\n slideName: \"slide name\"\r\n };\r\n}\r\n\r\ndescribe(\"Challenge Results PM\", () => {\r\n it(\"Gets the singleton\", () => {\r\n const { appObjects, pm } = makeTestRig();\r\n\r\n expect(ChallengeResultsListPM.get(appObjects)).toEqual(pm);\r\n });\r\n\r\n it(\"Registers the singleton\", () => {\r\n const { registerSingletonSpy, pm } = makeTestRig();\r\n\r\n expect(registerSingletonSpy).toBeCalledWith(pm);\r\n });\r\n\r\n it(\"Checks for equal vms\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const result1 = makeChallengeResultVM(\"result1\");\r\n const result2 = makeChallengeResultVM(\"result2\");\r\n\r\n const vm1 = [result1, result2];\r\n const vm2 = [...vm1];\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(true);\r\n });\r\n\r\n it(\"Checks for a result to be removed\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const result1 = makeChallengeResultVM(\"result1\");\r\n const result2 = makeChallengeResultVM(\"result2\");\r\n\r\n const vm1 = [result1, result2];\r\n const vm2 = [result1];\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Checks for a result to be added\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const result1 = makeChallengeResultVM(\"result1\");\r\n const result2 = makeChallengeResultVM(\"result2\");\r\n\r\n const vm1 = [result1, result2];\r\n\r\n const result3 = makeChallengeResultVM(\"result3\");\r\n const vm2 = [result1, result2, result3];\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Checks for result ID to change\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const result1 = makeChallengeResultVM(\"result1\");\r\n const result2 = makeChallengeResultVM(\"result2\");\r\n\r\n const vm1 = [result1, result2];\r\n\r\n const result2Again: ChallengeResultVM = { ...result2, id: \"changed\" };\r\n const vm2 = [result1, result2Again];\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Checks for tries to change\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const result1 = makeChallengeResultVM(\"result1\");\r\n const result2 = makeChallengeResultVM(\"result2\");\r\n\r\n const vm1 = [result1, result2];\r\n\r\n const result2Again: ChallengeResultVM = { ...result2, attempts: 2 };\r\n const vm2 = [result1, result2Again];\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Initializes the view\", () => {\r\n const { pm } = makeTestRig();\r\n expect(pm.lastVM).not.toBeUndefined();\r\n });\r\n\r\n it(\"Updates the results\", () => {\r\n const { results, pm } = makeTestRig();\r\n\r\n results.submitHitResult(\"state1\", false, 0, \"bob\");\r\n\r\n expect(pm.lastVM).toEqual([\r\n {\r\n attempts: 0,\r\n message: \"bob\",\r\n resultData: {\r\n success: false\r\n },\r\n resultType: \"HIT\",\r\n id: \"state1\",\r\n slideName: \"State Name\"\r\n }\r\n ]);\r\n });\r\n});\r\n"]}
1
+ {"version":3,"file":"ChallengeResultsListPM.test.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/ChallengeResultsListPM.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { makeHostStateMachine } from \"../../StateMachine/Entities\";\r\nimport { makeMockHostStateEntity } from \"../../StateMachine/Mocks/MockHostStateEntity\";\r\nimport { makeChallengeResults } from \"../Entities\";\r\nimport {\r\n ChallengeResultsListPM,\r\n ChallengeResultVM,\r\n makeChallengeResultsPM\r\n} from \"./ChallengeResultsListPM\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const registerSingletonSpy = jest.spyOn(appObjects, \"registerSingleton\");\r\n const results = makeChallengeResults(appObjects.getOrCreate(\"Results\"));\r\n\r\n const stateMachine = makeHostStateMachine(\r\n appObjects.getOrCreate(\"StateMachine\")\r\n );\r\n stateMachine.setStates([makeMockHostStateEntity(\"state1\", appObjects)]);\r\n\r\n const pm = makeChallengeResultsPM(appObjects.getOrCreate(\"PM\"));\r\n\r\n return {\r\n pm,\r\n results,\r\n appObjects,\r\n registerSingletonSpy\r\n };\r\n}\r\n\r\nfunction makeChallengeResultVM(id: string): ChallengeResultVM {\r\n return {\r\n attempts: 1,\r\n id,\r\n message: \"a message\",\r\n resultData: {\r\n success: true\r\n },\r\n resultType: \"HIT\",\r\n slideName: \"slide name\",\r\n stateIndex: 0\r\n };\r\n}\r\n\r\ndescribe(\"Challenge Results PM\", () => {\r\n it(\"Gets the singleton\", () => {\r\n const { appObjects, pm } = makeTestRig();\r\n\r\n expect(ChallengeResultsListPM.get(appObjects)).toEqual(pm);\r\n });\r\n\r\n it(\"Registers the singleton\", () => {\r\n const { registerSingletonSpy, pm } = makeTestRig();\r\n\r\n expect(registerSingletonSpy).toBeCalledWith(pm);\r\n });\r\n\r\n it(\"Checks for equal vms\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const result1 = makeChallengeResultVM(\"result1\");\r\n const result2 = makeChallengeResultVM(\"result2\");\r\n\r\n const vm1 = [result1, result2];\r\n const vm2 = [...vm1];\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(true);\r\n });\r\n\r\n it(\"Checks for a result to be removed\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const result1 = makeChallengeResultVM(\"result1\");\r\n const result2 = makeChallengeResultVM(\"result2\");\r\n\r\n const vm1 = [result1, result2];\r\n const vm2 = [result1];\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Checks for a result to be added\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const result1 = makeChallengeResultVM(\"result1\");\r\n const result2 = makeChallengeResultVM(\"result2\");\r\n\r\n const vm1 = [result1, result2];\r\n\r\n const result3 = makeChallengeResultVM(\"result3\");\r\n const vm2 = [result1, result2, result3];\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Checks for result ID to change\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const result1 = makeChallengeResultVM(\"result1\");\r\n const result2 = makeChallengeResultVM(\"result2\");\r\n\r\n const vm1 = [result1, result2];\r\n\r\n const result2Again: ChallengeResultVM = { ...result2, id: \"changed\" };\r\n const vm2 = [result1, result2Again];\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Checks for tries to change\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const result1 = makeChallengeResultVM(\"result1\");\r\n const result2 = makeChallengeResultVM(\"result2\");\r\n\r\n const vm1 = [result1, result2];\r\n\r\n const result2Again: ChallengeResultVM = { ...result2, attempts: 2 };\r\n const vm2 = [result1, result2Again];\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Initializes the view\", () => {\r\n const { pm } = makeTestRig();\r\n expect(pm.lastVM).not.toBeUndefined();\r\n });\r\n\r\n it(\"Updates the results\", () => {\r\n const { results, pm } = makeTestRig();\r\n\r\n results.submitHitResult(\"state1\", false, 0, \"bob\");\r\n\r\n expect(pm.lastVM).toEqual([\r\n {\r\n attempts: 0,\r\n message: \"bob\",\r\n resultData: {\r\n success: false\r\n },\r\n resultType: \"HIT\",\r\n id: \"state1\",\r\n slideName: \"State Name\",\r\n stateIndex: 0\r\n }\r\n ]);\r\n });\r\n});\r\n"]}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HasChallengeResultsPM = void 0;
4
+ exports.makeHasChallengeResultsPM = makeHasChallengeResultsPM;
5
+ const core_1 = require("@vived/core");
6
+ const Entities_1 = require("../Entities");
7
+ class HasChallengeResultsPM extends core_1.AppObjectPM {
8
+ static get(appObjects) {
9
+ return (0, core_1.getSingletonComponent)(HasChallengeResultsPM.type, appObjects);
10
+ }
11
+ }
12
+ exports.HasChallengeResultsPM = HasChallengeResultsPM;
13
+ HasChallengeResultsPM.type = "HasChallengeResultsPM";
14
+ function makeHasChallengeResultsPM(appObject) {
15
+ return new HasChallengeResultsPMImp(appObject);
16
+ }
17
+ class HasChallengeResultsPMImp extends HasChallengeResultsPM {
18
+ get resultsEntity() {
19
+ return this.getCachedSingleton(Entities_1.ChallengeResultsEntity.type);
20
+ }
21
+ vmsAreEqual(a, b) {
22
+ return a === b;
23
+ }
24
+ constructor(appObject) {
25
+ super(appObject, HasChallengeResultsPM.type);
26
+ this.onEntityChange = () => {
27
+ if (!this.resultsEntity)
28
+ return;
29
+ const hasAssessmentResults = this.resultsEntity.results?.length > 0 || false;
30
+ this.doUpdateView(hasAssessmentResults);
31
+ };
32
+ this.appObjects.registerSingleton(this);
33
+ this.resultsEntity?.addChangeObserver(this.onEntityChange);
34
+ this.onEntityChange();
35
+ }
36
+ }
37
+ //# sourceMappingURL=HasChallengeResultsPM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HasChallengeResultsPM.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/HasChallengeResultsPM.ts"],"names":[],"mappings":";;;AAmBA,8DAIC;AAvBD,sCAKqB;AACrB,0CAAqD;AAErD,MAAsB,qBAAsB,SAAQ,kBAAoB;IAGtE,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,IAAA,4BAAqB,EAC1B,qBAAqB,CAAC,IAAI,EAC1B,UAAU,CACX,CAAC;IACJ,CAAC;;AARH,sDASC;AARQ,0BAAI,GAAG,uBAAuB,CAAC;AAUxC,SAAgB,yBAAyB,CACvC,SAAoB;IAEpB,OAAO,IAAI,wBAAwB,CAAC,SAAS,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,wBAAyB,SAAQ,qBAAqB;IAC1D,IAAY,aAAa;QACvB,OAAO,IAAI,CAAC,kBAAkB,CAC5B,iCAAsB,CAAC,IAAI,CAC5B,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,CAAU,EAAE,CAAU;QAChC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAWD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAVvC,mBAAc,GAAG,GAAS,EAAE;YAClC,IAAI,CAAC,IAAI,CAAC,aAAa;gBAAE,OAAO;YAEhC,MAAM,oBAAoB,GACxB,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC;YAElD,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;QAC1C,CAAC,CAAC;QAKA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3D,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;CACF","sourcesContent":["import {\r\n\tAppObject,\r\n\tAppObjectPM,\r\n\tAppObjectRepo,\r\n\tgetSingletonComponent\r\n} from \"@vived/core\";\r\nimport { ChallengeResultsEntity } from \"../Entities\";\r\n\r\nexport abstract class HasChallengeResultsPM extends AppObjectPM<boolean> {\r\n static type = \"HasChallengeResultsPM\";\r\n\r\n static get(appObjects: AppObjectRepo) {\r\n return getSingletonComponent<HasChallengeResultsPM>(\r\n HasChallengeResultsPM.type,\r\n appObjects\r\n );\r\n }\r\n}\r\n\r\nexport function makeHasChallengeResultsPM(\r\n appObject: AppObject\r\n): HasChallengeResultsPM {\r\n return new HasChallengeResultsPMImp(appObject);\r\n}\r\n\r\nclass HasChallengeResultsPMImp extends HasChallengeResultsPM {\r\n private get resultsEntity() {\r\n return this.getCachedSingleton<ChallengeResultsEntity>(\r\n ChallengeResultsEntity.type\r\n );\r\n }\r\n\r\n vmsAreEqual(a: boolean, b: boolean): boolean {\r\n return a === b;\r\n }\r\n\r\n private onEntityChange = (): void => {\r\n if (!this.resultsEntity) return;\r\n\r\n const hasAssessmentResults =\r\n this.resultsEntity.results?.length > 0 || false;\r\n\r\n this.doUpdateView(hasAssessmentResults);\r\n };\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, HasChallengeResultsPM.type);\r\n\r\n this.appObjects.registerSingleton(this);\r\n this.resultsEntity?.addChangeObserver(this.onEntityChange);\r\n this.onEntityChange();\r\n }\r\n}\r\n"]}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@vived/core");
4
+ const HasChallengeResultsPM_1 = require("./HasChallengeResultsPM");
5
+ const Entities_1 = require("../Entities");
6
+ function makeTestRig() {
7
+ const appObjects = (0, core_1.makeAppObjectRepo)();
8
+ const registerSingletonSpy = jest.spyOn(appObjects, "registerSingleton");
9
+ const results = (0, Entities_1.makeChallengeResults)(appObjects.getOrCreate("ChallengeResults"));
10
+ const pm = (0, HasChallengeResultsPM_1.makeHasChallengeResultsPM)(appObjects.getOrCreate("PM"));
11
+ return { appObjects, pm, registerSingletonSpy, results };
12
+ }
13
+ describe("HasChallengeResultsPM", () => {
14
+ it("Gets the singleton", () => {
15
+ const { pm, appObjects } = makeTestRig();
16
+ expect(HasChallengeResultsPM_1.HasChallengeResultsPM.get(appObjects)).toEqual(pm);
17
+ });
18
+ it("Registers the singleton", () => {
19
+ const { pm, registerSingletonSpy } = makeTestRig();
20
+ expect(registerSingletonSpy).toBeCalledWith(pm);
21
+ });
22
+ it("Initialize with default VM", () => {
23
+ const { pm } = makeTestRig();
24
+ expect(pm.lastVM).toBe(false);
25
+ });
26
+ it("when results change the VM is updated", () => {
27
+ const { results, pm } = makeTestRig();
28
+ results.submitHitResult("1", false, 0, "bob");
29
+ expect(pm.lastVM).toBe(true);
30
+ });
31
+ });
32
+ //# sourceMappingURL=HasChallengeResultsPM.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HasChallengeResultsPM.test.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/HasChallengeResultsPM.test.ts"],"names":[],"mappings":";;AAAA,sCAAgD;AAEhD,mEAGiC;AACjC,0CAAmD;AAEnD,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,IAAA,wBAAiB,GAAE,CAAC;IACvC,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;IAEzE,MAAM,OAAO,GAAG,IAAA,+BAAoB,EAClC,UAAU,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAC3C,CAAC;IACF,MAAM,EAAE,GAAG,IAAA,iDAAyB,EAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAEnE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC;AAC3D,CAAC;AAED,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC5B,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAEzC,MAAM,CAAC,6CAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,EAAE,EAAE,EAAE,oBAAoB,EAAE,GAAG,WAAW,EAAE,CAAC;QAEnD,MAAM,CAAC,oBAAoB,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,CAAC;QAE7B,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,CAAC;QAEtC,OAAO,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAE9C,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\n\r\nimport {\r\n\tHasChallengeResultsPM,\r\n\tmakeHasChallengeResultsPM\r\n} from \"./HasChallengeResultsPM\";\r\nimport { makeChallengeResults } from \"../Entities\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const registerSingletonSpy = jest.spyOn(appObjects, \"registerSingleton\");\r\n\r\n const results = makeChallengeResults(\r\n appObjects.getOrCreate(\"ChallengeResults\")\r\n );\r\n const pm = makeHasChallengeResultsPM(appObjects.getOrCreate(\"PM\"));\r\n\r\n return { appObjects, pm, registerSingletonSpy, results };\r\n}\r\n\r\ndescribe(\"HasChallengeResultsPM\", () => {\r\n it(\"Gets the singleton\", () => {\r\n const { pm, appObjects } = makeTestRig();\r\n\r\n expect(HasChallengeResultsPM.get(appObjects)).toEqual(pm);\r\n });\r\n\r\n it(\"Registers the singleton\", () => {\r\n const { pm, registerSingletonSpy } = makeTestRig();\r\n\r\n expect(registerSingletonSpy).toBeCalledWith(pm);\r\n });\r\n\r\n it(\"Initialize with default VM\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n expect(pm.lastVM).toBe(false);\r\n });\r\n\r\n it(\"when results change the VM is updated\", () => {\r\n const { results, pm } = makeTestRig();\r\n\r\n results.submitHitResult(\"1\", false, 0, \"bob\");\r\n\r\n expect(pm.lastVM).toBe(true);\r\n });\r\n});\r\n"]}
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./ChallengeResultsListPM"), exports);
18
+ __exportStar(require("./HasChallengeResultsPM"), exports);
18
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAwC","sourcesContent":["export * from \"./ChallengeResultsListPM\""]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAwC;AACxC,0DAAuC","sourcesContent":["export * from \"./ChallengeResultsListPM\"\r\nexport * from \"./HasChallengeResultsPM\""]}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hostStateAdapter = void 0;
4
+ const HostStatePM_1 = require("../PMs/HostStatePM");
5
+ exports.hostStateAdapter = {
6
+ defaultVM: HostStatePM_1.HostStatePM.defaultVM,
7
+ subscribe: (id, appObjects, setVM) => {
8
+ if (!id) {
9
+ return;
10
+ }
11
+ const pm = HostStatePM_1.HostStatePM.getById(id, appObjects);
12
+ if (!pm) {
13
+ appObjects.submitError("hostStateAdapter", `Unable to find HostStatePM for ID: ${id}`);
14
+ return;
15
+ }
16
+ pm.addView(setVM);
17
+ },
18
+ unsubscribe: (id, appObjects, setVM) => {
19
+ if (!id)
20
+ return;
21
+ HostStatePM_1.HostStatePM.getById(id, appObjects)?.removeView(setVM);
22
+ }
23
+ };
24
+ //# sourceMappingURL=hostStateAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hostStateAdapter.js","sourceRoot":"","sources":["../../../../src/StateMachine/Adapters/hostStateAdapter.ts"],"names":[],"mappings":";;;AACA,oDAA8D;AAEjD,QAAA,gBAAgB,GAA2B;IACtD,SAAS,EAAE,yBAAW,CAAC,SAAS;IAChC,SAAS,EAAE,CACT,EAAU,EACV,UAAyB,EACzB,KAAgC,EAChC,EAAE;QACF,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO;QACT,CAAC;QAED,MAAM,EAAE,GAAG,yBAAW,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,UAAU,CAAC,WAAW,CACpB,kBAAkB,EAClB,sCAAsC,EAAE,EAAE,CAC3C,CAAC;YACF,OAAO;QACT,CAAC;QAED,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IACD,WAAW,EAAE,CACX,EAAU,EACV,UAAyB,EACzB,KAAgC,EAChC,EAAE;QACF,IAAI,CAAC,EAAE;YAAE,OAAO;QAEhB,yBAAW,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;CACF,CAAC","sourcesContent":["import { AppObjectRepo, PmAdapter } from \"@vived/core\";\r\nimport { HostStatePM, HostStateVM } from \"../PMs/HostStatePM\";\r\n\r\nexport const hostStateAdapter: PmAdapter<HostStateVM> = {\r\n defaultVM: HostStatePM.defaultVM,\r\n subscribe: (\r\n id: string,\r\n appObjects: AppObjectRepo,\r\n setVM: (vm: HostStateVM) => void\r\n ) => {\r\n if (!id) {\r\n return;\r\n }\r\n\r\n const pm = HostStatePM.getById(id, appObjects);\r\n if (!pm) {\r\n appObjects.submitError(\r\n \"hostStateAdapter\",\r\n `Unable to find HostStatePM for ID: ${id}`\r\n );\r\n return;\r\n }\r\n\r\n pm.addView(setVM);\r\n },\r\n unsubscribe: (\r\n id: string,\r\n appObjects: AppObjectRepo,\r\n setVM: (vm: HostStateVM) => void\r\n ) => {\r\n if (!id) return;\r\n\r\n HostStatePM.getById(id, appObjects)?.removeView(setVM);\r\n }\r\n};\r\n"]}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@vived/core");
4
+ const HostStatePM_1 = require("../PMs/HostStatePM");
5
+ const hostStateAdapter_1 = require("./hostStateAdapter");
6
+ const MockHostStatePM_1 = require("../Mocks/MockHostStatePM");
7
+ describe("hostStateAdapter", () => {
8
+ let appObjects;
9
+ let appObject;
10
+ let mockPM;
11
+ const testId = "test-state-id";
12
+ const setVM = jest.fn();
13
+ beforeEach(() => {
14
+ appObjects = (0, core_1.makeAppObjectRepo)();
15
+ appObject = appObjects.getOrCreate(testId);
16
+ // Create the mock PM instead of a real one
17
+ mockPM = (0, MockHostStatePM_1.makeMockHostStatePM)(appObject);
18
+ // Reset the mock function before each test
19
+ setVM.mockReset();
20
+ });
21
+ it("should provide the default VM from HostStatePM", () => {
22
+ expect(hostStateAdapter_1.hostStateAdapter.defaultVM).toEqual(HostStatePM_1.HostStatePM.defaultVM);
23
+ });
24
+ it("should add a view on subscribe", () => {
25
+ const addViewSpy = jest.spyOn(mockPM, "addView");
26
+ hostStateAdapter_1.hostStateAdapter.subscribe(testId, appObjects, setVM);
27
+ expect(addViewSpy).toHaveBeenCalledWith(setVM);
28
+ });
29
+ it("should remove a view on unsubscribe", () => {
30
+ const removeViewSpy = jest.spyOn(mockPM, "removeView");
31
+ hostStateAdapter_1.hostStateAdapter.unsubscribe(testId, appObjects, setVM);
32
+ expect(removeViewSpy).toHaveBeenCalledWith(setVM);
33
+ });
34
+ it("should handle missing PM on subscribe", () => {
35
+ // Create a new AppObjectRepo without the PM
36
+ const emptyAppObjects = (0, core_1.makeAppObjectRepo)();
37
+ emptyAppObjects.submitError = jest.fn();
38
+ // Using an ID that doesn't have a PM
39
+ hostStateAdapter_1.hostStateAdapter.subscribe(testId, emptyAppObjects, setVM);
40
+ expect(emptyAppObjects.submitError).toHaveBeenCalledWith("hostStateAdapter", expect.stringContaining("Unable to find HostStatePM"));
41
+ });
42
+ it("should handle missing PM on unsubscribe without error", () => {
43
+ // This should not throw an error
44
+ expect(() => {
45
+ hostStateAdapter_1.hostStateAdapter.unsubscribe("non-existent", appObjects, setVM);
46
+ }).not.toThrow();
47
+ });
48
+ });
49
+ //# sourceMappingURL=hostStateAdapter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hostStateAdapter.test.js","sourceRoot":"","sources":["../../../../src/StateMachine/Adapters/hostStateAdapter.test.ts"],"names":[],"mappings":";;AAAA,sCAA0E;AAC1E,oDAAiD;AACjD,yDAAsD;AACtD,8DAAgF;AAEhF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAI,UAAyB,CAAC;IAC9B,IAAI,SAAoB,CAAC;IACzB,IAAI,MAAuB,CAAC;IAC5B,MAAM,MAAM,GAAG,eAAe,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAExB,UAAU,CAAC,GAAG,EAAE;QACd,UAAU,GAAG,IAAA,wBAAiB,GAAE,CAAC;QACjC,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAE3C,2CAA2C;QAC3C,MAAM,GAAG,IAAA,qCAAmB,EAAC,SAAS,CAAC,CAAC;QAExC,2CAA2C;QAC3C,KAAK,CAAC,SAAS,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,CAAC,mCAAgB,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,yBAAW,CAAC,SAAS,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAEjD,mCAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAEtD,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAEvD,mCAAgB,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAExD,MAAM,CAAC,aAAa,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,4CAA4C;QAC5C,MAAM,eAAe,GAAG,IAAA,wBAAiB,GAAE,CAAC;QAC5C,eAAe,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAExC,qCAAqC;QACrC,mCAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;QAE3D,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,oBAAoB,CACtD,kBAAkB,EAClB,MAAM,CAAC,gBAAgB,CAAC,4BAA4B,CAAC,CACtD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,iCAAiC;QACjC,MAAM,CAAC,GAAG,EAAE;YACV,mCAAgB,CAAC,WAAW,CAAC,cAAc,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { AppObject, AppObjectRepo, makeAppObjectRepo } from \"@vived/core\";\r\nimport { HostStatePM } from \"../PMs/HostStatePM\";\r\nimport { hostStateAdapter } from \"./hostStateAdapter\";\r\nimport { MockHostStatePM, makeMockHostStatePM } from \"../Mocks/MockHostStatePM\";\r\n\r\ndescribe(\"hostStateAdapter\", () => {\r\n let appObjects: AppObjectRepo;\r\n let appObject: AppObject;\r\n let mockPM: MockHostStatePM;\r\n const testId = \"test-state-id\";\r\n const setVM = jest.fn();\r\n\r\n beforeEach(() => {\r\n appObjects = makeAppObjectRepo();\r\n appObject = appObjects.getOrCreate(testId);\r\n\r\n // Create the mock PM instead of a real one\r\n mockPM = makeMockHostStatePM(appObject);\r\n\r\n // Reset the mock function before each test\r\n setVM.mockReset();\r\n });\r\n\r\n it(\"should provide the default VM from HostStatePM\", () => {\r\n expect(hostStateAdapter.defaultVM).toEqual(HostStatePM.defaultVM);\r\n });\r\n\r\n it(\"should add a view on subscribe\", () => {\r\n const addViewSpy = jest.spyOn(mockPM, \"addView\");\r\n\r\n hostStateAdapter.subscribe(testId, appObjects, setVM);\r\n\r\n expect(addViewSpy).toHaveBeenCalledWith(setVM);\r\n });\r\n\r\n it(\"should remove a view on unsubscribe\", () => {\r\n const removeViewSpy = jest.spyOn(mockPM, \"removeView\");\r\n\r\n hostStateAdapter.unsubscribe(testId, appObjects, setVM);\r\n\r\n expect(removeViewSpy).toHaveBeenCalledWith(setVM);\r\n });\r\n\r\n it(\"should handle missing PM on subscribe\", () => {\r\n // Create a new AppObjectRepo without the PM\r\n const emptyAppObjects = makeAppObjectRepo();\r\n emptyAppObjects.submitError = jest.fn();\r\n\r\n // Using an ID that doesn't have a PM\r\n hostStateAdapter.subscribe(testId, emptyAppObjects, setVM);\r\n\r\n expect(emptyAppObjects.submitError).toHaveBeenCalledWith(\r\n \"hostStateAdapter\",\r\n expect.stringContaining(\"Unable to find HostStatePM\")\r\n );\r\n });\r\n\r\n it(\"should handle missing PM on unsubscribe without error\", () => {\r\n // This should not throw an error\r\n expect(() => {\r\n hostStateAdapter.unsubscribe(\"non-existent\", appObjects, setVM);\r\n }).not.toThrow();\r\n });\r\n});\r\n"]}
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./editingStateAdapter"), exports);
18
18
  __exportStar(require("./hostStateMachinePMAdapter"), exports);
19
+ __exportStar(require("./hostStateAdapter"), exports);
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/StateMachine/Adapters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,8DAA4C","sourcesContent":["export * from \"./editingStateAdapter\";\r\nexport * from \"./hostStateMachinePMAdapter\";\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/StateMachine/Adapters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,8DAA4C;AAC5C,qDAAmC","sourcesContent":["export * from \"./editingStateAdapter\";\r\nexport * from \"./hostStateMachinePMAdapter\";\r\nexport * from \"./hostStateAdapter\";\r\n"]}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.editStateName = editStateName;
4
+ const EditStateNameUC_1 = require("../UCs/EditStateNameUC");
5
+ function editStateName(name, id, appObjects) {
6
+ const uc = EditStateNameUC_1.EditStateNameUC.getById(id, appObjects);
7
+ if (!uc) {
8
+ appObjects.submitWarning("editStateName", "Unable to find EditStateNameUC");
9
+ return;
10
+ }
11
+ uc.editStateName(name);
12
+ }
13
+ //# sourceMappingURL=editStateName.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editStateName.js","sourceRoot":"","sources":["../../../../src/StateMachine/Controllers/editStateName.ts"],"names":[],"mappings":";;AAGA,sCAYC;AAdD,4DAAyD;AAEzD,SAAgB,aAAa,CAC3B,IAAY,EACZ,EAAU,EACV,UAAyB;IAEzB,MAAM,EAAE,GAAG,iCAAe,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IACnD,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,UAAU,CAAC,aAAa,CAAC,eAAe,EAAE,gCAAgC,CAAC,CAAC;QAC5E,OAAO;IACT,CAAC;IAED,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC","sourcesContent":["import { AppObjectRepo } from \"@vived/core\";\r\nimport { EditStateNameUC } from \"../UCs/EditStateNameUC\";\r\n\r\nexport function editStateName(\r\n name: string,\r\n id: string,\r\n appObjects: AppObjectRepo\r\n) {\r\n const uc = EditStateNameUC.getById(id, appObjects);\r\n if (!uc) {\r\n appObjects.submitWarning(\"editStateName\", \"Unable to find EditStateNameUC\");\r\n return;\r\n }\r\n\r\n uc.editStateName(name);\r\n}\r\n"]}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@vived/core");
4
+ const MockEditStateNameUC_1 = require("../Mocks/MockEditStateNameUC");
5
+ const editStateName_1 = require("./editStateName");
6
+ describe("editStateName", () => {
7
+ let appObjects;
8
+ let mockUC;
9
+ let mockEditFunction;
10
+ const testId = "test-state-id";
11
+ const testName = "New State Name";
12
+ beforeEach(() => {
13
+ // Create a fresh repository for each test
14
+ appObjects = (0, core_1.makeAppObjectRepo)();
15
+ const testAppObject = appObjects.getOrCreate(testId);
16
+ // Create the mock UC
17
+ mockUC = new MockEditStateNameUC_1.MockEditStateNameUC(testAppObject);
18
+ // Setup the spy on the mock function
19
+ mockEditFunction = jest.fn();
20
+ mockUC.editStateName = mockEditFunction;
21
+ });
22
+ it("should call EditStateNameUC with the provided name", () => {
23
+ // Call the controller function
24
+ (0, editStateName_1.editStateName)(testName, testId, appObjects);
25
+ // Verify the use case was called with the correct name
26
+ expect(mockEditFunction).toBeCalledWith(testName);
27
+ });
28
+ it("should do nothing when UC cannot be found", () => {
29
+ // Call with an ID that doesn't have the UC
30
+ const nonExistentId = "non-existent-id";
31
+ // This should not throw an error
32
+ expect(() => {
33
+ (0, editStateName_1.editStateName)(testName, nonExistentId, appObjects);
34
+ }).not.toThrow();
35
+ // Verify our original mock wasn't called
36
+ expect(mockEditFunction).not.toHaveBeenCalled();
37
+ });
38
+ it("should submit a warning when UC is not found", () => {
39
+ // Spy on the warning submission method
40
+ const submitWarningSpy = jest.spyOn(appObjects, "submitWarning");
41
+ // Call the controller function with a non-existent ID
42
+ (0, editStateName_1.editStateName)(testName, "non-existent-id", appObjects);
43
+ // Verify warning was submitted
44
+ expect(submitWarningSpy).toHaveBeenCalledWith("editStateName", "Unable to find EditStateNameUC");
45
+ // Verify that the edit function was not called
46
+ expect(mockEditFunction).not.toHaveBeenCalled();
47
+ });
48
+ });
49
+ //# sourceMappingURL=editStateName.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editStateName.test.js","sourceRoot":"","sources":["../../../../src/StateMachine/Controllers/editStateName.test.ts"],"names":[],"mappings":";;AAAA,sCAA+D;AAC/D,sEAAkE;AAClE,mDAAgD;AAEhD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC9B,IAAI,UAAyB,CAAC;IAC9B,IAAI,MAA2B,CAAC;IAChC,IAAI,gBAA2B,CAAC;IAChC,MAAM,MAAM,GAAG,eAAe,CAAC;IAC/B,MAAM,QAAQ,GAAG,gBAAgB,CAAC;IAElC,UAAU,CAAC,GAAG,EAAE;QACf,0CAA0C;QAC1C,UAAU,GAAG,IAAA,wBAAiB,GAAE,CAAC;QACjC,MAAM,aAAa,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAErD,qBAAqB;QACrB,MAAM,GAAG,IAAI,yCAAmB,CAAC,aAAa,CAAC,CAAC;QAEhD,qCAAqC;QACrC,gBAAgB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,CAAC,aAAa,GAAG,gBAAgB,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC7D,+BAA+B;QAC/B,IAAA,6BAAa,EAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAE5C,uDAAuD;QACvD,MAAM,CAAC,gBAAgB,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACpD,2CAA2C;QAC3C,MAAM,aAAa,GAAG,iBAAiB,CAAC;QAExC,iCAAiC;QACjC,MAAM,CAAC,GAAG,EAAE;YACX,IAAA,6BAAa,EAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAEjB,yCAAyC;QACzC,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACvD,uCAAuC;QACvC,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QAEjE,sDAAsD;QACtD,IAAA,6BAAa,EAAC,QAAQ,EAAE,iBAAiB,EAAE,UAAU,CAAC,CAAC;QAEvD,+BAA+B;QAC/B,MAAM,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CAC5C,eAAe,EACf,gCAAgC,CAChC,CAAC;QAEF,+CAA+C;QAC/C,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import { AppObjectRepo, makeAppObjectRepo } from \"@vived/core\";\r\nimport {MockEditStateNameUC } from \"../Mocks/MockEditStateNameUC\";\r\nimport { editStateName } from \"./editStateName\";\r\n\r\ndescribe(\"editStateName\", () => {\r\n\tlet appObjects: AppObjectRepo;\r\n\tlet mockUC: MockEditStateNameUC;\r\n\tlet mockEditFunction: jest.Mock;\r\n\tconst testId = \"test-state-id\";\r\n\tconst testName = \"New State Name\";\r\n\r\n\tbeforeEach(() => {\r\n\t\t// Create a fresh repository for each test\r\n\t\tappObjects = makeAppObjectRepo();\r\n\t\tconst testAppObject = appObjects.getOrCreate(testId);\r\n\r\n\t\t// Create the mock UC\r\n\t\tmockUC = new MockEditStateNameUC(testAppObject);\r\n\t\t\r\n\t\t// Setup the spy on the mock function\r\n\t\tmockEditFunction = jest.fn();\r\n\t\tmockUC.editStateName = mockEditFunction;\r\n\t});\r\n\r\n\tit(\"should call EditStateNameUC with the provided name\", () => {\r\n\t\t// Call the controller function\r\n\t\teditStateName(testName, testId, appObjects);\r\n\r\n\t\t// Verify the use case was called with the correct name\r\n\t\texpect(mockEditFunction).toBeCalledWith(testName);\r\n\t});\r\n\r\n\tit(\"should do nothing when UC cannot be found\", () => {\r\n\t\t// Call with an ID that doesn't have the UC\r\n\t\tconst nonExistentId = \"non-existent-id\";\r\n\r\n\t\t// This should not throw an error\r\n\t\texpect(() => {\r\n\t\t\teditStateName(testName, nonExistentId, appObjects);\r\n\t\t}).not.toThrow();\r\n\r\n\t\t// Verify our original mock wasn't called\r\n\t\texpect(mockEditFunction).not.toHaveBeenCalled();\r\n\t});\r\n\r\n\tit(\"should submit a warning when UC is not found\", () => {\r\n\t\t// Spy on the warning submission method\r\n\t\tconst submitWarningSpy = jest.spyOn(appObjects, \"submitWarning\");\r\n\r\n\t\t// Call the controller function with a non-existent ID\r\n\t\teditStateName(testName, \"non-existent-id\", appObjects);\r\n\r\n\t\t// Verify warning was submitted\r\n\t\texpect(submitWarningSpy).toHaveBeenCalledWith(\r\n\t\t\t\"editStateName\",\r\n\t\t\t\"Unable to find EditStateNameUC\"\r\n\t\t);\r\n\r\n\t\t// Verify that the edit function was not called\r\n\t\texpect(mockEditFunction).not.toHaveBeenCalled();\r\n\t});\r\n});\r\n"]}
@@ -20,6 +20,7 @@ __exportStar(require("./deleteState"), exports);
20
20
  __exportStar(require("./duplicateState"), exports);
21
21
  __exportStar(require("./editActiveState"), exports);
22
22
  __exportStar(require("./editState"), exports);
23
+ __exportStar(require("./editStateName"), exports);
23
24
  __exportStar(require("./endActivity"), exports);
24
25
  __exportStar(require("./newState"), exports);
25
26
  __exportStar(require("./saveAuthoring"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/StateMachine/Controllers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,iDAA+B;AAC/B,gDAA8B;AAC9B,mDAAiC;AACjC,oDAAkC;AAClC,8CAA4B;AAC5B,gDAA8B;AAC9B,6CAA2B;AAC3B,kDAAgC;AAChC,sDAAoC;AACpC,yDAAuC","sourcesContent":["export * from \"./cancelEditing\";\r\nexport * from \"./consumeState\";\r\nexport * from \"./deleteState\";\r\nexport * from \"./duplicateState\";\r\nexport * from \"./editActiveState\";\r\nexport * from \"./editState\";\r\nexport * from \"./endActivity\";\r\nexport * from \"./newState\";\r\nexport * from \"./saveAuthoring\";\r\nexport * from \"./transitionToState\";\r\nexport * from \"./savePersistentStates\";\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/StateMachine/Controllers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,iDAA+B;AAC/B,gDAA8B;AAC9B,mDAAiC;AACjC,oDAAkC;AAClC,8CAA4B;AAC5B,kDAAgC;AAChC,gDAA8B;AAC9B,6CAA2B;AAC3B,kDAAgC;AAChC,sDAAoC;AACpC,yDAAuC","sourcesContent":["export * from \"./cancelEditing\";\r\nexport * from \"./consumeState\";\r\nexport * from \"./deleteState\";\r\nexport * from \"./duplicateState\";\r\nexport * from \"./editActiveState\";\r\nexport * from \"./editState\";\r\nexport * from \"./editStateName\";\r\nexport * from \"./endActivity\";\r\nexport * from \"./newState\";\r\nexport * from \"./saveAuthoring\";\r\nexport * from \"./transitionToState\";\r\nexport * from \"./savePersistentStates\";\r\n"]}