@sprucelabs/spruce-cli 18.2.0 → 18.3.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 (294) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/build/.spruce/events/events.contract.d.ts +159 -0
  3. package/build/.spruce/events/events.contract.js +5 -1
  4. package/build/.spruce/events/events.contract.js.map +1 -1
  5. package/build/.spruce/events/heartwood/getActiveTheme.v2021_02_11.contract.d.ts +46 -0
  6. package/build/.spruce/events/heartwood/getActiveTheme.v2021_02_11.contract.js +57 -0
  7. package/build/.spruce/events/heartwood/getActiveTheme.v2021_02_11.contract.js.map +1 -0
  8. package/build/.spruce/events/heartwood/registerDashboardCards.v2021_02_11.contract.d.ts +68 -0
  9. package/build/.spruce/events/heartwood/registerDashboardCards.v2021_02_11.contract.js +78 -0
  10. package/build/.spruce/events/heartwood/registerDashboardCards.v2021_02_11.contract.js.map +1 -0
  11. package/build/.spruce/events/heartwood/upsertTheme.v2021_02_11.contract.d.ts +40 -0
  12. package/build/.spruce/events/heartwood/upsertTheme.v2021_02_11.contract.js +51 -0
  13. package/build/.spruce/events/heartwood/upsertTheme.v2021_02_11.contract.js.map +1 -0
  14. package/build/.spruce/events/spruceCli/registerSkillViews.v2021_04_11.contract.d.ts +9 -0
  15. package/build/.spruce/events/spruceCli/registerSkillViews.v2021_04_11.contract.js +17 -0
  16. package/build/.spruce/events/spruceCli/registerSkillViews.v2021_04_11.contract.js.map +1 -0
  17. package/build/.spruce/schemas/schemas.types.d.ts +158 -55
  18. package/build/.spruce/schemas/schemas.types.js.map +1 -1
  19. package/build/.spruce/schemas/spruceCli/v2020_07_22/actionResponse.schema.d.ts +3 -0
  20. package/build/.spruce/schemas/spruceCli/v2020_07_22/actionResponse.schema.js +70 -0
  21. package/build/.spruce/schemas/spruceCli/v2020_07_22/actionResponse.schema.js.map +1 -0
  22. package/build/.spruce/schemas/spruceCli/v2020_07_22/npmPackage.schema.d.ts +3 -0
  23. package/build/.spruce/schemas/spruceCli/v2020_07_22/npmPackage.schema.js +35 -0
  24. package/build/.spruce/schemas/spruceCli/v2020_07_22/npmPackage.schema.js.map +1 -0
  25. package/build/.spruce/settings.json +2 -1
  26. package/build/GlobalEmitter.d.ts +13 -38
  27. package/build/GlobalEmitter.js +3 -6
  28. package/build/GlobalEmitter.js.map +1 -1
  29. package/build/__tests__/behavioral/TestingAConversation.test.d.ts +2 -1
  30. package/build/__tests__/behavioral/TestingAConversation.test.js +74 -84
  31. package/build/__tests__/behavioral/TestingAConversation.test.js.map +1 -1
  32. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js +38 -13
  33. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
  34. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.d.ts +1 -0
  35. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js +16 -9
  36. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
  37. package/build/__tests__/behavioral/permissions/CreatingPermissions.test.d.ts +2 -2
  38. package/build/__tests__/behavioral/permissions/CreatingPermissions.test.js +7 -7
  39. package/build/__tests__/behavioral/permissions/CreatingPermissions.test.js.map +1 -1
  40. package/build/__tests__/behavioral/permissions/PermissionPlugin.test.d.ts +6 -0
  41. package/build/__tests__/behavioral/permissions/PermissionPlugin.test.js +85 -0
  42. package/build/__tests__/behavioral/permissions/PermissionPlugin.test.js.map +1 -0
  43. package/build/__tests__/behavioral/permissions/PermissionStore.test.d.ts +5 -4
  44. package/build/__tests__/behavioral/permissions/PermissionStore.test.js +96 -63
  45. package/build/__tests__/behavioral/permissions/PermissionStore.test.js.map +1 -1
  46. package/build/__tests__/behavioral/permissions/PermissionWriter.test.d.ts +5 -0
  47. package/build/__tests__/behavioral/permissions/PermissionWriter.test.js +88 -0
  48. package/build/__tests__/behavioral/permissions/PermissionWriter.test.js.map +1 -0
  49. package/build/__tests__/behavioral/permissions/SyncingPermissions.test.d.ts +15 -4
  50. package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js +325 -28
  51. package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js.map +1 -1
  52. package/build/__tests__/behavioral/permissions/support/AbstractPermissionsTest.d.ts +11 -0
  53. package/build/__tests__/behavioral/permissions/{AbstractPermissionsTest.js → support/AbstractPermissionsTest.js} +34 -2
  54. package/build/__tests__/behavioral/permissions/support/AbstractPermissionsTest.js.map +1 -0
  55. package/build/__tests__/behavioral/permissions/support/generateShortAlphaId.d.ts +1 -0
  56. package/build/__tests__/behavioral/permissions/support/generateShortAlphaId.js +11 -0
  57. package/build/__tests__/behavioral/permissions/support/generateShortAlphaId.js.map +1 -0
  58. package/build/__tests__/behavioral/permissions/support/renderPermissionTestFile.d.ts +1 -0
  59. package/build/__tests__/behavioral/permissions/support/renderPermissionTestFile.js +17 -0
  60. package/build/__tests__/behavioral/permissions/support/renderPermissionTestFile.js.map +1 -0
  61. package/build/__tests__/behavioral/permissions/support/sortPermissionContracts.d.ts +5 -0
  62. package/build/__tests__/behavioral/permissions/support/sortPermissionContracts.js +10 -0
  63. package/build/__tests__/behavioral/permissions/support/sortPermissionContracts.js.map +1 -0
  64. package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.d.ts +1 -1
  65. package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js +46 -46
  66. package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js.map +1 -1
  67. package/build/__tests__/behavioral/tests/CreatingATest.test.js +2 -2
  68. package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
  69. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js +7 -3
  70. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
  71. package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js +2 -2
  72. package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js.map +1 -1
  73. package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js +1 -1
  74. package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js.map +1 -1
  75. package/build/__tests__/implementation/ActionExecuter2.test.d.ts +1 -1
  76. package/build/__tests__/implementation/ActionExecuter2.test.js +23 -11
  77. package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
  78. package/build/__tests__/implementation/GlobalEmitter.test.d.ts +1 -0
  79. package/build/__tests__/implementation/GlobalEmitter.test.js +40 -3
  80. package/build/__tests__/implementation/GlobalEmitter.test.js.map +1 -1
  81. package/build/__tests__/implementation/SkillStore.test.js +3 -4
  82. package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
  83. package/build/features/AbstractAction.d.ts +1 -1
  84. package/build/features/AbstractAction.js.map +1 -1
  85. package/build/features/AbstractFeature.d.ts +3 -3
  86. package/build/features/AbstractFeature.js +8 -8
  87. package/build/features/AbstractFeature.js.map +1 -1
  88. package/build/features/ActionExecuter.d.ts +1 -1
  89. package/build/features/ActionExecuter.js +3 -4
  90. package/build/features/ActionExecuter.js.map +1 -1
  91. package/build/features/ActionFactory.d.ts +12 -5
  92. package/build/features/ActionFactory.js +27 -6
  93. package/build/features/ActionFactory.js.map +1 -1
  94. package/build/features/ActionQuestionAsker.d.ts +1 -1
  95. package/build/features/ActionQuestionAsker.js +6 -6
  96. package/build/features/ActionQuestionAsker.js.map +1 -1
  97. package/build/features/conversation/ConversationFeature.js +1 -1
  98. package/build/features/conversation/ConversationFeature.js.map +1 -1
  99. package/build/features/dependencies/DependencyFeature.js +1 -1
  100. package/build/features/dependencies/DependencyFeature.js.map +1 -1
  101. package/build/features/deploy/actions/HerokuAction.js +31 -33
  102. package/build/features/deploy/actions/HerokuAction.js.map +1 -1
  103. package/build/features/error/ErrorFeature.js +4 -4
  104. package/build/features/error/ErrorFeature.js.map +1 -1
  105. package/build/features/event/EventFeature.d.ts +8 -8
  106. package/build/features/event/EventFeature.js +7 -4
  107. package/build/features/event/EventFeature.js.map +1 -1
  108. package/build/features/event/actions/CreateAction.js.map +1 -1
  109. package/build/features/event/actions/ListenAction.js.map +1 -1
  110. package/build/features/event/stores/EventStore.d.ts +9 -9
  111. package/build/features/event/stores/EventStore.js +26 -26
  112. package/build/features/event/stores/EventStore.js.map +1 -1
  113. package/build/features/eventContract/EventContractFeature.js +4 -1
  114. package/build/features/eventContract/EventContractFeature.js.map +1 -1
  115. package/build/features/eventContract/actions/PullAction.js +10 -5
  116. package/build/features/eventContract/actions/PullAction.js.map +1 -1
  117. package/build/features/features.types.d.ts +2 -37
  118. package/build/features/features.types.js +0 -41
  119. package/build/features/features.types.js.map +1 -1
  120. package/build/features/log/LogFeature.js +1 -1
  121. package/build/features/log/LogFeature.js.map +1 -1
  122. package/build/features/node/NodeFeature.js.map +1 -1
  123. package/build/features/organization/actions/InstallAction.js.map +1 -1
  124. package/build/features/permission/PermissionFeature.d.ts +12 -2
  125. package/build/features/permission/PermissionFeature.js +140 -15
  126. package/build/features/permission/PermissionFeature.js.map +1 -1
  127. package/build/features/permission/actions/CreateAction.js +4 -1
  128. package/build/features/permission/actions/CreateAction.js.map +1 -1
  129. package/build/features/permission/actions/SyncAction.d.ts +5 -1
  130. package/build/features/permission/actions/SyncAction.js +28 -10
  131. package/build/features/permission/actions/SyncAction.js.map +1 -1
  132. package/build/features/permission/stores/PermissionStore.d.ts +6 -1
  133. package/build/features/permission/stores/PermissionStore.js +43 -31
  134. package/build/features/permission/stores/PermissionStore.js.map +1 -1
  135. package/build/features/permission/writers/PermissionWriter.d.ts +7 -1
  136. package/build/features/permission/writers/PermissionWriter.js +66 -17
  137. package/build/features/permission/writers/PermissionWriter.js.map +1 -1
  138. package/build/features/person/PersonFeature.js +1 -1
  139. package/build/features/person/PersonFeature.js.map +1 -1
  140. package/build/features/sandbox/SandboxFeature.js +1 -1
  141. package/build/features/sandbox/SandboxFeature.js.map +1 -1
  142. package/build/features/schema/SchemaFeature.d.ts +8 -8
  143. package/build/features/schema/SchemaFeature.js +4 -4
  144. package/build/features/schema/SchemaFeature.js.map +1 -1
  145. package/build/features/schema/writers/SchemaWriter.d.ts +12 -12
  146. package/build/features/schema/writers/SchemaWriter.js.map +1 -1
  147. package/build/features/skill/SkillFeature.d.ts +11 -11
  148. package/build/features/skill/SkillFeature.js +2 -2
  149. package/build/features/skill/SkillFeature.js.map +1 -1
  150. package/build/features/skill/actions/RebuildAction.js.map +1 -1
  151. package/build/features/skill/actions/RegisterAction.js.map +1 -1
  152. package/build/features/skill/stores/SkillStore.js +1 -2
  153. package/build/features/skill/stores/SkillStore.js.map +1 -1
  154. package/build/features/store/StoreFeature.js +1 -1
  155. package/build/features/store/StoreFeature.js.map +1 -1
  156. package/build/features/store/actions/SyncAction.d.ts +1 -1
  157. package/build/features/store/actions/SyncAction.js.map +1 -1
  158. package/build/features/test/TestFeature.js +1 -1
  159. package/build/features/test/TestFeature.js.map +1 -1
  160. package/build/features/view/ViewFeature.js +1 -1
  161. package/build/features/view/ViewFeature.js.map +1 -1
  162. package/build/schemas/v2020_07_22/actionResponse.builder.d.ts +85 -0
  163. package/build/schemas/v2020_07_22/actionResponse.builder.js +70 -0
  164. package/build/schemas/v2020_07_22/actionResponse.builder.js.map +1 -0
  165. package/build/schemas/v2020_07_22/generatedFile.builder.d.ts +27 -0
  166. package/build/schemas/v2020_07_22/generatedFile.builder.js +45 -0
  167. package/build/schemas/v2020_07_22/generatedFile.builder.js.map +1 -0
  168. package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js +4 -40
  169. package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js.map +1 -1
  170. package/build/services/CommandService.d.ts +2 -2
  171. package/build/services/CommandService.js +6 -6
  172. package/build/services/CommandService.js.map +1 -1
  173. package/build/services/PkgService.d.ts +1 -0
  174. package/build/services/PkgService.js +5 -0
  175. package/build/services/PkgService.js.map +1 -1
  176. package/build/tests/AbstractCliTest.d.ts +7 -3
  177. package/build/tests/AbstractCliTest.js +81 -45
  178. package/build/tests/AbstractCliTest.js.map +1 -1
  179. package/build/tests/buildTestCache.js +7 -0
  180. package/build/tests/buildTestCache.js.map +1 -1
  181. package/build/tests/fixtures/FeatureFixture.js +1 -0
  182. package/build/tests/fixtures/FeatureFixture.js.map +1 -1
  183. package/build/tests/utilities/test.utility.d.ts +2 -0
  184. package/build/tests/utilities/test.utility.js +6 -0
  185. package/build/tests/utilities/test.utility.js.map +1 -1
  186. package/node_modules/@typescript-eslint/parser/package.json +5 -5
  187. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.d.ts +4 -2
  188. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.d.ts.map +1 -1
  189. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.js +13 -5
  190. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.js.map +1 -1
  191. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.d.ts +2 -1
  192. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.d.ts.map +1 -1
  193. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.js +3 -0
  194. package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.js.map +1 -1
  195. package/node_modules/@typescript-eslint/scope-manager/package.json +5 -5
  196. package/node_modules/@typescript-eslint/types/_ts3.4/dist/generated/ast-spec.d.ts +20 -2
  197. package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.d.ts +20 -2
  198. package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.d.ts.map +1 -1
  199. package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.js +2 -0
  200. package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.js.map +1 -1
  201. package/node_modules/@typescript-eslint/types/package.json +2 -2
  202. package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/ts-estree/estree-to-ts-node-types.d.ts +2 -0
  203. package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/ts-estree/ts-nodes.d.ts +2 -0
  204. package/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts.map +1 -1
  205. package/node_modules/@typescript-eslint/typescript-estree/dist/convert.js +15 -3
  206. package/node_modules/@typescript-eslint/typescript-estree/dist/convert.js.map +1 -1
  207. package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts +2 -0
  208. package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts.map +1 -1
  209. package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts +2 -0
  210. package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts.map +1 -1
  211. package/node_modules/@typescript-eslint/typescript-estree/package.json +5 -5
  212. package/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.d.ts.map +1 -1
  213. package/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.js +63 -49
  214. package/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.js.map +1 -1
  215. package/node_modules/@typescript-eslint/visitor-keys/package.json +3 -3
  216. package/package.json +65 -33
  217. package/src/.spruce/events/events.contract.ts +24 -0
  218. package/src/.spruce/events/heartwood/getActiveTheme.v2021_02_11.contract.ts +54 -0
  219. package/src/.spruce/events/heartwood/registerDashboardCards.v2021_02_11.contract.ts +79 -0
  220. package/src/.spruce/events/heartwood/upsertTheme.v2021_02_11.contract.ts +48 -0
  221. package/src/.spruce/events/spruceCli/registerSkillViews.v2021_04_11.contract.ts +13 -0
  222. package/src/.spruce/schemas/schemas.types.ts +171 -52
  223. package/src/.spruce/schemas/spruceCli/v2020_07_22/actionResponse.schema.ts +58 -0
  224. package/src/.spruce/schemas/spruceCli/v2020_07_22/npmPackage.schema.ts +33 -0
  225. package/src/.spruce/settings.json +2 -1
  226. package/src/GlobalEmitter.ts +2 -7
  227. package/src/__tests__/behavioral/TestingAConversation.test.ts +20 -37
  228. package/src/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.ts +14 -2
  229. package/src/__tests__/behavioral/events/SkillEmitsBootEvents.test.ts +6 -0
  230. package/src/__tests__/behavioral/permissions/CreatingPermissions.test.ts +2 -2
  231. package/src/__tests__/behavioral/permissions/PermissionPlugin.test.ts +24 -0
  232. package/src/__tests__/behavioral/permissions/PermissionStore.test.ts +95 -38
  233. package/src/__tests__/behavioral/permissions/PermissionWriter.test.ts +23 -0
  234. package/src/__tests__/behavioral/permissions/SyncingPermissions.test.ts +125 -8
  235. package/src/__tests__/behavioral/permissions/support/AbstractPermissionsTest.ts +38 -0
  236. package/src/__tests__/behavioral/permissions/support/generateShortAlphaId.ts +5 -0
  237. package/src/__tests__/behavioral/permissions/support/renderPermissionTestFile.ts +27 -0
  238. package/src/__tests__/behavioral/permissions/support/sortPermissionContracts.ts +3 -0
  239. package/src/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.ts +12 -12
  240. package/src/__tests__/behavioral/tests/CreatingATest.test.ts +2 -2
  241. package/src/__tests__/behavioral/upgrading/UpgradingANodeModule.test.ts +3 -0
  242. package/src/__tests__/behavioral/upgrading/UpgradingASkill3.test.ts +3 -2
  243. package/src/__tests__/behavioral/upgrading/UpgradingASkill4.test.ts +1 -1
  244. package/src/__tests__/implementation/ActionExecuter2.test.ts +13 -6
  245. package/src/__tests__/implementation/GlobalEmitter.test.ts +22 -1
  246. package/src/__tests__/implementation/SkillStore.test.ts +1 -2
  247. package/src/features/AbstractAction.ts +2 -2
  248. package/src/features/AbstractFeature.ts +8 -8
  249. package/src/features/ActionExecuter.ts +4 -5
  250. package/src/features/ActionFactory.ts +44 -20
  251. package/src/features/ActionQuestionAsker.ts +17 -17
  252. package/src/features/conversation/ConversationFeature.ts +1 -1
  253. package/src/features/dependencies/DependencyFeature.ts +1 -1
  254. package/src/features/deploy/actions/HerokuAction.ts +2 -2
  255. package/src/features/error/ErrorFeature.ts +4 -4
  256. package/src/features/event/EventFeature.ts +15 -14
  257. package/src/features/event/actions/CreateAction.ts +1 -1
  258. package/src/features/event/actions/ListenAction.ts +1 -1
  259. package/src/features/event/stores/EventStore.ts +37 -37
  260. package/src/features/eventContract/EventContractFeature.ts +6 -1
  261. package/src/features/eventContract/actions/PullAction.ts +7 -3
  262. package/src/features/features.types.ts +4 -41
  263. package/src/features/log/LogFeature.ts +1 -1
  264. package/src/features/node/NodeFeature.ts +1 -1
  265. package/src/features/organization/actions/InstallAction.ts +1 -1
  266. package/src/features/permission/PermissionFeature.ts +66 -11
  267. package/src/features/permission/actions/CreateAction.ts +2 -0
  268. package/src/features/permission/actions/SyncAction.ts +22 -3
  269. package/src/features/permission/stores/PermissionStore.ts +27 -8
  270. package/src/features/permission/writers/PermissionWriter.ts +64 -3
  271. package/src/features/person/PersonFeature.ts +1 -1
  272. package/src/features/sandbox/SandboxFeature.ts +1 -3
  273. package/src/features/schema/SchemaFeature.ts +14 -14
  274. package/src/features/schema/writers/SchemaWriter.ts +14 -15
  275. package/src/features/skill/SkillFeature.ts +18 -18
  276. package/src/features/skill/actions/RebuildAction.ts +1 -1
  277. package/src/features/skill/actions/RegisterAction.ts +1 -1
  278. package/src/features/skill/stores/SkillStore.ts +1 -2
  279. package/src/features/store/StoreFeature.ts +1 -1
  280. package/src/features/store/actions/SyncAction.ts +1 -1
  281. package/src/features/test/TestFeature.ts +1 -1
  282. package/src/features/view/ViewFeature.ts +1 -1
  283. package/src/schemas/v2020_07_22/actionResponse.builder.ts +62 -0
  284. package/src/schemas/v2020_07_22/generatedFile.builder.ts +44 -0
  285. package/src/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.ts +3 -46
  286. package/src/services/CommandService.ts +5 -5
  287. package/src/services/PkgService.ts +4 -0
  288. package/src/tests/AbstractCliTest.ts +31 -13
  289. package/src/tests/buildTestCache.ts +7 -0
  290. package/src/tests/fixtures/FeatureFixture.ts +2 -0
  291. package/src/tests/utilities/test.utility.ts +13 -0
  292. package/build/__tests__/behavioral/permissions/AbstractPermissionsTest.d.ts +0 -8
  293. package/build/__tests__/behavioral/permissions/AbstractPermissionsTest.js.map +0 -1
  294. package/src/__tests__/behavioral/permissions/AbstractPermissionsTest.ts +0 -20
@@ -18,8 +18,9 @@ var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/
18
18
  var _mercuryClient = require("@sprucelabs/mercury-client");
19
19
  var _spruceSkillUtils = require("@sprucelabs/spruce-skill-utils");
20
20
  var _testUtils = require("@sprucelabs/test-utils");
21
- var _EventFaker = _interopRequireDefault(require("../../support/EventFaker"));
22
- var _AbstractPermissionsTest = _interopRequireDefault(require("./AbstractPermissionsTest"));
21
+ var _AbstractPermissionsTest = _interopRequireDefault(require("./support/AbstractPermissionsTest"));
22
+ var _generateShortAlphaId = _interopRequireDefault(require("./support/generateShortAlphaId"));
23
+ var _sortPermissionContracts = require("./support/sortPermissionContracts");
23
24
  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _class, _class2;
24
25
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
25
26
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
@@ -34,6 +35,7 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
34
35
  key: "beforeAll",
35
36
  value: function () {
36
37
  var _beforeAll = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
38
+ var namespace, contractId;
37
39
  return _regenerator["default"].wrap(function _callee$(_context) {
38
40
  while (1) {
39
41
  switch (_context.prev = _context.next) {
@@ -41,9 +43,17 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
41
43
  _context.next = 2;
42
44
  return (0, _get2["default"])((0, _getPrototypeOf2["default"])(PermissionStoreTest), "beforeAll", this).call(this);
43
45
  case 2:
44
- this.contractName1 = generateShortAlphaId();
45
- this.contractName2 = generateShortAlphaId();
46
+ _context.next = 4;
47
+ return this.Service('pkg').getSkillNamespace();
46
48
  case 4:
49
+ namespace = _context.sent;
50
+ this.namespace = namespace;
51
+ this.contractName1 = (0, _generateShortAlphaId["default"])();
52
+ this.fqid1 = "".concat(namespace, ".").concat(this.contractName1);
53
+ this.contractName2 = (0, _generateShortAlphaId["default"])();
54
+ contractId = this.contractName2;
55
+ this.fqid2 = buildPermissionContractId(contractId, namespace);
56
+ case 11:
47
57
  case "end":
48
58
  return _context.stop();
49
59
  }
@@ -68,8 +78,9 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
68
78
  case 2:
69
79
  _mercuryClient.MercuryClientFactory.setIsTestMode(true);
70
80
  this.permissions = this.Store('permission');
71
- this.eventFaker = new _EventFaker["default"]();
72
- case 5:
81
+ _context2.next = 6;
82
+ return this.eventFaker.fakeListPermissionContracts(function () {});
83
+ case 6:
73
84
  case "end":
74
85
  return _context2.stop();
75
86
  }
@@ -94,7 +105,7 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
94
105
  return this.loadLocalPermissions();
95
106
  case 2:
96
107
  permissions = _context3.sent;
97
- _testUtils.assert.isEqualDeep(permissions, {});
108
+ _testUtils.assert.isEqualDeep(permissions, []);
98
109
  case 4:
99
110
  case "end":
100
111
  return _context3.stop();
@@ -119,7 +130,11 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
119
130
  return this.createPermissionContract(this.contractName1);
120
131
  case 2:
121
132
  _context4.next = 4;
122
- return this.assertLocalPermissionsEqual((0, _defineProperty2["default"])({}, this.contractName1, ['can-high-five']));
133
+ return this.assertLocalPermissionsEqual([{
134
+ id: this.fqid1,
135
+ permissions: ['can-high-five'],
136
+ path: this.resolvePath("src/permissions/".concat(this.contractName1, ".permissions.ts"))
137
+ }]);
123
138
  case 4:
124
139
  case "end":
125
140
  return _context4.stop();
@@ -136,7 +151,6 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
136
151
  key: "loadsSecondContract",
137
152
  value: function () {
138
153
  var _loadsSecondContract = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
139
- var _this$assertLocalPerm2;
140
154
  return _regenerator["default"].wrap(function _callee5$(_context5) {
141
155
  while (1) {
142
156
  switch (_context5.prev = _context5.next) {
@@ -145,7 +159,15 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
145
159
  return this.createPermissionContract(this.contractName2);
146
160
  case 2:
147
161
  _context5.next = 4;
148
- return this.assertLocalPermissionsEqual((_this$assertLocalPerm2 = {}, (0, _defineProperty2["default"])(_this$assertLocalPerm2, this.contractName1, ['can-high-five']), (0, _defineProperty2["default"])(_this$assertLocalPerm2, this.contractName2, ['can-high-five']), _this$assertLocalPerm2));
162
+ return this.assertLocalPermissionsEqual([{
163
+ id: this.fqid2,
164
+ permissions: ['can-high-five'],
165
+ path: this.resolvePath("src/permissions/".concat(this.contractName2, ".permissions.ts"))
166
+ }, {
167
+ id: this.fqid1,
168
+ permissions: ['can-high-five'],
169
+ path: this.resolvePath("src/permissions/".concat(this.contractName1, ".permissions.ts"))
170
+ }]);
149
171
  case 4:
150
172
  case "end":
151
173
  return _context5.stop();
@@ -162,7 +184,6 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
162
184
  key: "mixesInAllPermissions",
163
185
  value: function () {
164
186
  var _mixesInAllPermissions = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
165
- var _this$assertLocalPerm3;
166
187
  var contractId, perm1Id, perm2Id;
167
188
  return _regenerator["default"].wrap(function _callee6$(_context6) {
168
189
  while (1) {
@@ -173,7 +194,15 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
173
194
  perm2Id = 'go-dogs';
174
195
  this.updateFirstContractBuilder(contractId, perm1Id, perm2Id);
175
196
  _context6.next = 6;
176
- return this.assertLocalPermissionsEqual((_this$assertLocalPerm3 = {}, (0, _defineProperty2["default"])(_this$assertLocalPerm3, contractId, [perm1Id, perm2Id]), (0, _defineProperty2["default"])(_this$assertLocalPerm3, this.contractName2, ['can-high-five']), _this$assertLocalPerm3));
197
+ return this.assertLocalPermissionsEqual([{
198
+ id: this.fqid2,
199
+ permissions: ['can-high-five'],
200
+ path: this.resolvePath("src/permissions/".concat(this.contractName2, ".permissions.ts"))
201
+ }, {
202
+ id: buildPermissionContractId(contractId, this.namespace),
203
+ permissions: [perm1Id, perm2Id],
204
+ path: this.resolvePath("src/permissions/".concat(this.contractName1, ".permissions.ts"))
205
+ }]);
177
206
  case 6:
178
207
  case "end":
179
208
  return _context6.stop();
@@ -186,54 +215,23 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
186
215
  }
187
216
  return mixesInAllPermissions;
188
217
  }()
189
- }, {
190
- key: "remotePermsEmitsListContracts",
191
- value: function () {
192
- var _remotePermsEmitsListContracts = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
193
- var wasHit;
194
- return _regenerator["default"].wrap(function _callee7$(_context7) {
195
- while (1) {
196
- switch (_context7.prev = _context7.next) {
197
- case 0:
198
- wasHit = false;
199
- _context7.next = 3;
200
- return this.eventFaker.fakeListPermissionContracts(function () {
201
- wasHit = true;
202
- });
203
- case 3:
204
- _context7.next = 5;
205
- return PermissionStoreTest.fetchContracts();
206
- case 5:
207
- _testUtils.assert.isTrue(wasHit);
208
- case 6:
209
- case "end":
210
- return _context7.stop();
211
- }
212
- }
213
- }, _callee7, this);
214
- }));
215
- function remotePermsEmitsListContracts() {
216
- return _remotePermsEmitsListContracts.apply(this, arguments);
217
- }
218
- return remotePermsEmitsListContracts;
219
- }()
220
218
  }, {
221
219
  key: "passesThroughDependentSkills",
222
220
  value: function () {
223
- var _passesThroughDependentSkills = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8() {
221
+ var _passesThroughDependentSkills = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
224
222
  var namespace, passedTarget;
225
- return _regenerator["default"].wrap(function _callee8$(_context8) {
223
+ return _regenerator["default"].wrap(function _callee7$(_context7) {
226
224
  while (1) {
227
- switch (_context8.prev = _context8.next) {
225
+ switch (_context7.prev = _context7.next) {
228
226
  case 0:
229
227
  namespace = this.addRandomDependency();
230
- _context8.next = 3;
228
+ _context7.next = 3;
231
229
  return this.eventFaker.fakeListPermissionContracts(function (_ref) {
232
230
  var target = _ref.target;
233
231
  passedTarget = target;
234
232
  });
235
233
  case 3:
236
- _context8.next = 5;
234
+ _context7.next = 5;
237
235
  return this.fetchContracts();
238
236
  case 5:
239
237
  _testUtils.assert.isEqualDeep(passedTarget, {
@@ -241,10 +239,10 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
241
239
  });
242
240
  case 6:
243
241
  case "end":
244
- return _context8.stop();
242
+ return _context7.stop();
245
243
  }
246
244
  }
247
- }, _callee8, this);
245
+ }, _callee7, this);
248
246
  }));
249
247
  function passesThroughDependentSkills() {
250
248
  return _passesThroughDependentSkills.apply(this, arguments);
@@ -254,40 +252,73 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
254
252
  }, {
255
253
  key: "returnsDependencyMapFromRemoteContracts",
256
254
  value: function () {
257
- var _returnsDependencyMapFromRemoteContracts = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9() {
255
+ var _returnsDependencyMapFromRemoteContracts = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8() {
258
256
  var _assert$isEqualDeep;
259
257
  var perm, perm2, perm3, _this$generateContrac, contract, contractId, _this$generateContrac2, contract2, contractId2, map;
260
- return _regenerator["default"].wrap(function _callee9$(_context9) {
258
+ return _regenerator["default"].wrap(function _callee8$(_context8) {
261
259
  while (1) {
262
- switch (_context9.prev = _context9.next) {
260
+ switch (_context8.prev = _context8.next) {
263
261
  case 0:
264
262
  perm = this.generatePermValues();
265
263
  perm2 = this.generatePermValues();
266
264
  perm3 = this.generatePermValues();
267
265
  _this$generateContrac = this.generateContractRowValues([perm, perm2]), contract = _this$generateContrac.contract, contractId = _this$generateContrac.contractId;
268
266
  _this$generateContrac2 = this.generateContractRowValues([perm3]), contract2 = _this$generateContrac2.contract, contractId2 = _this$generateContrac2.contractId;
269
- _context9.next = 7;
267
+ _context8.next = 7;
270
268
  return this.eventFaker.fakeListPermissionContracts(function () {
271
269
  return [contract, contract2];
272
270
  });
273
271
  case 7:
274
- _context9.next = 9;
272
+ _context8.next = 9;
275
273
  return this.fetchContracts();
276
274
  case 9:
277
- map = _context9.sent;
278
- _testUtils.assert.isEqualDeep(map, (_assert$isEqualDeep = {}, (0, _defineProperty2["default"])(_assert$isEqualDeep, contractId, [perm.id, perm2.id]), (0, _defineProperty2["default"])(_assert$isEqualDeep, contractId2, [perm3.id]), (0, _defineProperty2["default"])(_assert$isEqualDeep, this.contractName2, ['can-high-five']), (0, _defineProperty2["default"])(_assert$isEqualDeep, 'oeu-aoeuao', ['what-the', 'go-dogs']), _assert$isEqualDeep));
275
+ map = _context8.sent;
276
+ _testUtils.assert.isEqualDeep(map, (_assert$isEqualDeep = {}, (0, _defineProperty2["default"])(_assert$isEqualDeep, contractId, [perm.id, perm2.id]), (0, _defineProperty2["default"])(_assert$isEqualDeep, contractId2, [perm3.id]), (0, _defineProperty2["default"])(_assert$isEqualDeep, this.fqid2, ['can-high-five']), (0, _defineProperty2["default"])(_assert$isEqualDeep, buildPermissionContractId('oeu-aoeuao', this.namespace), ['what-the', 'go-dogs']), _assert$isEqualDeep));
279
277
  case 11:
280
278
  case "end":
281
- return _context9.stop();
279
+ return _context8.stop();
282
280
  }
283
281
  }
284
- }, _callee9, this);
282
+ }, _callee8, this);
285
283
  }));
286
284
  function returnsDependencyMapFromRemoteContracts() {
287
285
  return _returnsDependencyMapFromRemoteContracts.apply(this, arguments);
288
286
  }
289
287
  return returnsDependencyMapFromRemoteContracts;
290
288
  }()
289
+ }, {
290
+ key: "connectsAsSkill",
291
+ value: function () {
292
+ var _connectsAsSkill = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9() {
293
+ var passedOptions, old;
294
+ return _regenerator["default"].wrap(function _callee9$(_context9) {
295
+ while (1) {
296
+ switch (_context9.prev = _context9.next) {
297
+ case 0:
298
+ //@ts-ignore
299
+ old = this.permissions.connectToApi.bind(this.permissions); //@ts-ignore
300
+ this.permissions.connectToApi = function (options) {
301
+ passedOptions = options;
302
+ return old(passedOptions);
303
+ };
304
+ _context9.next = 4;
305
+ return this.fetchContracts();
306
+ case 4:
307
+ _testUtils.assert.isEqualDeep(passedOptions, {
308
+ shouldAuthAsCurrentSkill: true
309
+ });
310
+ case 5:
311
+ case "end":
312
+ return _context9.stop();
313
+ }
314
+ }
315
+ }, _callee9, this);
316
+ }));
317
+ function connectsAsSkill() {
318
+ return _connectsAsSkill.apply(this, arguments);
319
+ }
320
+ return connectsAsSkill;
321
+ }()
291
322
  }, {
292
323
  key: "updateFirstContractBuilder",
293
324
  value: function updateFirstContractBuilder(contractId, perm1Id, perm2Id) {
@@ -367,8 +398,10 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
367
398
  return this.loadLocalPermissions();
368
399
  case 2:
369
400
  perms = _context11.sent;
401
+ perms.sort(_sortPermissionContracts.sortPermissionContracts);
402
+ expected.sort(_sortPermissionContracts.sortPermissionContracts);
370
403
  _testUtils.assert.isEqualDeep(perms, expected);
371
- case 4:
404
+ case 6:
372
405
  case "end":
373
406
  return _context11.stop();
374
407
  }
@@ -406,10 +439,10 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
406
439
  }()
407
440
  }]);
408
441
  return PermissionStoreTest;
409
- }(_AbstractPermissionsTest["default"]), (0, _defineProperty2["default"])(_class2, "skillCacheKey", 'permissions'), (0, _defineProperty2["default"])(_class2, "permissions", void 0), (0, _defineProperty2["default"])(_class2, "contractName1", void 0), (0, _defineProperty2["default"])(_class2, "contractName2", void 0), (0, _defineProperty2["default"])(_class2, "eventFaker", void 0), _class2), ((0, _applyDecoratedDescriptor2["default"])(_class, "loadsNoLocalByDefault", [_dec], Object.getOwnPropertyDescriptor(_class, "loadsNoLocalByDefault"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "loadsOneContract", [_dec2], Object.getOwnPropertyDescriptor(_class, "loadsOneContract"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "loadsSecondContract", [_dec3], Object.getOwnPropertyDescriptor(_class, "loadsSecondContract"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "mixesInAllPermissions", [_dec4], Object.getOwnPropertyDescriptor(_class, "mixesInAllPermissions"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "remotePermsEmitsListContracts", [_dec5], Object.getOwnPropertyDescriptor(_class, "remotePermsEmitsListContracts"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "passesThroughDependentSkills", [_dec6], Object.getOwnPropertyDescriptor(_class, "passesThroughDependentSkills"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "returnsDependencyMapFromRemoteContracts", [_dec7], Object.getOwnPropertyDescriptor(_class, "returnsDependencyMapFromRemoteContracts"), _class)), _class));
442
+ }(_AbstractPermissionsTest["default"]), (0, _defineProperty2["default"])(_class2, "permissions", void 0), (0, _defineProperty2["default"])(_class2, "contractName1", void 0), (0, _defineProperty2["default"])(_class2, "contractName2", void 0), (0, _defineProperty2["default"])(_class2, "fqid1", void 0), (0, _defineProperty2["default"])(_class2, "fqid2", void 0), (0, _defineProperty2["default"])(_class2, "namespace", void 0), _class2), ((0, _applyDecoratedDescriptor2["default"])(_class, "loadsNoLocalByDefault", [_dec], Object.getOwnPropertyDescriptor(_class, "loadsNoLocalByDefault"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "loadsOneContract", [_dec2], Object.getOwnPropertyDescriptor(_class, "loadsOneContract"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "loadsSecondContract", [_dec3], Object.getOwnPropertyDescriptor(_class, "loadsSecondContract"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "mixesInAllPermissions", [_dec4], Object.getOwnPropertyDescriptor(_class, "mixesInAllPermissions"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "passesThroughDependentSkills", [_dec5], Object.getOwnPropertyDescriptor(_class, "passesThroughDependentSkills"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "returnsDependencyMapFromRemoteContracts", [_dec6], Object.getOwnPropertyDescriptor(_class, "returnsDependencyMapFromRemoteContracts"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "connectsAsSkill", [_dec7], Object.getOwnPropertyDescriptor(_class, "connectsAsSkill"), _class)), _class));
410
443
  exports["default"] = PermissionStoreTest;
411
- function generateShortAlphaId() {
412
- return (0, _testUtils.generateId)().replace(/[0-9]/g, '').substring(0, 5);
444
+ function buildPermissionContractId(contractId, namespace) {
445
+ return "".concat(namespace, ".").concat(contractId);
413
446
  }
414
447
  function generateContractBuilder() {
415
448
  var contractId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'oeu-aoeuao';
@@ -1 +1 @@
1
- {"version":3,"file":"PermissionStore.test.js","names":["PermissionStoreTest","test","contractName1","generateShortAlphaId","contractName2","MercuryClientFactory","setIsTestMode","permissions","Store","eventFaker","EventFaker","loadLocalPermissions","assert","isEqualDeep","createPermissionContract","assertLocalPermissionsEqual","contractId","perm1Id","perm2Id","updateFirstContractBuilder","wasHit","fakeListPermissionContracts","fetchContracts","isTrue","namespace","addRandomDependency","target","passedTarget","namespaces","perm","generatePermValues","perm2","perm3","generateContractRowValues","contract","contract2","contractId2","map","id","file","resolvePath","diskUtil","writeFile","generateContractBuilder","generateId","name","permissionId","defaults","dep","Service","add","expected","perms","AbstractPermissionsTest","replace","substring"],"sources":["../../../../src/__tests__/behavioral/permissions/PermissionStore.test.ts"],"sourcesContent":["import { MercuryClientFactory } from '@sprucelabs/mercury-client'\nimport { PermissionContractMap, SpruceSchemas } from '@sprucelabs/mercury-types'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert, generateId } from '@sprucelabs/test-utils'\nimport PermissionStore from '../../../features/permission/stores/PermissionStore'\nimport EventFaker, {\n\tListPermContractsTargetAndPayload,\n} from '../../support/EventFaker'\nimport AbstractPermissionsTest from './AbstractPermissionsTest'\n\nexport default class PermissionStoreTest extends AbstractPermissionsTest {\n\tprotected static skillCacheKey = 'permissions'\n\tprivate static permissions: PermissionStore\n\tprivate static contractName1: string\n\tprivate static contractName2: string\n\tprivate static eventFaker: EventFaker\n\n\tprotected static async beforeAll() {\n\t\tawait super.beforeAll()\n\t\tthis.contractName1 = generateShortAlphaId()\n\t\tthis.contractName2 = generateShortAlphaId()\n\t}\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tMercuryClientFactory.setIsTestMode(true)\n\t\tthis.permissions = this.Store('permission')\n\t\tthis.eventFaker = new EventFaker()\n\t}\n\n\t@test()\n\tprotected static async loadsNoLocalByDefault() {\n\t\tconst permissions = await this.loadLocalPermissions()\n\t\tassert.isEqualDeep(permissions, {})\n\t}\n\n\t@test()\n\tprotected static async loadsOneContract() {\n\t\tawait this.createPermissionContract(this.contractName1)\n\t\tawait this.assertLocalPermissionsEqual({\n\t\t\t[this.contractName1]: ['can-high-five'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async loadsSecondContract() {\n\t\tawait this.createPermissionContract(this.contractName2)\n\t\tawait this.assertLocalPermissionsEqual({\n\t\t\t[this.contractName1]: ['can-high-five'],\n\t\t\t[this.contractName2]: ['can-high-five'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async mixesInAllPermissions() {\n\t\tconst contractId = 'oeu-aoeuao'\n\t\tconst perm1Id = 'what-the'\n\t\tconst perm2Id = 'go-dogs'\n\n\t\tthis.updateFirstContractBuilder(contractId, perm1Id, perm2Id)\n\n\t\tawait this.assertLocalPermissionsEqual({\n\t\t\t[contractId]: [perm1Id, perm2Id],\n\t\t\t[this.contractName2]: ['can-high-five'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async remotePermsEmitsListContracts() {\n\t\tlet wasHit = false\n\n\t\tawait this.eventFaker.fakeListPermissionContracts(() => {\n\t\t\twasHit = true\n\t\t})\n\n\t\tawait PermissionStoreTest.fetchContracts()\n\t\tassert.isTrue(wasHit)\n\t}\n\n\t@test()\n\tprotected static async passesThroughDependentSkills() {\n\t\tconst namespace = this.addRandomDependency()\n\n\t\tlet passedTarget: ListPermContractsTargetAndPayload['target']\n\n\t\tawait this.eventFaker.fakeListPermissionContracts(({ target }) => {\n\t\t\tpassedTarget = target\n\t\t})\n\n\t\tawait this.fetchContracts()\n\n\t\tassert.isEqualDeep(passedTarget, {\n\t\t\tnamespaces: [namespace],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async returnsDependencyMapFromRemoteContracts() {\n\t\tconst perm = this.generatePermValues()\n\t\tconst perm2 = this.generatePermValues()\n\t\tconst perm3 = this.generatePermValues()\n\n\t\tconst { contract, contractId } = this.generateContractRowValues([\n\t\t\tperm,\n\t\t\tperm2,\n\t\t])\n\n\t\tconst { contract: contract2, contractId: contractId2 } =\n\t\t\tthis.generateContractRowValues([perm3])\n\n\t\tawait this.eventFaker.fakeListPermissionContracts(() => {\n\t\t\treturn [contract, contract2]\n\t\t})\n\n\t\tconst map = await this.fetchContracts()\n\t\tassert.isEqualDeep(map, {\n\t\t\t[contractId]: [perm.id, perm2.id],\n\t\t\t[contractId2]: [perm3.id],\n\t\t\t[this.contractName2]: ['can-high-five'],\n\t\t\t'oeu-aoeuao': ['what-the', 'go-dogs'],\n\t\t})\n\t}\n\n\tprivate static updateFirstContractBuilder(\n\t\tcontractId: string,\n\t\tperm1Id: string,\n\t\tperm2Id: string\n\t) {\n\t\tconst file = this.resolvePath(\n\t\t\t'src',\n\t\t\t'permissions',\n\t\t\t`${this.contractName1}.permissions.ts`\n\t\t)\n\t\tdiskUtil.writeFile(\n\t\t\tfile,\n\t\t\tgenerateContractBuilder(contractId, perm1Id, perm2Id)\n\t\t)\n\t}\n\n\tprivate static generateContractRowValues(\n\t\tpermissions: SpruceSchemas.Mercury.v2020_12_25.Permission[]\n\t) {\n\t\tconst contractId = generateId()\n\t\tconst contract = {\n\t\t\tid: generateId(),\n\t\t\tcontract: {\n\t\t\t\tid: contractId,\n\t\t\t\tname: generateId(),\n\t\t\t\tpermissions,\n\t\t\t},\n\t\t}\n\t\treturn { contract, contractId }\n\t}\n\n\tprivate static generatePermValues() {\n\t\tconst permissionId = generateId()\n\t\tconst perm = {\n\t\t\tid: permissionId,\n\t\t\tname: generateId(),\n\t\t\tdefaults: {},\n\t\t}\n\t\treturn perm\n\t}\n\n\tprivate static addRandomDependency() {\n\t\tconst dep = this.Service('dependency')\n\t\tconst namespace = generateId()\n\t\tdep.add({\n\t\t\tid: generateId(),\n\t\t\tnamespace,\n\t\t})\n\t\treturn namespace\n\t}\n\n\tprivate static async fetchContracts() {\n\t\treturn this.permissions.fetchContracts()\n\t}\n\n\tprivate static async assertLocalPermissionsEqual(\n\t\texpected: PermissionContractMap\n\t) {\n\t\tconst perms = await this.loadLocalPermissions()\n\t\tassert.isEqualDeep(perms, expected)\n\t}\n\n\tprivate static async loadLocalPermissions() {\n\t\t//@ts-ignore\n\t\treturn await this.permissions.loadLocalPermissions()\n\t}\n}\nfunction generateShortAlphaId() {\n\treturn generateId().replace(/[0-9]/g, '').substring(0, 5)\n}\n\nfunction generateContractBuilder(\n\tcontractId = 'oeu-aoeuao',\n\tperm1Id = 'what-the',\n\tperm2Id = 'go-dogs'\n) {\n\treturn `import {\n buildPermissionContract\n} from '@sprucelabs/mercury-types'\n\nconst debeePermissions = buildPermissionContract({\n id: '${contractId}',\n name: 'debee',\n description: '',\n requireAllPermissions: false,\n permissions: [\n {\n id: '${perm1Id}',\n name: 'Can give high five',\n description: 'Will this person be allowed to high five?',\n defaults: {\n skill: false,\n },\n requireAllStatuses: false,\n },\n {\n id: '${perm2Id}',\n name: 'Can give high five',\n description: 'Will this person be allowed to high five?',\n defaults: {\n skill: false,\n },\n requireAllStatuses: false,\n }\n ]\n})\n\nexport default debeePermissions\n`\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"PermissionStore.test.js","names":["PermissionStoreTest","test","Service","getSkillNamespace","namespace","contractName1","generateShortAlphaId","fqid1","contractName2","contractId","fqid2","buildPermissionContractId","MercuryClientFactory","setIsTestMode","permissions","Store","eventFaker","fakeListPermissionContracts","loadLocalPermissions","assert","isEqualDeep","createPermissionContract","assertLocalPermissionsEqual","id","path","resolvePath","perm1Id","perm2Id","updateFirstContractBuilder","addRandomDependency","target","passedTarget","fetchContracts","namespaces","perm","generatePermValues","perm2","perm3","generateContractRowValues","contract","contract2","contractId2","map","old","connectToApi","bind","options","passedOptions","shouldAuthAsCurrentSkill","file","diskUtil","writeFile","generateContractBuilder","generateId","name","permissionId","defaults","dep","add","expected","perms","sort","sortPermissionContracts","AbstractPermissionsTest"],"sources":["../../../../src/__tests__/behavioral/permissions/PermissionStore.test.ts"],"sourcesContent":["import { MercuryClientFactory } from '@sprucelabs/mercury-client'\nimport { SpruceSchemas } from '@sprucelabs/mercury-types'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert, generateId } from '@sprucelabs/test-utils'\nimport PermissionStore, {\n\tImportedPermission,\n} from '../../../features/permission/stores/PermissionStore'\nimport { ApiClientFactoryOptions } from '../../../types/apiClient.types'\nimport { ListPermContractsTargetAndPayload } from '../../support/EventFaker'\nimport AbstractPermissionsTest from './support/AbstractPermissionsTest'\nimport generateShortAlphaId from './support/generateShortAlphaId'\nimport { sortPermissionContracts } from './support/sortPermissionContracts'\n\nexport default class PermissionStoreTest extends AbstractPermissionsTest {\n\tprivate static permissions: PermissionStore\n\tprivate static contractName1: string\n\tprivate static contractName2: string\n\tprivate static fqid1: string\n\tprivate static fqid2: string\n\tprivate static namespace: string\n\n\tprotected static async beforeAll() {\n\t\tawait super.beforeAll()\n\t\tconst namespace = await this.Service('pkg').getSkillNamespace()\n\t\tthis.namespace = namespace\n\n\t\tthis.contractName1 = generateShortAlphaId()\n\t\tthis.fqid1 = `${namespace}.${this.contractName1}`\n\n\t\tthis.contractName2 = generateShortAlphaId()\n\t\tconst contractId = this.contractName2\n\t\tthis.fqid2 = buildPermissionContractId(contractId, namespace)\n\t}\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tMercuryClientFactory.setIsTestMode(true)\n\t\tthis.permissions = this.Store('permission')\n\t\tawait this.eventFaker.fakeListPermissionContracts(() => {})\n\t}\n\n\t@test()\n\tprotected static async loadsNoLocalByDefault() {\n\t\tconst permissions = await this.loadLocalPermissions()\n\t\tassert.isEqualDeep(permissions, [])\n\t}\n\n\t@test()\n\tprotected static async loadsOneContract() {\n\t\tawait this.createPermissionContract(this.contractName1)\n\t\tawait this.assertLocalPermissionsEqual([\n\t\t\t{\n\t\t\t\tid: this.fqid1,\n\t\t\t\tpermissions: ['can-high-five'],\n\t\t\t\tpath: this.resolvePath(\n\t\t\t\t\t`src/permissions/${this.contractName1}.permissions.ts`\n\t\t\t\t),\n\t\t\t},\n\t\t])\n\t}\n\n\t@test()\n\tprotected static async loadsSecondContract() {\n\t\tawait this.createPermissionContract(this.contractName2)\n\n\t\tawait this.assertLocalPermissionsEqual([\n\t\t\t{\n\t\t\t\tid: this.fqid2,\n\t\t\t\tpermissions: ['can-high-five'],\n\t\t\t\tpath: this.resolvePath(\n\t\t\t\t\t`src/permissions/${this.contractName2}.permissions.ts`\n\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: this.fqid1,\n\t\t\t\tpermissions: ['can-high-five'],\n\t\t\t\tpath: this.resolvePath(\n\t\t\t\t\t`src/permissions/${this.contractName1}.permissions.ts`\n\t\t\t\t),\n\t\t\t},\n\t\t])\n\t}\n\n\t@test()\n\tprotected static async mixesInAllPermissions() {\n\t\tconst contractId = 'oeu-aoeuao'\n\t\tconst perm1Id = 'what-the'\n\t\tconst perm2Id = 'go-dogs'\n\n\t\tthis.updateFirstContractBuilder(contractId, perm1Id, perm2Id)\n\n\t\tawait this.assertLocalPermissionsEqual([\n\t\t\t{\n\t\t\t\tid: this.fqid2,\n\t\t\t\tpermissions: ['can-high-five'],\n\t\t\t\tpath: this.resolvePath(\n\t\t\t\t\t`src/permissions/${this.contractName2}.permissions.ts`\n\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: buildPermissionContractId(contractId, this.namespace),\n\t\t\t\tpermissions: [perm1Id, perm2Id],\n\t\t\t\tpath: this.resolvePath(\n\t\t\t\t\t`src/permissions/${this.contractName1}.permissions.ts`\n\t\t\t\t),\n\t\t\t},\n\t\t])\n\t}\n\n\t@test()\n\tprotected static async passesThroughDependentSkills() {\n\t\tconst namespace = this.addRandomDependency()\n\n\t\tlet passedTarget: ListPermContractsTargetAndPayload['target']\n\n\t\tawait this.eventFaker.fakeListPermissionContracts(({ target }) => {\n\t\t\tpassedTarget = target\n\t\t})\n\n\t\tawait this.fetchContracts()\n\n\t\tassert.isEqualDeep(passedTarget, {\n\t\t\tnamespaces: [namespace],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async returnsDependencyMapFromRemoteContracts() {\n\t\tconst perm = this.generatePermValues()\n\t\tconst perm2 = this.generatePermValues()\n\t\tconst perm3 = this.generatePermValues()\n\n\t\tconst { contract, contractId } = this.generateContractRowValues([\n\t\t\tperm,\n\t\t\tperm2,\n\t\t])\n\n\t\tconst { contract: contract2, contractId: contractId2 } =\n\t\t\tthis.generateContractRowValues([perm3])\n\n\t\tawait this.eventFaker.fakeListPermissionContracts(() => {\n\t\t\treturn [contract, contract2]\n\t\t})\n\n\t\tconst map = await this.fetchContracts()\n\t\tassert.isEqualDeep(map, {\n\t\t\t[contractId]: [perm.id, perm2.id],\n\t\t\t[contractId2]: [perm3.id],\n\t\t\t[this.fqid2]: ['can-high-five'],\n\t\t\t[buildPermissionContractId('oeu-aoeuao', this.namespace)]: [\n\t\t\t\t'what-the',\n\t\t\t\t'go-dogs',\n\t\t\t],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async connectsAsSkill() {\n\t\tlet passedOptions: ApiClientFactoryOptions | undefined\n\n\t\t//@ts-ignore\n\t\tconst old = this.permissions.connectToApi.bind(this.permissions)\n\t\t//@ts-ignore\n\t\tthis.permissions.connectToApi = (options) => {\n\t\t\tpassedOptions = options\n\t\t\treturn old(passedOptions)\n\t\t}\n\n\t\tawait this.fetchContracts()\n\t\tassert.isEqualDeep(passedOptions, { shouldAuthAsCurrentSkill: true })\n\t}\n\n\tprivate static updateFirstContractBuilder(\n\t\tcontractId: string,\n\t\tperm1Id: string,\n\t\tperm2Id: string\n\t) {\n\t\tconst file = this.resolvePath(\n\t\t\t'src',\n\t\t\t'permissions',\n\t\t\t`${this.contractName1}.permissions.ts`\n\t\t)\n\t\tdiskUtil.writeFile(\n\t\t\tfile,\n\t\t\tgenerateContractBuilder(contractId, perm1Id, perm2Id)\n\t\t)\n\t}\n\n\tprivate static generateContractRowValues(\n\t\tpermissions: SpruceSchemas.Mercury.v2020_12_25.Permission[]\n\t) {\n\t\tconst contractId = generateId()\n\t\tconst contract = {\n\t\t\tid: generateId(),\n\t\t\tcontract: {\n\t\t\t\tid: contractId,\n\t\t\t\tname: generateId(),\n\t\t\t\tpermissions,\n\t\t\t},\n\t\t}\n\t\treturn { contract, contractId }\n\t}\n\n\tprivate static generatePermValues() {\n\t\tconst permissionId = generateId()\n\t\tconst perm = {\n\t\t\tid: permissionId,\n\t\t\tname: generateId(),\n\t\t\tdefaults: {},\n\t\t}\n\t\treturn perm\n\t}\n\n\tprivate static addRandomDependency() {\n\t\tconst dep = this.Service('dependency')\n\t\tconst namespace = generateId()\n\t\tdep.add({\n\t\t\tid: generateId(),\n\t\t\tnamespace,\n\t\t})\n\t\treturn namespace\n\t}\n\n\tprivate static async fetchContracts() {\n\t\treturn this.permissions.fetchContracts()\n\t}\n\n\tprivate static async assertLocalPermissionsEqual(\n\t\texpected: ImportedPermission[]\n\t) {\n\t\tconst perms = await this.loadLocalPermissions()\n\n\t\tperms.sort(sortPermissionContracts)\n\t\texpected.sort(sortPermissionContracts)\n\n\t\tassert.isEqualDeep(perms, expected)\n\t}\n\n\tprivate static async loadLocalPermissions() {\n\t\t//@ts-ignore\n\t\treturn await this.permissions.loadLocalPermissions()\n\t}\n}\n\nfunction buildPermissionContractId(\n\tcontractId: string,\n\tnamespace?: string\n): string {\n\treturn `${namespace}.${contractId}`\n}\n\nfunction generateContractBuilder(\n\tcontractId = 'oeu-aoeuao',\n\tperm1Id = 'what-the',\n\tperm2Id = 'go-dogs'\n) {\n\treturn `import {\n buildPermissionContract\n} from '@sprucelabs/mercury-types'\n\nconst debeePermissions = buildPermissionContract({\n id: '${contractId}',\n name: 'debee',\n description: '',\n requireAllPermissions: false,\n permissions: [\n {\n id: '${perm1Id}',\n name: 'Can give high five',\n description: 'Will this person be allowed to high five?',\n defaults: {\n skill: false,\n },\n requireAllStatuses: false,\n },\n {\n id: '${perm2Id}',\n name: 'Can give high five',\n description: 'Will this person be allowed to high five?',\n defaults: {\n skill: false,\n },\n requireAllStatuses: false,\n }\n ]\n})\n\nexport default debeePermissions\n`\n}\n"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import AbstractPermissionsTest from './support/AbstractPermissionsTest';
2
+ export default class PermissionWriterTest extends AbstractPermissionsTest {
3
+ protected static writesProperContractId(): Promise<void>;
4
+ private static writeTypesFile;
5
+ }
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
15
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
16
+ var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/helpers/applyDecoratedDescriptor"));
17
+ var _testUtils = require("@sprucelabs/test-utils");
18
+ var _AbstractPermissionsTest = _interopRequireDefault(require("./support/AbstractPermissionsTest"));
19
+ var _dec, _class;
20
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
21
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
22
+ var PermissionWriterTest = (_dec = (0, _testUtils.test)(), (_class = /*#__PURE__*/function (_AbstractPermissionsT) {
23
+ (0, _inherits2["default"])(PermissionWriterTest, _AbstractPermissionsT);
24
+ var _super = _createSuper(PermissionWriterTest);
25
+ function PermissionWriterTest() {
26
+ (0, _classCallCheck2["default"])(this, PermissionWriterTest);
27
+ return _super.apply(this, arguments);
28
+ }
29
+ (0, _createClass2["default"])(PermissionWriterTest, null, [{
30
+ key: "writesProperContractId",
31
+ value: function () {
32
+ var _writesProperContractId = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
33
+ var contractId, perm1, perm2;
34
+ return _regenerator["default"].wrap(function _callee$(_context) {
35
+ while (1) {
36
+ switch (_context.prev = _context.next) {
37
+ case 0:
38
+ contractId = (0, _testUtils.generateId)();
39
+ perm1 = (0, _testUtils.generateId)();
40
+ perm2 = (0, _testUtils.generateId)();
41
+ _context.next = 5;
42
+ return this.writeTypesFile((0, _defineProperty2["default"])({}, contractId, [perm1, perm2]));
43
+ case 5:
44
+ _context.next = 7;
45
+ return this.writeTestFileAndAssertValid(contractId, perm1, perm2);
46
+ case 7:
47
+ case "end":
48
+ return _context.stop();
49
+ }
50
+ }
51
+ }, _callee, this);
52
+ }));
53
+ function writesProperContractId() {
54
+ return _writesProperContractId.apply(this, arguments);
55
+ }
56
+ return writesProperContractId;
57
+ }()
58
+ }, {
59
+ key: "writeTypesFile",
60
+ value: function () {
61
+ var _writeTypesFile = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(map) {
62
+ var writer;
63
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
64
+ while (1) {
65
+ switch (_context2.prev = _context2.next) {
66
+ case 0:
67
+ writer = this.writers.Writer('permission', {
68
+ fileDescriptions: []
69
+ });
70
+ _context2.next = 3;
71
+ return writer.writeTypesFile(this.cwd, map);
72
+ case 3:
73
+ case "end":
74
+ return _context2.stop();
75
+ }
76
+ }
77
+ }, _callee2, this);
78
+ }));
79
+ function writeTypesFile(_x) {
80
+ return _writeTypesFile.apply(this, arguments);
81
+ }
82
+ return writeTypesFile;
83
+ }()
84
+ }]);
85
+ return PermissionWriterTest;
86
+ }(_AbstractPermissionsTest["default"]), ((0, _applyDecoratedDescriptor2["default"])(_class, "writesProperContractId", [_dec], Object.getOwnPropertyDescriptor(_class, "writesProperContractId"), _class)), _class));
87
+ exports["default"] = PermissionWriterTest;
88
+ //# sourceMappingURL=PermissionWriter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PermissionWriter.test.js","names":["PermissionWriterTest","test","contractId","generateId","perm1","perm2","writeTypesFile","writeTestFileAndAssertValid","map","writer","writers","Writer","fileDescriptions","cwd","AbstractPermissionsTest"],"sources":["../../../../src/__tests__/behavioral/permissions/PermissionWriter.test.ts"],"sourcesContent":["import { PermissionContractMap } from '@sprucelabs/mercury-types'\nimport { test, generateId } from '@sprucelabs/test-utils'\nimport AbstractPermissionsTest from './support/AbstractPermissionsTest'\n\nexport default class PermissionWriterTest extends AbstractPermissionsTest {\n\t@test()\n\tprotected static async writesProperContractId() {\n\t\tconst contractId = generateId()\n\t\tconst perm1 = generateId()\n\t\tconst perm2 = generateId()\n\n\t\tawait this.writeTypesFile({\n\t\t\t[contractId]: [perm1, perm2],\n\t\t})\n\n\t\tawait this.writeTestFileAndAssertValid(contractId, perm1, perm2)\n\t}\n\n\tprivate static async writeTypesFile(map: PermissionContractMap) {\n\t\tconst writer = this.writers.Writer('permission', { fileDescriptions: [] })\n\t\tawait writer.writeTypesFile(this.cwd, map)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;AACA;AACA;AAAuE;AAAA;AAAA;AAAA,IAElDA,oBAAoB,WACvC,IAAAC,eAAI,GAAE;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,4GAAP;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEOC,UAAU,GAAG,IAAAC,qBAAU,GAAE;gBACzBC,KAAK,GAAG,IAAAD,qBAAU,GAAE;gBACpBE,KAAK,GAAG,IAAAF,qBAAU,GAAE;gBAAA;gBAAA,OAEpB,IAAI,CAACG,cAAc,sCACvBJ,UAAU,EAAG,CAACE,KAAK,EAAEC,KAAK,CAAC,EAC3B;cAAA;gBAAA;gBAAA,OAEI,IAAI,CAACE,2BAA2B,CAACL,UAAU,EAAEE,KAAK,EAAEC,KAAK,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAChE;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,oGAED,kBAAoCG,GAA0B;QAAA;QAAA;UAAA;YAAA;cAAA;gBACvDC,MAAM,GAAG,IAAI,CAACC,OAAO,CAACC,MAAM,CAAC,YAAY,EAAE;kBAAEC,gBAAgB,EAAE;gBAAG,CAAC,CAAC;gBAAA;gBAAA,OACpEH,MAAM,CAACH,cAAc,CAAC,IAAI,CAACO,GAAG,EAAEL,GAAG,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAC1C;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EAjBgDM,mCAAuB;AAAA"}
@@ -1,7 +1,18 @@
1
- import AbstractSkillTest from '../../../tests/AbstractSkillTest';
2
- export default class SyncingPermissionsTest extends AbstractSkillTest {
3
- protected static skillCacheKey: string;
4
- private static sync;
1
+ import AbstractPermissionsTest from './support/AbstractPermissionsTest';
2
+ export default class SyncingPermissionsTest extends AbstractPermissionsTest {
3
+ private static syncAction;
4
+ private static contractId1;
5
+ private static contractId2;
6
+ protected static beforeAll(): Promise<void>;
5
7
  protected static beforeEach(): Promise<void>;
6
8
  protected static generatesExpectedTypesFile(): Promise<void>;
9
+ protected static syncsNewPermissionsWhenMade(): Promise<void>;
10
+ protected static upgradingSyncsPermissions(): Promise<void>;
11
+ protected static doesNotSyncIfNotInstalled(): Promise<void>;
12
+ protected static generatesCombinedFile(): Promise<void>;
13
+ protected static combinedFileImportsAllPermissions(): Promise<void>;
14
+ private static getCombinedPath;
15
+ private static beginTrackingExecute;
16
+ private static sync;
17
+ private static emitDidExecuteUpgrade;
7
18
  }