@livepreso/api 6.46.0 → 6.47.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 (350) hide show
  1. package/.rush/temp/package-deps_build.json +156 -141
  2. package/.rush/temp/shrinkwrap-deps.json +424 -374
  3. package/CHANGELOG.json +17 -0
  4. package/CHANGELOG.md +8 -1
  5. package/api.build.log +6 -1
  6. package/cjs/api.js +18 -3
  7. package/cjs/api.js.map +1 -1
  8. package/cjs/api.spec.js +4 -0
  9. package/cjs/api.spec.js.map +1 -1
  10. package/cjs/auth.js +29 -2
  11. package/cjs/auth.js.map +1 -1
  12. package/cjs/auth.spec.js +77 -52
  13. package/cjs/auth.spec.js.map +1 -1
  14. package/cjs/caching.js +7 -2
  15. package/cjs/caching.js.map +1 -1
  16. package/cjs/collections/activity.js +56 -16
  17. package/cjs/collections/activity.js.map +1 -1
  18. package/cjs/collections/adjunct-sections.js +10 -1
  19. package/cjs/collections/adjunct-sections.js.map +1 -1
  20. package/cjs/collections/adjunct-slides.js +10 -1
  21. package/cjs/collections/adjunct-slides.js.map +1 -1
  22. package/cjs/collections/adjunct-sub-slides.js +9 -1
  23. package/cjs/collections/adjunct-sub-slides.js.map +1 -1
  24. package/cjs/collections/appointment-adjunct-tags.js +9 -1
  25. package/cjs/collections/appointment-adjunct-tags.js.map +1 -1
  26. package/cjs/collections/appointment-deckversion-tags.js +9 -1
  27. package/cjs/collections/appointment-deckversion-tags.js.map +1 -1
  28. package/cjs/collections/appointment-editors.js +10 -1
  29. package/cjs/collections/appointment-editors.js.map +1 -1
  30. package/cjs/collections/appointment-section-tags.js +9 -1
  31. package/cjs/collections/appointment-section-tags.js.map +1 -1
  32. package/cjs/collections/appointment-slide-tags.js +9 -1
  33. package/cjs/collections/appointment-slide-tags.js.map +1 -1
  34. package/cjs/collections/appointment-tags.js +103 -64
  35. package/cjs/collections/appointment-tags.js.map +1 -1
  36. package/cjs/collections/appointment-templates.js +10 -1
  37. package/cjs/collections/appointment-templates.js.map +1 -1
  38. package/cjs/collections/appointments.js +29 -9
  39. package/cjs/collections/appointments.js.map +1 -1
  40. package/cjs/collections/assets.js +9 -1
  41. package/cjs/collections/assets.js.map +1 -1
  42. package/cjs/collections/auto-adjuncts.js +21 -6
  43. package/cjs/collections/auto-adjuncts.js.map +1 -1
  44. package/cjs/collections/base.js +112 -34
  45. package/cjs/collections/base.js.map +1 -1
  46. package/cjs/collections/base.spec.js +233 -186
  47. package/cjs/collections/base.spec.js.map +1 -1
  48. package/cjs/collections/cms-vals.js +16 -4
  49. package/cjs/collections/cms-vals.js.map +1 -1
  50. package/cjs/collections/contact-phones.js +9 -1
  51. package/cjs/collections/contact-phones.js.map +1 -1
  52. package/cjs/collections/contacts.js +9 -1
  53. package/cjs/collections/contacts.js.map +1 -1
  54. package/cjs/collections/created-assets.js +10 -1
  55. package/cjs/collections/created-assets.js.map +1 -1
  56. package/cjs/collections/customers.js +9 -1
  57. package/cjs/collections/customers.js.map +1 -1
  58. package/cjs/collections/deck-notes.js +10 -1
  59. package/cjs/collections/deck-notes.js.map +1 -1
  60. package/cjs/collections/deck-version-screenshots.js +17 -4
  61. package/cjs/collections/deck-version-screenshots.js.map +1 -1
  62. package/cjs/collections/deck-versions.js +20 -5
  63. package/cjs/collections/deck-versions.js.map +1 -1
  64. package/cjs/collections/decks.js +9 -1
  65. package/cjs/collections/decks.js.map +1 -1
  66. package/cjs/collections/deleted-assets.js +10 -1
  67. package/cjs/collections/deleted-assets.js.map +1 -1
  68. package/cjs/collections/dispatches.js +13 -1
  69. package/cjs/collections/dispatches.js.map +1 -1
  70. package/cjs/collections/event-objects.js +9 -1
  71. package/cjs/collections/event-objects.js.map +1 -1
  72. package/cjs/collections/events.js +9 -1
  73. package/cjs/collections/events.js.map +1 -1
  74. package/cjs/collections/groups.js +9 -1
  75. package/cjs/collections/groups.js.map +1 -1
  76. package/cjs/collections/images.js +9 -1
  77. package/cjs/collections/images.js.map +1 -1
  78. package/cjs/collections/locations.js +9 -1
  79. package/cjs/collections/locations.js.map +1 -1
  80. package/cjs/collections/opportunities.js +9 -1
  81. package/cjs/collections/opportunities.js.map +1 -1
  82. package/cjs/collections/pack-diffs.js +9 -1
  83. package/cjs/collections/pack-diffs.js.map +1 -1
  84. package/cjs/collections/packs.js +9 -1
  85. package/cjs/collections/packs.js.map +1 -1
  86. package/cjs/collections/presets.js +9 -1
  87. package/cjs/collections/presets.js.map +1 -1
  88. package/cjs/collections/section-selections.js +9 -1
  89. package/cjs/collections/section-selections.js.map +1 -1
  90. package/cjs/collections/sections.js +9 -1
  91. package/cjs/collections/sections.js.map +1 -1
  92. package/cjs/collections/signers.js +28 -0
  93. package/cjs/collections/signers.js.map +1 -0
  94. package/cjs/collections/signing-requests.js +28 -0
  95. package/cjs/collections/signing-requests.js.map +1 -0
  96. package/cjs/collections/slide-selections.js +9 -1
  97. package/cjs/collections/slide-selections.js.map +1 -1
  98. package/cjs/collections/slides.js +9 -1
  99. package/cjs/collections/slides.js.map +1 -1
  100. package/cjs/collections/snapshots.js +9 -1
  101. package/cjs/collections/snapshots.js.map +1 -1
  102. package/cjs/collections/sub-slides.js +9 -1
  103. package/cjs/collections/sub-slides.js.map +1 -1
  104. package/cjs/collections/tags.js +9 -1
  105. package/cjs/collections/tags.js.map +1 -1
  106. package/cjs/collections/teams.js +9 -1
  107. package/cjs/collections/teams.js.map +1 -1
  108. package/cjs/collections/templates.js +9 -1
  109. package/cjs/collections/templates.js.map +1 -1
  110. package/cjs/collections/uploads.js +9 -1
  111. package/cjs/collections/uploads.js.map +1 -1
  112. package/cjs/collections/users.js +9 -1
  113. package/cjs/collections/users.js.map +1 -1
  114. package/cjs/collections.js +116 -11
  115. package/cjs/collections.js.map +1 -1
  116. package/cjs/fixtures.js +60 -15
  117. package/cjs/fixtures.js.map +1 -1
  118. package/cjs/index.js +36 -2
  119. package/cjs/index.js.map +1 -1
  120. package/cjs/log.js +1 -0
  121. package/cjs/log.js.map +1 -1
  122. package/cjs/middleware.js +7 -2
  123. package/cjs/middleware.js.map +1 -1
  124. package/cjs/middlewares/auth.js +17 -1
  125. package/cjs/middlewares/auth.js.map +1 -1
  126. package/cjs/middlewares/base.js +9 -3
  127. package/cjs/middlewares/base.js.map +1 -1
  128. package/cjs/middlewares/json.js +19 -1
  129. package/cjs/middlewares/json.js.map +1 -1
  130. package/cjs/middlewares/redirect.js +21 -5
  131. package/cjs/middlewares/redirect.js.map +1 -1
  132. package/cjs/models/activity-item.js +29 -5
  133. package/cjs/models/activity-item.js.map +1 -1
  134. package/cjs/models/adjunct-section.js +19 -1
  135. package/cjs/models/adjunct-section.js.map +1 -1
  136. package/cjs/models/adjunct-slide.js +19 -1
  137. package/cjs/models/adjunct-slide.js.map +1 -1
  138. package/cjs/models/adjunct-sub-slide.js +16 -1
  139. package/cjs/models/adjunct-sub-slide.js.map +1 -1
  140. package/cjs/models/adjunct.js +22 -6
  141. package/cjs/models/adjunct.js.map +1 -1
  142. package/cjs/models/api.js +6 -1
  143. package/cjs/models/api.js.map +1 -1
  144. package/cjs/models/appointment-adjunct-tags.js +13 -1
  145. package/cjs/models/appointment-adjunct-tags.js.map +1 -1
  146. package/cjs/models/appointment-deckversion-tags.js +13 -1
  147. package/cjs/models/appointment-deckversion-tags.js.map +1 -1
  148. package/cjs/models/appointment-editor.js +14 -1
  149. package/cjs/models/appointment-editor.js.map +1 -1
  150. package/cjs/models/appointment-section-tags.js +13 -1
  151. package/cjs/models/appointment-section-tags.js.map +1 -1
  152. package/cjs/models/appointment-slide-tags.js +13 -1
  153. package/cjs/models/appointment-slide-tags.js.map +1 -1
  154. package/cjs/models/appointment-stats.js +11 -1
  155. package/cjs/models/appointment-stats.js.map +1 -1
  156. package/cjs/models/appointment-tags.js +10 -1
  157. package/cjs/models/appointment-tags.js.map +1 -1
  158. package/cjs/models/appointment-template.js +6 -1
  159. package/cjs/models/appointment-template.js.map +1 -1
  160. package/cjs/models/appointment-viewing.js +8 -1
  161. package/cjs/models/appointment-viewing.js.map +1 -1
  162. package/cjs/models/appointment.js +98 -20
  163. package/cjs/models/appointment.js.map +1 -1
  164. package/cjs/models/asset.js +12 -1
  165. package/cjs/models/asset.js.map +1 -1
  166. package/cjs/models/auto-adjunct-key-check.js +15 -1
  167. package/cjs/models/auto-adjunct-key-check.js.map +1 -1
  168. package/cjs/models/auto-adjunct.js +13 -1
  169. package/cjs/models/auto-adjunct.js.map +1 -1
  170. package/cjs/models/base.js +175 -53
  171. package/cjs/models/base.js.map +1 -1
  172. package/cjs/models/base.spec.js +31 -0
  173. package/cjs/models/base.spec.js.map +1 -1
  174. package/cjs/models/choicelist.js +8 -1
  175. package/cjs/models/choicelist.js.map +1 -1
  176. package/cjs/models/cms-val.js +26 -5
  177. package/cjs/models/cms-val.js.map +1 -1
  178. package/cjs/models/cms-val.spec.js +19 -12
  179. package/cjs/models/cms-val.spec.js.map +1 -1
  180. package/cjs/models/contact-phone.js +13 -1
  181. package/cjs/models/contact-phone.js.map +1 -1
  182. package/cjs/models/contact.js +18 -1
  183. package/cjs/models/contact.js.map +1 -1
  184. package/cjs/models/customer.js +30 -3
  185. package/cjs/models/customer.js.map +1 -1
  186. package/cjs/models/deck-note.js +9 -1
  187. package/cjs/models/deck-note.js.map +1 -1
  188. package/cjs/models/deck-tags.js +12 -1
  189. package/cjs/models/deck-tags.js.map +1 -1
  190. package/cjs/models/deck-version-screenshot.js +13 -1
  191. package/cjs/models/deck-version-screenshot.js.map +1 -1
  192. package/cjs/models/deck-version.js +40 -1
  193. package/cjs/models/deck-version.js.map +1 -1
  194. package/cjs/models/deck.js +14 -1
  195. package/cjs/models/deck.js.map +1 -1
  196. package/cjs/models/dispatch-preview.js +13 -1
  197. package/cjs/models/dispatch-preview.js.map +1 -1
  198. package/cjs/models/dispatch.js +23 -1
  199. package/cjs/models/dispatch.js.map +1 -1
  200. package/cjs/models/envs.js +6 -1
  201. package/cjs/models/envs.js.map +1 -1
  202. package/cjs/models/event-object.js +11 -1
  203. package/cjs/models/event-object.js.map +1 -1
  204. package/cjs/models/event.js +13 -1
  205. package/cjs/models/event.js.map +1 -1
  206. package/cjs/models/feed-data.js +13 -1
  207. package/cjs/models/feed-data.js.map +1 -1
  208. package/cjs/models/file.js +11 -1
  209. package/cjs/models/file.js.map +1 -1
  210. package/cjs/models/group.js +11 -1
  211. package/cjs/models/group.js.map +1 -1
  212. package/cjs/models/handover.js +13 -1
  213. package/cjs/models/handover.js.map +1 -1
  214. package/cjs/models/hosted-preso.js +15 -1
  215. package/cjs/models/hosted-preso.js.map +1 -1
  216. package/cjs/models/image.js +16 -1
  217. package/cjs/models/image.js.map +1 -1
  218. package/cjs/models/location.js +13 -1
  219. package/cjs/models/location.js.map +1 -1
  220. package/cjs/models/manifest-json.js +88 -21
  221. package/cjs/models/manifest-json.js.map +1 -1
  222. package/cjs/models/onshare.js +14 -1
  223. package/cjs/models/onshare.js.map +1 -1
  224. package/cjs/models/opportunity.js +14 -1
  225. package/cjs/models/opportunity.js.map +1 -1
  226. package/cjs/models/pack-diff.js +14 -1
  227. package/cjs/models/pack-diff.js.map +1 -1
  228. package/cjs/models/pack.js +12 -1
  229. package/cjs/models/pack.js.map +1 -1
  230. package/cjs/models/preset.js +21 -2
  231. package/cjs/models/preset.js.map +1 -1
  232. package/cjs/models/refresh-request.js +22 -4
  233. package/cjs/models/refresh-request.js.map +1 -1
  234. package/cjs/models/room.js +9 -1
  235. package/cjs/models/room.js.map +1 -1
  236. package/cjs/models/salesforce-lookup.js +12 -1
  237. package/cjs/models/salesforce-lookup.js.map +1 -1
  238. package/cjs/models/section-selection.js +14 -1
  239. package/cjs/models/section-selection.js.map +1 -1
  240. package/cjs/models/section.js +14 -1
  241. package/cjs/models/section.js.map +1 -1
  242. package/cjs/models/signer.js +47 -0
  243. package/cjs/models/signer.js.map +1 -0
  244. package/cjs/models/signing-request.js +66 -0
  245. package/cjs/models/signing-request.js.map +1 -0
  246. package/cjs/models/slide-selection.js +14 -1
  247. package/cjs/models/slide-selection.js.map +1 -1
  248. package/cjs/models/slide.js +14 -1
  249. package/cjs/models/slide.js.map +1 -1
  250. package/cjs/models/snapshot.js +45 -4
  251. package/cjs/models/snapshot.js.map +1 -1
  252. package/cjs/models/snapshot.spec.js +32 -25
  253. package/cjs/models/snapshot.spec.js.map +1 -1
  254. package/cjs/models/sub-slide.js +12 -1
  255. package/cjs/models/sub-slide.js.map +1 -1
  256. package/cjs/models/support-ticket.js +11 -1
  257. package/cjs/models/support-ticket.js.map +1 -1
  258. package/cjs/models/tag.js +13 -1
  259. package/cjs/models/tag.js.map +1 -1
  260. package/cjs/models/team.js +13 -1
  261. package/cjs/models/team.js.map +1 -1
  262. package/cjs/models/template.js +78 -48
  263. package/cjs/models/template.js.map +1 -1
  264. package/cjs/models/tenancy.js +11 -1
  265. package/cjs/models/tenancy.js.map +1 -1
  266. package/cjs/models/timing-log.js +78 -21
  267. package/cjs/models/timing-log.js.map +1 -1
  268. package/cjs/models/timing-log.spec.js +37 -24
  269. package/cjs/models/timing-log.spec.js.map +1 -1
  270. package/cjs/models/token.js +11 -1
  271. package/cjs/models/token.js.map +1 -1
  272. package/cjs/models/transcribe-socket.js +8 -1
  273. package/cjs/models/transcribe-socket.js.map +1 -1
  274. package/cjs/models/upload.js +7 -1
  275. package/cjs/models/upload.js.map +1 -1
  276. package/cjs/models/user.js +26 -3
  277. package/cjs/models/user.js.map +1 -1
  278. package/cjs/models/user.spec.js +30 -20
  279. package/cjs/models/user.spec.js.map +1 -1
  280. package/cjs/models.js +160 -11
  281. package/cjs/models.js.map +1 -1
  282. package/cjs/presentation/appointment-presentation.js +35 -9
  283. package/cjs/presentation/appointment-presentation.js.map +1 -1
  284. package/cjs/presentation/base-presentation-collection.js +7 -1
  285. package/cjs/presentation/base-presentation-collection.js.map +1 -1
  286. package/cjs/presentation/base-presentation-model.js +65 -22
  287. package/cjs/presentation/base-presentation-model.js.map +1 -1
  288. package/cjs/presentation/base-presentation-model.spec.js +27 -6
  289. package/cjs/presentation/base-presentation-model.spec.js.map +1 -1
  290. package/cjs/presentation/presentation-deck.js +82 -41
  291. package/cjs/presentation/presentation-deck.js.map +1 -1
  292. package/cjs/presentation/presentation-deck.spec.js +95 -72
  293. package/cjs/presentation/presentation-deck.spec.js.map +1 -1
  294. package/cjs/presentation/presentation-decks.js +9 -1
  295. package/cjs/presentation/presentation-decks.js.map +1 -1
  296. package/cjs/presentation/presentation-section.js +74 -9
  297. package/cjs/presentation/presentation-section.js.map +1 -1
  298. package/cjs/presentation/presentation-section.spec.js +256 -203
  299. package/cjs/presentation/presentation-section.spec.js.map +1 -1
  300. package/cjs/presentation/presentation-sections.js +9 -1
  301. package/cjs/presentation/presentation-sections.js.map +1 -1
  302. package/cjs/presentation/presentation-slide.js +77 -16
  303. package/cjs/presentation/presentation-slide.js.map +1 -1
  304. package/cjs/presentation/presentation-slide.spec.js +176 -136
  305. package/cjs/presentation/presentation-slide.spec.js.map +1 -1
  306. package/cjs/presentation/presentation-slides.js +9 -1
  307. package/cjs/presentation/presentation-slides.js.map +1 -1
  308. package/cjs/presentation/presentation-subslide.js +23 -3
  309. package/cjs/presentation/presentation-subslide.js.map +1 -1
  310. package/cjs/presentation/presentation-subslide.spec.js +125 -101
  311. package/cjs/presentation/presentation-subslide.spec.js.map +1 -1
  312. package/cjs/presentation/presentation-subslides.js +9 -1
  313. package/cjs/presentation/presentation-subslides.js.map +1 -1
  314. package/cjs/presentation/presentation.js +115 -61
  315. package/cjs/presentation/presentation.js.map +1 -1
  316. package/cjs/presentation.js +20 -0
  317. package/cjs/presentation.js.map +1 -1
  318. package/cjs/selections.js +29 -4
  319. package/cjs/selections.js.map +1 -1
  320. package/cjs/state-register.js +11 -3
  321. package/cjs/state-register.js.map +1 -1
  322. package/cjs/sync.js +76 -32
  323. package/cjs/sync.js.map +1 -1
  324. package/cjs/utils.js +49 -21
  325. package/cjs/utils.js.map +1 -1
  326. package/cjs/utils.spec.js +5 -1
  327. package/cjs/utils.spec.js.map +1 -1
  328. package/package.json +4 -4
  329. package/src/collections/signers.js +18 -0
  330. package/src/collections/signing-requests.js +18 -0
  331. package/src/collections.js +2 -1
  332. package/src/fixtures.js +11 -9
  333. package/src/index.js +2 -3
  334. package/src/models/activity-item.js +8 -0
  335. package/src/models/appointment.js +3 -0
  336. package/src/models/deck-version.js +1 -0
  337. package/src/models/manifest-json.js +9 -0
  338. package/src/models/preset.js +1 -0
  339. package/src/models/refresh-request.js +1 -0
  340. package/src/models/signer.js +37 -0
  341. package/src/models/signing-request.js +56 -0
  342. package/src/models/snapshot.js +19 -0
  343. package/src/models.js +2 -1
  344. package/src/utils.spec.js +4 -4
  345. package/cjs/collections/appointment-duplicates.js +0 -21
  346. package/cjs/collections/appointment-duplicates.js.map +0 -1
  347. package/cjs/models/appointment-duplicate.js +0 -72
  348. package/cjs/models/appointment-duplicate.js.map +0 -1
  349. package/src/collections/appointment-duplicates.js +0 -19
  350. package/src/models/appointment-duplicate.js +0 -73
@@ -1,17 +1,29 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
6
+
5
7
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
8
+
6
9
  var _ampersandRestCollection = _interopRequireDefault(require("ampersand-rest-collection"));
10
+
7
11
  var _base = require("./base.js");
12
+
8
13
  var _base2 = require("../models/base.js");
14
+
9
15
  var _api = require("sp-test/api");
16
+
10
17
  var _bluebird = _interopRequireDefault(require("bluebird"));
18
+
11
19
  var _testdouble = _interopRequireDefault(require("testdouble"));
20
+
12
21
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
22
+
13
23
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
14
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
24
+
25
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
26
+
15
27
  it("should parse an array of urls into models", function () {
16
28
  (0, _api.G)(_base2.BaseModel, "TestModel").extend({
17
29
  modelName: "tests"
@@ -25,97 +37,114 @@ it("should parse an array of urls into models", function () {
25
37
  it("should fetch the individual models in the collection", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
26
38
  var Collection, collection, model1Fetch, model2Fetch;
27
39
  return _regenerator.default.wrap(function _callee$(_context) {
28
- while (1) switch (_context.prev = _context.next) {
29
- case 0:
30
- (0, _api.G)(_base2.BaseModel, "TestModel");
31
- Collection = (0, _api.G)(_base.BaseCollection).extend({
32
- model: "TestModel"
33
- });
34
- collection = new Collection([{
35
- id: 1
36
- }, {
37
- id: 2
38
- }]);
39
- model1Fetch = _testdouble.default.replace(collection.models[0], "fetch");
40
- model2Fetch = _testdouble.default.replace(collection.models[1], "fetch");
41
- _context.next = 7;
42
- return collection.fetchModels();
43
- case 7:
44
- _testdouble.default.verify(model1Fetch({}));
45
- _testdouble.default.verify(model2Fetch({}));
46
- case 9:
47
- case "end":
48
- return _context.stop();
40
+ while (1) {
41
+ switch (_context.prev = _context.next) {
42
+ case 0:
43
+ (0, _api.G)(_base2.BaseModel, "TestModel");
44
+ Collection = (0, _api.G)(_base.BaseCollection).extend({
45
+ model: "TestModel"
46
+ });
47
+ collection = new Collection([{
48
+ id: 1
49
+ }, {
50
+ id: 2
51
+ }]);
52
+ model1Fetch = _testdouble.default.replace(collection.models[0], "fetch");
53
+ model2Fetch = _testdouble.default.replace(collection.models[1], "fetch");
54
+ _context.next = 7;
55
+ return collection.fetchModels();
56
+
57
+ case 7:
58
+ _testdouble.default.verify(model1Fetch({}));
59
+
60
+ _testdouble.default.verify(model2Fetch({}));
61
+
62
+ case 9:
63
+ case "end":
64
+ return _context.stop();
65
+ }
49
66
  }
50
67
  }, _callee);
51
68
  })));
52
69
  it("should convert fetched urls into models", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
53
70
  var Model, Collection, collection, _iterator, _step, model;
71
+
54
72
  return _regenerator.default.wrap(function _callee2$(_context2) {
55
- while (1) switch (_context2.prev = _context2.next) {
56
- case 0:
57
- Model = (0, _api.G)(_base2.BaseModel.extend({
58
- modelName: "test"
59
- }), "TestModel");
60
- Collection = (0, _api.G)(_base.BaseCollection).extend({
61
- model: "TestModel"
62
- });
63
- Collection.respondWith(["/api/test/1/", "/api/test/2/"]);
64
- collection = new Collection();
65
- _context2.next = 6;
66
- return collection.fetch();
67
- case 6:
68
- expect(collection.models).toHaveLength(2);
69
- _iterator = _createForOfIteratorHelper(collection.models);
70
- try {
71
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
72
- model = _step.value;
73
- expect(model).toBeInstanceOf(Model);
73
+ while (1) {
74
+ switch (_context2.prev = _context2.next) {
75
+ case 0:
76
+ Model = (0, _api.G)(_base2.BaseModel.extend({
77
+ modelName: "test"
78
+ }), "TestModel");
79
+ Collection = (0, _api.G)(_base.BaseCollection).extend({
80
+ model: "TestModel"
81
+ });
82
+ Collection.respondWith(["/api/test/1/", "/api/test/2/"]);
83
+ collection = new Collection();
84
+ _context2.next = 6;
85
+ return collection.fetch();
86
+
87
+ case 6:
88
+ expect(collection.models).toHaveLength(2);
89
+ _iterator = _createForOfIteratorHelper(collection.models);
90
+
91
+ try {
92
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
93
+ model = _step.value;
94
+ expect(model).toBeInstanceOf(Model);
95
+ }
96
+ } catch (err) {
97
+ _iterator.e(err);
98
+ } finally {
99
+ _iterator.f();
74
100
  }
75
- } catch (err) {
76
- _iterator.e(err);
77
- } finally {
78
- _iterator.f();
79
- }
80
- case 9:
81
- case "end":
82
- return _context2.stop();
101
+
102
+ case 9:
103
+ case "end":
104
+ return _context2.stop();
105
+ }
83
106
  }
84
107
  }, _callee2);
85
108
  })));
86
109
  it("should convert fetched objects into models", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
87
110
  var Model, Collection, collection, _iterator2, _step2, model;
111
+
88
112
  return _regenerator.default.wrap(function _callee3$(_context3) {
89
- while (1) switch (_context3.prev = _context3.next) {
90
- case 0:
91
- Model = (0, _api.G)(_base2.BaseModel, "TestModel");
92
- Collection = (0, _api.G)(_base.BaseCollection.extend({
93
- model: "TestModel"
94
- }));
95
- Collection.respondWith([{
96
- id: 1
97
- }, {
98
- id: 2
99
- }]);
100
- collection = new Collection();
101
- _context3.next = 6;
102
- return collection.fetch();
103
- case 6:
104
- expect(collection.models).toHaveLength(2);
105
- _iterator2 = _createForOfIteratorHelper(collection.models);
106
- try {
107
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
108
- model = _step2.value;
109
- expect(model).toBeInstanceOf(Model);
113
+ while (1) {
114
+ switch (_context3.prev = _context3.next) {
115
+ case 0:
116
+ Model = (0, _api.G)(_base2.BaseModel, "TestModel");
117
+ Collection = (0, _api.G)(_base.BaseCollection.extend({
118
+ model: "TestModel"
119
+ }));
120
+ Collection.respondWith([{
121
+ id: 1
122
+ }, {
123
+ id: 2
124
+ }]);
125
+ collection = new Collection();
126
+ _context3.next = 6;
127
+ return collection.fetch();
128
+
129
+ case 6:
130
+ expect(collection.models).toHaveLength(2);
131
+ _iterator2 = _createForOfIteratorHelper(collection.models);
132
+
133
+ try {
134
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
135
+ model = _step2.value;
136
+ expect(model).toBeInstanceOf(Model);
137
+ }
138
+ } catch (err) {
139
+ _iterator2.e(err);
140
+ } finally {
141
+ _iterator2.f();
110
142
  }
111
- } catch (err) {
112
- _iterator2.e(err);
113
- } finally {
114
- _iterator2.f();
115
- }
116
- case 9:
117
- case "end":
118
- return _context3.stop();
143
+
144
+ case 9:
145
+ case "end":
146
+ return _context3.stop();
147
+ }
119
148
  }
120
149
  }, _callee3);
121
150
  })));
@@ -196,8 +225,8 @@ it("should be empty on initialize", function () {
196
225
  expect(collection.length).toEqual(0);
197
226
  });
198
227
  it("should be not 'areModelsFetched' if all models are just a url or integer", function () {
199
- var AppointmentCollection = (0, _api.G)("AppointmentCollection");
200
- // A string or an integer should be considered not fetched
228
+ var AppointmentCollection = (0, _api.G)("AppointmentCollection"); // A string or an integer should be considered not fetched
229
+
201
230
  var collection = new AppointmentCollection(["/api/appointments/1/", 2]);
202
231
  expect(collection.areModelsFetched()).toBe(false);
203
232
  });
@@ -213,140 +242,158 @@ it("should be 'areModelsFetched' if models are objects", function () {
213
242
  }]);
214
243
  expect(collection.areModelsFetched()).toBe(true);
215
244
  });
245
+
216
246
  var mockFetchResults = function mockFetchResults(dataFn) {
217
247
  jest.spyOn(_ampersandRestCollection.default.prototype, "fetch").mockImplementation(function (opts) {
218
248
  var fetchResults = dataFn(opts);
219
249
  return _bluebird.default.resolve(fetchResults);
220
250
  });
221
251
  };
252
+
222
253
  describe("fetchAll", function () {
223
254
  it("calls Collection.prototype.fetch", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
224
255
  var Collection, baseCollection;
225
256
  return _regenerator.default.wrap(function _callee4$(_context4) {
226
- while (1) switch (_context4.prev = _context4.next) {
227
- case 0:
228
- mockFetchResults(function () {
229
- return {
230
- results: [{
231
- id: 20
232
- }, {
233
- id: 21
234
- }, {
235
- id: 22
236
- }]
237
- };
238
- });
239
- (0, _api.G)(_base2.BaseModel, "TestModel");
240
- Collection = (0, _api.G)(_base.BaseCollection.extend({
241
- model: "TestModel"
242
- }));
243
- baseCollection = new Collection();
244
- _context4.next = 6;
245
- return baseCollection.fetchAll();
246
- case 6:
247
- expect(baseCollection.length).toEqual(3);
248
- expect(baseCollection.first().id).toEqual(20);
249
- case 8:
250
- case "end":
251
- return _context4.stop();
257
+ while (1) {
258
+ switch (_context4.prev = _context4.next) {
259
+ case 0:
260
+ mockFetchResults(function () {
261
+ return {
262
+ results: [{
263
+ id: 20
264
+ }, {
265
+ id: 21
266
+ }, {
267
+ id: 22
268
+ }]
269
+ };
270
+ });
271
+ (0, _api.G)(_base2.BaseModel, "TestModel");
272
+ Collection = (0, _api.G)(_base.BaseCollection.extend({
273
+ model: "TestModel"
274
+ }));
275
+ baseCollection = new Collection();
276
+ _context4.next = 6;
277
+ return baseCollection.fetchAll();
278
+
279
+ case 6:
280
+ expect(baseCollection.length).toEqual(3);
281
+ expect(baseCollection.first().id).toEqual(20);
282
+
283
+ case 8:
284
+ case "end":
285
+ return _context4.stop();
286
+ }
252
287
  }
253
288
  }, _callee4);
254
289
  })));
255
290
  it("adds results to existing results", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
256
291
  var Collection, baseCollection;
257
292
  return _regenerator.default.wrap(function _callee5$(_context5) {
258
- while (1) switch (_context5.prev = _context5.next) {
259
- case 0:
260
- mockFetchResults(function () {
261
- return {
262
- results: [{
263
- id: 22
264
- }]
265
- };
266
- });
267
- (0, _api.G)(_base2.BaseModel, "TestModel");
268
- Collection = (0, _api.G)(_base.BaseCollection.extend({
269
- model: "TestModel"
270
- }));
271
- baseCollection = new Collection([{
272
- id: 15
273
- }]);
274
- _context5.next = 6;
275
- return baseCollection.fetchAll();
276
- case 6:
277
- expect(baseCollection.length).toEqual(2);
278
- // The models are sorted by ID
279
- expect(baseCollection.first().id).toEqual(15);
280
- expect(baseCollection.last().id).toEqual(22);
281
- case 9:
282
- case "end":
283
- return _context5.stop();
293
+ while (1) {
294
+ switch (_context5.prev = _context5.next) {
295
+ case 0:
296
+ mockFetchResults(function () {
297
+ return {
298
+ results: [{
299
+ id: 22
300
+ }]
301
+ };
302
+ });
303
+ (0, _api.G)(_base2.BaseModel, "TestModel");
304
+ Collection = (0, _api.G)(_base.BaseCollection.extend({
305
+ model: "TestModel"
306
+ }));
307
+ baseCollection = new Collection([{
308
+ id: 15
309
+ }]);
310
+ _context5.next = 6;
311
+ return baseCollection.fetchAll();
312
+
313
+ case 6:
314
+ expect(baseCollection.length).toEqual(2); // The models are sorted by ID
315
+
316
+ expect(baseCollection.first().id).toEqual(15);
317
+ expect(baseCollection.last().id).toEqual(22);
318
+
319
+ case 9:
320
+ case "end":
321
+ return _context5.stop();
322
+ }
284
323
  }
285
324
  }, _callee5);
286
325
  })));
287
326
  it("fetches multiple pages", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
288
327
  var Collection, baseCollection;
289
328
  return _regenerator.default.wrap(function _callee6$(_context6) {
290
- while (1) switch (_context6.prev = _context6.next) {
291
- case 0:
292
- mockFetchResults(function (opts) {
293
- var page = opts.data.page || 1;
294
- var fetchResults = {
295
- total_pages: 5,
296
- page: page,
297
- results: [{
298
- id: page + 10
299
- }]
300
- };
301
- return _bluebird.default.resolve(fetchResults);
302
- });
303
- (0, _api.G)(_base2.BaseModel, "TestModel");
304
- Collection = (0, _api.G)(_base.BaseCollection.extend({
305
- model: "TestModel"
306
- }));
307
- baseCollection = new Collection();
308
- _context6.next = 6;
309
- return baseCollection.fetchAll();
310
- case 6:
311
- expect(baseCollection.length).toEqual(5);
312
- expect(baseCollection.first().id).toEqual(11);
313
- expect(baseCollection.last().id).toEqual(15);
314
- case 9:
315
- case "end":
316
- return _context6.stop();
329
+ while (1) {
330
+ switch (_context6.prev = _context6.next) {
331
+ case 0:
332
+ mockFetchResults(function (opts) {
333
+ var page = opts.data.page || 1;
334
+ var fetchResults = {
335
+ total_pages: 5,
336
+ page: page,
337
+ results: [{
338
+ id: page + 10
339
+ }]
340
+ };
341
+ return _bluebird.default.resolve(fetchResults);
342
+ });
343
+ (0, _api.G)(_base2.BaseModel, "TestModel");
344
+ Collection = (0, _api.G)(_base.BaseCollection.extend({
345
+ model: "TestModel"
346
+ }));
347
+ baseCollection = new Collection();
348
+ _context6.next = 6;
349
+ return baseCollection.fetchAll();
350
+
351
+ case 6:
352
+ expect(baseCollection.length).toEqual(5);
353
+ expect(baseCollection.first().id).toEqual(11);
354
+ expect(baseCollection.last().id).toEqual(15);
355
+
356
+ case 9:
357
+ case "end":
358
+ return _context6.stop();
359
+ }
317
360
  }
318
361
  }, _callee6);
319
362
  })));
320
363
  it("stops fetching pages at the hardcoded limit", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {
321
364
  var Collection, baseCollection;
322
365
  return _regenerator.default.wrap(function _callee7$(_context7) {
323
- while (1) switch (_context7.prev = _context7.next) {
324
- case 0:
325
- mockFetchResults(function (opts) {
326
- var page = opts.data.page || 1;
327
- var fetchResults = {
328
- total_pages: 50,
329
- page: page,
330
- results: [{
331
- id: page + 10
332
- }]
333
- };
334
- return _bluebird.default.resolve(fetchResults);
335
- });
336
- (0, _api.G)(_base2.BaseModel, "TestModel");
337
- Collection = (0, _api.G)(_base.BaseCollection.extend({
338
- model: "TestModel"
339
- }));
340
- baseCollection = new Collection();
341
- _context7.next = 6;
342
- return baseCollection.fetchAll();
343
- case 6:
344
- expect(baseCollection.length).toEqual(20);
345
- expect(baseCollection.first().id).toEqual(11);
346
- expect(baseCollection.last().id).toEqual(30);
347
- case 9:
348
- case "end":
349
- return _context7.stop();
366
+ while (1) {
367
+ switch (_context7.prev = _context7.next) {
368
+ case 0:
369
+ mockFetchResults(function (opts) {
370
+ var page = opts.data.page || 1;
371
+ var fetchResults = {
372
+ total_pages: 50,
373
+ page: page,
374
+ results: [{
375
+ id: page + 10
376
+ }]
377
+ };
378
+ return _bluebird.default.resolve(fetchResults);
379
+ });
380
+ (0, _api.G)(_base2.BaseModel, "TestModel");
381
+ Collection = (0, _api.G)(_base.BaseCollection.extend({
382
+ model: "TestModel"
383
+ }));
384
+ baseCollection = new Collection();
385
+ _context7.next = 6;
386
+ return baseCollection.fetchAll();
387
+
388
+ case 6:
389
+ expect(baseCollection.length).toEqual(20);
390
+ expect(baseCollection.first().id).toEqual(11);
391
+ expect(baseCollection.last().id).toEqual(30);
392
+
393
+ case 9:
394
+ case "end":
395
+ return _context7.stop();
396
+ }
350
397
  }
351
398
  }, _callee7);
352
399
  })));
@@ -1 +1 @@
1
- {"version":3,"file":"base.spec.js","names":["_ampersandRestCollection","_interopRequireDefault","require","_base","_base2","_api","_bluebird","_testdouble","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","G","BaseModel","extend","modelName","Collection","BaseCollection","model","collection","expect","models","toHaveLength","_asyncToGenerator2","default","_regenerator","mark","_callee","model1Fetch","model2Fetch","wrap","_callee$","_context","prev","id","td","replace","fetchModels","verify","stop","_callee2","Model","_iterator","_step","_callee2$","_context2","respondWith","fetch","toBeInstanceOf","_callee3","_iterator2","_step2","_callee3$","_context3","url","toEqual","concat","data","foo","firstCollection","secondCollection","AppointmentCollection","areModelsFetched","toBe","mockFetchResults","dataFn","jest","spyOn","AmpersandCollection","mockImplementation","opts","fetchResults","Promise","resolve","describe","_callee4","baseCollection","_callee4$","_context4","results","fetchAll","first","_callee5","_callee5$","_context5","last","_callee6","_callee6$","_context6","page","total_pages","_callee7","_callee7$","_context7"],"sources":["../../src/collections/base.spec.js"],"sourcesContent":["import AmpersandCollection from \"ampersand-rest-collection\";\nimport { BaseCollection } from \"./base.js\";\nimport { BaseModel } from \"../models/base.js\";\nimport { G } from \"sp-test/api\";\nimport Promise from \"bluebird\";\nimport td from \"testdouble\";\n\nit(\"should parse an array of urls into models\", () => {\n\tG(BaseModel, \"TestModel\").extend({ modelName: \"tests\" });\n\tconst Collection = G(BaseCollection).extend({\n\t\tmodel: \"TestModel\",\n\t});\n\tconst collection = new Collection([\"/api/tests/1/\", \"/api/tests/2/\"]);\n\texpect(collection.models).toHaveLength(2);\n});\n\nit(\"should fetch the individual models in the collection\", async () => {\n\tG(BaseModel, \"TestModel\");\n\tconst Collection = G(BaseCollection).extend({ model: \"TestModel\" });\n\tconst collection = new Collection([{ id: 1 }, { id: 2 }]);\n\n\tconst model1Fetch = td.replace(collection.models[0], \"fetch\");\n\tconst model2Fetch = td.replace(collection.models[1], \"fetch\");\n\n\tawait collection.fetchModels();\n\n\ttd.verify(model1Fetch({}));\n\ttd.verify(model2Fetch({}));\n});\n\nit(\"should convert fetched urls into models\", async () => {\n\tconst Model = G(BaseModel.extend({ modelName: \"test\" }), \"TestModel\");\n\tconst Collection = G(BaseCollection).extend({ model: \"TestModel\" });\n\tCollection.respondWith([\"/api/test/1/\", \"/api/test/2/\"]);\n\tconst collection = new Collection();\n\tawait collection.fetch();\n\texpect(collection.models).toHaveLength(2);\n\tfor (const model of collection.models) {\n\t\texpect(model).toBeInstanceOf(Model);\n\t}\n});\n\nit(\"should convert fetched objects into models\", async () => {\n\tconst Model = G(BaseModel, \"TestModel\");\n\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\tCollection.respondWith([{ id: 1 }, { id: 2 }]);\n\tconst collection = new Collection();\n\tawait collection.fetch();\n\texpect(collection.models).toHaveLength(2);\n\tfor (const model of collection.models) {\n\t\texpect(model).toBeInstanceOf(Model);\n\t}\n});\n\nit(\"should override url if passed to constructor\", () => {\n\tconst url = \"/api/foo/\";\n\tconst Collection = G(BaseCollection);\n\tconst collection = new Collection({ url });\n\texpect(collection.url()).toEqual(`${url}?per_page=1000`);\n});\n\nit(\"should return a api url based off of its name\", () => {\n\tconst Collection = G(BaseCollection.extend({ modelName: \"foos\" }));\n\tconst collection = new Collection();\n\texpect(collection.url()).toEqual(\"/api/foos/?per_page=1000\");\n});\n\nit(\"should not append a slash to a get query\", () => {\n\tconst Collection = G(BaseCollection.extend({ modelName: \"foos\" }));\n\tconst collection = new Collection({ url: \"/api/foos/?per_page=1000\" });\n\texpect(collection.url()).toEqual(\"/api/foos/?per_page=1000\");\n});\n\nit(\"should append a trailing slash to urls if not there\", () => {\n\tconst Collection = G(BaseCollection);\n\tconst collection = new Collection({ url: \"/api/appointments\" });\n\texpect(collection.url()).toEqual(\"/api/appointments/?per_page=1000\");\n});\n\nit(\"should append a trailing slash to urls if not there with query\", () => {\n\tconst Collection = G(BaseCollection);\n\tconst collection = new Collection({ url: \"/api/appointments?per_page=1000\" });\n\texpect(collection.url()).toEqual(\"/api/appointments/?per_page=1000\");\n});\n\nit(\"should query multiple values if using an array\", () => {\n\tconst Collection = G(BaseCollection);\n\tconst collection = new Collection(\n\t\t{\n\t\t\turl: \"/api/appointments/\",\n\t\t},\n\t\t{\n\t\t\tdata: {\n\t\t\t\tfoo: [1, 2, null],\n\t\t\t},\n\t\t},\n\t);\n\texpect(collection.url()).toEqual(\n\t\t\"/api/appointments/?per_page=1000&foo=1&foo=2&foo=\",\n\t);\n});\n\nit(\"should replace model as a string with the registered model\", () => {\n\tconst Model = G(BaseModel, \"TestModel\");\n\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\tconst collection = new Collection();\n\texpect(collection.model).toEqual(Model);\n});\n\nit(\"should allow passing in another collection into a collection\", () => {\n\tG(BaseModel, \"TestModel\");\n\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\tconst firstCollection = new Collection([{ id: 1 }]);\n\tconst secondCollection = new Collection(firstCollection);\n\texpect(secondCollection.models[0].id).toEqual(1);\n});\n\nit(\"should be empty on initialize\", () => {\n\tG(BaseModel, \"TestModel\");\n\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\tconst collection = new Collection();\n\texpect(collection.length).toEqual(0);\n});\n\nit(\"should be not 'areModelsFetched' if all models are just a url or integer\", () => {\n\tconst AppointmentCollection = G(\"AppointmentCollection\");\n\t// A string or an integer should be considered not fetched\n\tconst collection = new AppointmentCollection([\"/api/appointments/1/\", 2]);\n\texpect(collection.areModelsFetched()).toBe(false);\n});\n\nit(\"should be 'areModelsFetched' if models are objects\", () => {\n\tG(BaseModel, \"TestModel\");\n\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\tconst collection = new Collection([{ id: 1 }, { id: 2 }]);\n\texpect(collection.areModelsFetched()).toBe(true);\n});\n\nconst mockFetchResults = (dataFn) => {\n\tjest\n\t\t.spyOn(AmpersandCollection.prototype, \"fetch\")\n\t\t.mockImplementation((opts) => {\n\t\t\tconst fetchResults = dataFn(opts);\n\t\t\treturn Promise.resolve(fetchResults);\n\t\t});\n};\n\ndescribe(\"fetchAll\", () => {\n\tit(\"calls Collection.prototype.fetch\", async () => {\n\t\tmockFetchResults(() => {\n\t\t\treturn {\n\t\t\t\tresults: [{ id: 20 }, { id: 21 }, { id: 22 }],\n\t\t\t};\n\t\t});\n\n\t\tG(BaseModel, \"TestModel\");\n\t\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\t\tconst baseCollection = new Collection();\n\n\t\tawait baseCollection.fetchAll();\n\n\t\texpect(baseCollection.length).toEqual(3);\n\t\texpect(baseCollection.first().id).toEqual(20);\n\t});\n\n\tit(\"adds results to existing results\", async () => {\n\t\tmockFetchResults(() => {\n\t\t\treturn {\n\t\t\t\tresults: [{ id: 22 }],\n\t\t\t};\n\t\t});\n\n\t\tG(BaseModel, \"TestModel\");\n\t\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\t\tconst baseCollection = new Collection([{ id: 15 }]);\n\n\t\tawait baseCollection.fetchAll();\n\n\t\texpect(baseCollection.length).toEqual(2);\n\t\t// The models are sorted by ID\n\t\texpect(baseCollection.first().id).toEqual(15);\n\t\texpect(baseCollection.last().id).toEqual(22);\n\t});\n\n\tit(\"fetches multiple pages\", async () => {\n\t\tmockFetchResults((opts) => {\n\t\t\tconst page = opts.data.page || 1;\n\t\t\tconst fetchResults = {\n\t\t\t\ttotal_pages: 5,\n\t\t\t\tpage,\n\t\t\t\tresults: [{ id: page + 10 }],\n\t\t\t};\n\t\t\treturn Promise.resolve(fetchResults);\n\t\t});\n\n\t\tG(BaseModel, \"TestModel\");\n\t\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\t\tconst baseCollection = new Collection();\n\n\t\tawait baseCollection.fetchAll();\n\n\t\texpect(baseCollection.length).toEqual(5);\n\t\texpect(baseCollection.first().id).toEqual(11);\n\t\texpect(baseCollection.last().id).toEqual(15);\n\t});\n\n\tit(\"stops fetching pages at the hardcoded limit\", async () => {\n\t\tmockFetchResults((opts) => {\n\t\t\tconst page = opts.data.page || 1;\n\t\t\tconst fetchResults = {\n\t\t\t\ttotal_pages: 50,\n\t\t\t\tpage,\n\t\t\t\tresults: [{ id: page + 10 }],\n\t\t\t};\n\t\t\treturn Promise.resolve(fetchResults);\n\t\t});\n\n\t\tG(BaseModel, \"TestModel\");\n\t\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\t\tconst baseCollection = new Collection();\n\n\t\tawait baseCollection.fetchAll();\n\n\t\texpect(baseCollection.length).toEqual(20);\n\t\texpect(baseCollection.first().id).toEqual(11);\n\t\texpect(baseCollection.last().id).toEqual(30);\n\t});\n});\n"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/collections/base.spec.js"],"names":["it","BaseModel","extend","modelName","Collection","BaseCollection","model","collection","expect","models","toHaveLength","id","model1Fetch","td","replace","model2Fetch","fetchModels","verify","Model","respondWith","fetch","toBeInstanceOf","url","toEqual","data","foo","firstCollection","secondCollection","length","AppointmentCollection","areModelsFetched","toBe","mockFetchResults","dataFn","jest","spyOn","AmpersandCollection","prototype","mockImplementation","opts","fetchResults","Promise","resolve","describe","results","baseCollection","fetchAll","first","last","page","total_pages"],"mappings":"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","sourcesContent":["import AmpersandCollection from \"ampersand-rest-collection\";\nimport { BaseCollection } from \"./base.js\";\nimport { BaseModel } from \"../models/base.js\";\nimport { G } from \"sp-test/api\";\nimport Promise from \"bluebird\";\nimport td from \"testdouble\";\n\nit(\"should parse an array of urls into models\", () => {\n\tG(BaseModel, \"TestModel\").extend({ modelName: \"tests\" });\n\tconst Collection = G(BaseCollection).extend({\n\t\tmodel: \"TestModel\",\n\t});\n\tconst collection = new Collection([\"/api/tests/1/\", \"/api/tests/2/\"]);\n\texpect(collection.models).toHaveLength(2);\n});\n\nit(\"should fetch the individual models in the collection\", async () => {\n\tG(BaseModel, \"TestModel\");\n\tconst Collection = G(BaseCollection).extend({ model: \"TestModel\" });\n\tconst collection = new Collection([{ id: 1 }, { id: 2 }]);\n\n\tconst model1Fetch = td.replace(collection.models[0], \"fetch\");\n\tconst model2Fetch = td.replace(collection.models[1], \"fetch\");\n\n\tawait collection.fetchModels();\n\n\ttd.verify(model1Fetch({}));\n\ttd.verify(model2Fetch({}));\n});\n\nit(\"should convert fetched urls into models\", async () => {\n\tconst Model = G(BaseModel.extend({ modelName: \"test\" }), \"TestModel\");\n\tconst Collection = G(BaseCollection).extend({ model: \"TestModel\" });\n\tCollection.respondWith([\"/api/test/1/\", \"/api/test/2/\"]);\n\tconst collection = new Collection();\n\tawait collection.fetch();\n\texpect(collection.models).toHaveLength(2);\n\tfor (const model of collection.models) {\n\t\texpect(model).toBeInstanceOf(Model);\n\t}\n});\n\nit(\"should convert fetched objects into models\", async () => {\n\tconst Model = G(BaseModel, \"TestModel\");\n\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\tCollection.respondWith([{ id: 1 }, { id: 2 }]);\n\tconst collection = new Collection();\n\tawait collection.fetch();\n\texpect(collection.models).toHaveLength(2);\n\tfor (const model of collection.models) {\n\t\texpect(model).toBeInstanceOf(Model);\n\t}\n});\n\nit(\"should override url if passed to constructor\", () => {\n\tconst url = \"/api/foo/\";\n\tconst Collection = G(BaseCollection);\n\tconst collection = new Collection({ url });\n\texpect(collection.url()).toEqual(`${url}?per_page=1000`);\n});\n\nit(\"should return a api url based off of its name\", () => {\n\tconst Collection = G(BaseCollection.extend({ modelName: \"foos\" }));\n\tconst collection = new Collection();\n\texpect(collection.url()).toEqual(\"/api/foos/?per_page=1000\");\n});\n\nit(\"should not append a slash to a get query\", () => {\n\tconst Collection = G(BaseCollection.extend({ modelName: \"foos\" }));\n\tconst collection = new Collection({ url: \"/api/foos/?per_page=1000\" });\n\texpect(collection.url()).toEqual(\"/api/foos/?per_page=1000\");\n});\n\nit(\"should append a trailing slash to urls if not there\", () => {\n\tconst Collection = G(BaseCollection);\n\tconst collection = new Collection({ url: \"/api/appointments\" });\n\texpect(collection.url()).toEqual(\"/api/appointments/?per_page=1000\");\n});\n\nit(\"should append a trailing slash to urls if not there with query\", () => {\n\tconst Collection = G(BaseCollection);\n\tconst collection = new Collection({ url: \"/api/appointments?per_page=1000\" });\n\texpect(collection.url()).toEqual(\"/api/appointments/?per_page=1000\");\n});\n\nit(\"should query multiple values if using an array\", () => {\n\tconst Collection = G(BaseCollection);\n\tconst collection = new Collection(\n\t\t{\n\t\t\turl: \"/api/appointments/\",\n\t\t},\n\t\t{\n\t\t\tdata: {\n\t\t\t\tfoo: [1, 2, null],\n\t\t\t},\n\t\t},\n\t);\n\texpect(collection.url()).toEqual(\n\t\t\"/api/appointments/?per_page=1000&foo=1&foo=2&foo=\",\n\t);\n});\n\nit(\"should replace model as a string with the registered model\", () => {\n\tconst Model = G(BaseModel, \"TestModel\");\n\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\tconst collection = new Collection();\n\texpect(collection.model).toEqual(Model);\n});\n\nit(\"should allow passing in another collection into a collection\", () => {\n\tG(BaseModel, \"TestModel\");\n\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\tconst firstCollection = new Collection([{ id: 1 }]);\n\tconst secondCollection = new Collection(firstCollection);\n\texpect(secondCollection.models[0].id).toEqual(1);\n});\n\nit(\"should be empty on initialize\", () => {\n\tG(BaseModel, \"TestModel\");\n\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\tconst collection = new Collection();\n\texpect(collection.length).toEqual(0);\n});\n\nit(\"should be not 'areModelsFetched' if all models are just a url or integer\", () => {\n\tconst AppointmentCollection = G(\"AppointmentCollection\");\n\t// A string or an integer should be considered not fetched\n\tconst collection = new AppointmentCollection([\"/api/appointments/1/\", 2]);\n\texpect(collection.areModelsFetched()).toBe(false);\n});\n\nit(\"should be 'areModelsFetched' if models are objects\", () => {\n\tG(BaseModel, \"TestModel\");\n\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\tconst collection = new Collection([{ id: 1 }, { id: 2 }]);\n\texpect(collection.areModelsFetched()).toBe(true);\n});\n\nconst mockFetchResults = (dataFn) => {\n\tjest\n\t\t.spyOn(AmpersandCollection.prototype, \"fetch\")\n\t\t.mockImplementation((opts) => {\n\t\t\tconst fetchResults = dataFn(opts);\n\t\t\treturn Promise.resolve(fetchResults);\n\t\t});\n};\n\ndescribe(\"fetchAll\", () => {\n\tit(\"calls Collection.prototype.fetch\", async () => {\n\t\tmockFetchResults(() => {\n\t\t\treturn {\n\t\t\t\tresults: [{ id: 20 }, { id: 21 }, { id: 22 }],\n\t\t\t};\n\t\t});\n\n\t\tG(BaseModel, \"TestModel\");\n\t\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\t\tconst baseCollection = new Collection();\n\n\t\tawait baseCollection.fetchAll();\n\n\t\texpect(baseCollection.length).toEqual(3);\n\t\texpect(baseCollection.first().id).toEqual(20);\n\t});\n\n\tit(\"adds results to existing results\", async () => {\n\t\tmockFetchResults(() => {\n\t\t\treturn {\n\t\t\t\tresults: [{ id: 22 }],\n\t\t\t};\n\t\t});\n\n\t\tG(BaseModel, \"TestModel\");\n\t\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\t\tconst baseCollection = new Collection([{ id: 15 }]);\n\n\t\tawait baseCollection.fetchAll();\n\n\t\texpect(baseCollection.length).toEqual(2);\n\t\t// The models are sorted by ID\n\t\texpect(baseCollection.first().id).toEqual(15);\n\t\texpect(baseCollection.last().id).toEqual(22);\n\t});\n\n\tit(\"fetches multiple pages\", async () => {\n\t\tmockFetchResults((opts) => {\n\t\t\tconst page = opts.data.page || 1;\n\t\t\tconst fetchResults = {\n\t\t\t\ttotal_pages: 5,\n\t\t\t\tpage,\n\t\t\t\tresults: [{ id: page + 10 }],\n\t\t\t};\n\t\t\treturn Promise.resolve(fetchResults);\n\t\t});\n\n\t\tG(BaseModel, \"TestModel\");\n\t\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\t\tconst baseCollection = new Collection();\n\n\t\tawait baseCollection.fetchAll();\n\n\t\texpect(baseCollection.length).toEqual(5);\n\t\texpect(baseCollection.first().id).toEqual(11);\n\t\texpect(baseCollection.last().id).toEqual(15);\n\t});\n\n\tit(\"stops fetching pages at the hardcoded limit\", async () => {\n\t\tmockFetchResults((opts) => {\n\t\t\tconst page = opts.data.page || 1;\n\t\t\tconst fetchResults = {\n\t\t\t\ttotal_pages: 50,\n\t\t\t\tpage,\n\t\t\t\tresults: [{ id: page + 10 }],\n\t\t\t};\n\t\t\treturn Promise.resolve(fetchResults);\n\t\t});\n\n\t\tG(BaseModel, \"TestModel\");\n\t\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\t\tconst baseCollection = new Collection();\n\n\t\tawait baseCollection.fetchAll();\n\n\t\texpect(baseCollection.length).toEqual(20);\n\t\texpect(baseCollection.first().id).toEqual(11);\n\t\texpect(baseCollection.last().id).toEqual(30);\n\t});\n});\n"],"file":"base.spec.js"}