@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.
- package/.rush/temp/package-deps_build.json +156 -141
- package/.rush/temp/shrinkwrap-deps.json +424 -374
- package/CHANGELOG.json +17 -0
- package/CHANGELOG.md +8 -1
- package/api.build.log +6 -1
- package/cjs/api.js +18 -3
- package/cjs/api.js.map +1 -1
- package/cjs/api.spec.js +4 -0
- package/cjs/api.spec.js.map +1 -1
- package/cjs/auth.js +29 -2
- package/cjs/auth.js.map +1 -1
- package/cjs/auth.spec.js +77 -52
- package/cjs/auth.spec.js.map +1 -1
- package/cjs/caching.js +7 -2
- package/cjs/caching.js.map +1 -1
- package/cjs/collections/activity.js +56 -16
- package/cjs/collections/activity.js.map +1 -1
- package/cjs/collections/adjunct-sections.js +10 -1
- package/cjs/collections/adjunct-sections.js.map +1 -1
- package/cjs/collections/adjunct-slides.js +10 -1
- package/cjs/collections/adjunct-slides.js.map +1 -1
- package/cjs/collections/adjunct-sub-slides.js +9 -1
- package/cjs/collections/adjunct-sub-slides.js.map +1 -1
- package/cjs/collections/appointment-adjunct-tags.js +9 -1
- package/cjs/collections/appointment-adjunct-tags.js.map +1 -1
- package/cjs/collections/appointment-deckversion-tags.js +9 -1
- package/cjs/collections/appointment-deckversion-tags.js.map +1 -1
- package/cjs/collections/appointment-editors.js +10 -1
- package/cjs/collections/appointment-editors.js.map +1 -1
- package/cjs/collections/appointment-section-tags.js +9 -1
- package/cjs/collections/appointment-section-tags.js.map +1 -1
- package/cjs/collections/appointment-slide-tags.js +9 -1
- package/cjs/collections/appointment-slide-tags.js.map +1 -1
- package/cjs/collections/appointment-tags.js +103 -64
- package/cjs/collections/appointment-tags.js.map +1 -1
- package/cjs/collections/appointment-templates.js +10 -1
- package/cjs/collections/appointment-templates.js.map +1 -1
- package/cjs/collections/appointments.js +29 -9
- package/cjs/collections/appointments.js.map +1 -1
- package/cjs/collections/assets.js +9 -1
- package/cjs/collections/assets.js.map +1 -1
- package/cjs/collections/auto-adjuncts.js +21 -6
- package/cjs/collections/auto-adjuncts.js.map +1 -1
- package/cjs/collections/base.js +112 -34
- package/cjs/collections/base.js.map +1 -1
- package/cjs/collections/base.spec.js +233 -186
- package/cjs/collections/base.spec.js.map +1 -1
- package/cjs/collections/cms-vals.js +16 -4
- package/cjs/collections/cms-vals.js.map +1 -1
- package/cjs/collections/contact-phones.js +9 -1
- package/cjs/collections/contact-phones.js.map +1 -1
- package/cjs/collections/contacts.js +9 -1
- package/cjs/collections/contacts.js.map +1 -1
- package/cjs/collections/created-assets.js +10 -1
- package/cjs/collections/created-assets.js.map +1 -1
- package/cjs/collections/customers.js +9 -1
- package/cjs/collections/customers.js.map +1 -1
- package/cjs/collections/deck-notes.js +10 -1
- package/cjs/collections/deck-notes.js.map +1 -1
- package/cjs/collections/deck-version-screenshots.js +17 -4
- package/cjs/collections/deck-version-screenshots.js.map +1 -1
- package/cjs/collections/deck-versions.js +20 -5
- package/cjs/collections/deck-versions.js.map +1 -1
- package/cjs/collections/decks.js +9 -1
- package/cjs/collections/decks.js.map +1 -1
- package/cjs/collections/deleted-assets.js +10 -1
- package/cjs/collections/deleted-assets.js.map +1 -1
- package/cjs/collections/dispatches.js +13 -1
- package/cjs/collections/dispatches.js.map +1 -1
- package/cjs/collections/event-objects.js +9 -1
- package/cjs/collections/event-objects.js.map +1 -1
- package/cjs/collections/events.js +9 -1
- package/cjs/collections/events.js.map +1 -1
- package/cjs/collections/groups.js +9 -1
- package/cjs/collections/groups.js.map +1 -1
- package/cjs/collections/images.js +9 -1
- package/cjs/collections/images.js.map +1 -1
- package/cjs/collections/locations.js +9 -1
- package/cjs/collections/locations.js.map +1 -1
- package/cjs/collections/opportunities.js +9 -1
- package/cjs/collections/opportunities.js.map +1 -1
- package/cjs/collections/pack-diffs.js +9 -1
- package/cjs/collections/pack-diffs.js.map +1 -1
- package/cjs/collections/packs.js +9 -1
- package/cjs/collections/packs.js.map +1 -1
- package/cjs/collections/presets.js +9 -1
- package/cjs/collections/presets.js.map +1 -1
- package/cjs/collections/section-selections.js +9 -1
- package/cjs/collections/section-selections.js.map +1 -1
- package/cjs/collections/sections.js +9 -1
- package/cjs/collections/sections.js.map +1 -1
- package/cjs/collections/signers.js +28 -0
- package/cjs/collections/signers.js.map +1 -0
- package/cjs/collections/signing-requests.js +28 -0
- package/cjs/collections/signing-requests.js.map +1 -0
- package/cjs/collections/slide-selections.js +9 -1
- package/cjs/collections/slide-selections.js.map +1 -1
- package/cjs/collections/slides.js +9 -1
- package/cjs/collections/slides.js.map +1 -1
- package/cjs/collections/snapshots.js +9 -1
- package/cjs/collections/snapshots.js.map +1 -1
- package/cjs/collections/sub-slides.js +9 -1
- package/cjs/collections/sub-slides.js.map +1 -1
- package/cjs/collections/tags.js +9 -1
- package/cjs/collections/tags.js.map +1 -1
- package/cjs/collections/teams.js +9 -1
- package/cjs/collections/teams.js.map +1 -1
- package/cjs/collections/templates.js +9 -1
- package/cjs/collections/templates.js.map +1 -1
- package/cjs/collections/uploads.js +9 -1
- package/cjs/collections/uploads.js.map +1 -1
- package/cjs/collections/users.js +9 -1
- package/cjs/collections/users.js.map +1 -1
- package/cjs/collections.js +116 -11
- package/cjs/collections.js.map +1 -1
- package/cjs/fixtures.js +60 -15
- package/cjs/fixtures.js.map +1 -1
- package/cjs/index.js +36 -2
- package/cjs/index.js.map +1 -1
- package/cjs/log.js +1 -0
- package/cjs/log.js.map +1 -1
- package/cjs/middleware.js +7 -2
- package/cjs/middleware.js.map +1 -1
- package/cjs/middlewares/auth.js +17 -1
- package/cjs/middlewares/auth.js.map +1 -1
- package/cjs/middlewares/base.js +9 -3
- package/cjs/middlewares/base.js.map +1 -1
- package/cjs/middlewares/json.js +19 -1
- package/cjs/middlewares/json.js.map +1 -1
- package/cjs/middlewares/redirect.js +21 -5
- package/cjs/middlewares/redirect.js.map +1 -1
- package/cjs/models/activity-item.js +29 -5
- package/cjs/models/activity-item.js.map +1 -1
- package/cjs/models/adjunct-section.js +19 -1
- package/cjs/models/adjunct-section.js.map +1 -1
- package/cjs/models/adjunct-slide.js +19 -1
- package/cjs/models/adjunct-slide.js.map +1 -1
- package/cjs/models/adjunct-sub-slide.js +16 -1
- package/cjs/models/adjunct-sub-slide.js.map +1 -1
- package/cjs/models/adjunct.js +22 -6
- package/cjs/models/adjunct.js.map +1 -1
- package/cjs/models/api.js +6 -1
- package/cjs/models/api.js.map +1 -1
- package/cjs/models/appointment-adjunct-tags.js +13 -1
- package/cjs/models/appointment-adjunct-tags.js.map +1 -1
- package/cjs/models/appointment-deckversion-tags.js +13 -1
- package/cjs/models/appointment-deckversion-tags.js.map +1 -1
- package/cjs/models/appointment-editor.js +14 -1
- package/cjs/models/appointment-editor.js.map +1 -1
- package/cjs/models/appointment-section-tags.js +13 -1
- package/cjs/models/appointment-section-tags.js.map +1 -1
- package/cjs/models/appointment-slide-tags.js +13 -1
- package/cjs/models/appointment-slide-tags.js.map +1 -1
- package/cjs/models/appointment-stats.js +11 -1
- package/cjs/models/appointment-stats.js.map +1 -1
- package/cjs/models/appointment-tags.js +10 -1
- package/cjs/models/appointment-tags.js.map +1 -1
- package/cjs/models/appointment-template.js +6 -1
- package/cjs/models/appointment-template.js.map +1 -1
- package/cjs/models/appointment-viewing.js +8 -1
- package/cjs/models/appointment-viewing.js.map +1 -1
- package/cjs/models/appointment.js +98 -20
- package/cjs/models/appointment.js.map +1 -1
- package/cjs/models/asset.js +12 -1
- package/cjs/models/asset.js.map +1 -1
- package/cjs/models/auto-adjunct-key-check.js +15 -1
- package/cjs/models/auto-adjunct-key-check.js.map +1 -1
- package/cjs/models/auto-adjunct.js +13 -1
- package/cjs/models/auto-adjunct.js.map +1 -1
- package/cjs/models/base.js +175 -53
- package/cjs/models/base.js.map +1 -1
- package/cjs/models/base.spec.js +31 -0
- package/cjs/models/base.spec.js.map +1 -1
- package/cjs/models/choicelist.js +8 -1
- package/cjs/models/choicelist.js.map +1 -1
- package/cjs/models/cms-val.js +26 -5
- package/cjs/models/cms-val.js.map +1 -1
- package/cjs/models/cms-val.spec.js +19 -12
- package/cjs/models/cms-val.spec.js.map +1 -1
- package/cjs/models/contact-phone.js +13 -1
- package/cjs/models/contact-phone.js.map +1 -1
- package/cjs/models/contact.js +18 -1
- package/cjs/models/contact.js.map +1 -1
- package/cjs/models/customer.js +30 -3
- package/cjs/models/customer.js.map +1 -1
- package/cjs/models/deck-note.js +9 -1
- package/cjs/models/deck-note.js.map +1 -1
- package/cjs/models/deck-tags.js +12 -1
- package/cjs/models/deck-tags.js.map +1 -1
- package/cjs/models/deck-version-screenshot.js +13 -1
- package/cjs/models/deck-version-screenshot.js.map +1 -1
- package/cjs/models/deck-version.js +40 -1
- package/cjs/models/deck-version.js.map +1 -1
- package/cjs/models/deck.js +14 -1
- package/cjs/models/deck.js.map +1 -1
- package/cjs/models/dispatch-preview.js +13 -1
- package/cjs/models/dispatch-preview.js.map +1 -1
- package/cjs/models/dispatch.js +23 -1
- package/cjs/models/dispatch.js.map +1 -1
- package/cjs/models/envs.js +6 -1
- package/cjs/models/envs.js.map +1 -1
- package/cjs/models/event-object.js +11 -1
- package/cjs/models/event-object.js.map +1 -1
- package/cjs/models/event.js +13 -1
- package/cjs/models/event.js.map +1 -1
- package/cjs/models/feed-data.js +13 -1
- package/cjs/models/feed-data.js.map +1 -1
- package/cjs/models/file.js +11 -1
- package/cjs/models/file.js.map +1 -1
- package/cjs/models/group.js +11 -1
- package/cjs/models/group.js.map +1 -1
- package/cjs/models/handover.js +13 -1
- package/cjs/models/handover.js.map +1 -1
- package/cjs/models/hosted-preso.js +15 -1
- package/cjs/models/hosted-preso.js.map +1 -1
- package/cjs/models/image.js +16 -1
- package/cjs/models/image.js.map +1 -1
- package/cjs/models/location.js +13 -1
- package/cjs/models/location.js.map +1 -1
- package/cjs/models/manifest-json.js +88 -21
- package/cjs/models/manifest-json.js.map +1 -1
- package/cjs/models/onshare.js +14 -1
- package/cjs/models/onshare.js.map +1 -1
- package/cjs/models/opportunity.js +14 -1
- package/cjs/models/opportunity.js.map +1 -1
- package/cjs/models/pack-diff.js +14 -1
- package/cjs/models/pack-diff.js.map +1 -1
- package/cjs/models/pack.js +12 -1
- package/cjs/models/pack.js.map +1 -1
- package/cjs/models/preset.js +21 -2
- package/cjs/models/preset.js.map +1 -1
- package/cjs/models/refresh-request.js +22 -4
- package/cjs/models/refresh-request.js.map +1 -1
- package/cjs/models/room.js +9 -1
- package/cjs/models/room.js.map +1 -1
- package/cjs/models/salesforce-lookup.js +12 -1
- package/cjs/models/salesforce-lookup.js.map +1 -1
- package/cjs/models/section-selection.js +14 -1
- package/cjs/models/section-selection.js.map +1 -1
- package/cjs/models/section.js +14 -1
- package/cjs/models/section.js.map +1 -1
- package/cjs/models/signer.js +47 -0
- package/cjs/models/signer.js.map +1 -0
- package/cjs/models/signing-request.js +66 -0
- package/cjs/models/signing-request.js.map +1 -0
- package/cjs/models/slide-selection.js +14 -1
- package/cjs/models/slide-selection.js.map +1 -1
- package/cjs/models/slide.js +14 -1
- package/cjs/models/slide.js.map +1 -1
- package/cjs/models/snapshot.js +45 -4
- package/cjs/models/snapshot.js.map +1 -1
- package/cjs/models/snapshot.spec.js +32 -25
- package/cjs/models/snapshot.spec.js.map +1 -1
- package/cjs/models/sub-slide.js +12 -1
- package/cjs/models/sub-slide.js.map +1 -1
- package/cjs/models/support-ticket.js +11 -1
- package/cjs/models/support-ticket.js.map +1 -1
- package/cjs/models/tag.js +13 -1
- package/cjs/models/tag.js.map +1 -1
- package/cjs/models/team.js +13 -1
- package/cjs/models/team.js.map +1 -1
- package/cjs/models/template.js +78 -48
- package/cjs/models/template.js.map +1 -1
- package/cjs/models/tenancy.js +11 -1
- package/cjs/models/tenancy.js.map +1 -1
- package/cjs/models/timing-log.js +78 -21
- package/cjs/models/timing-log.js.map +1 -1
- package/cjs/models/timing-log.spec.js +37 -24
- package/cjs/models/timing-log.spec.js.map +1 -1
- package/cjs/models/token.js +11 -1
- package/cjs/models/token.js.map +1 -1
- package/cjs/models/transcribe-socket.js +8 -1
- package/cjs/models/transcribe-socket.js.map +1 -1
- package/cjs/models/upload.js +7 -1
- package/cjs/models/upload.js.map +1 -1
- package/cjs/models/user.js +26 -3
- package/cjs/models/user.js.map +1 -1
- package/cjs/models/user.spec.js +30 -20
- package/cjs/models/user.spec.js.map +1 -1
- package/cjs/models.js +160 -11
- package/cjs/models.js.map +1 -1
- package/cjs/presentation/appointment-presentation.js +35 -9
- package/cjs/presentation/appointment-presentation.js.map +1 -1
- package/cjs/presentation/base-presentation-collection.js +7 -1
- package/cjs/presentation/base-presentation-collection.js.map +1 -1
- package/cjs/presentation/base-presentation-model.js +65 -22
- package/cjs/presentation/base-presentation-model.js.map +1 -1
- package/cjs/presentation/base-presentation-model.spec.js +27 -6
- package/cjs/presentation/base-presentation-model.spec.js.map +1 -1
- package/cjs/presentation/presentation-deck.js +82 -41
- package/cjs/presentation/presentation-deck.js.map +1 -1
- package/cjs/presentation/presentation-deck.spec.js +95 -72
- package/cjs/presentation/presentation-deck.spec.js.map +1 -1
- package/cjs/presentation/presentation-decks.js +9 -1
- package/cjs/presentation/presentation-decks.js.map +1 -1
- package/cjs/presentation/presentation-section.js +74 -9
- package/cjs/presentation/presentation-section.js.map +1 -1
- package/cjs/presentation/presentation-section.spec.js +256 -203
- package/cjs/presentation/presentation-section.spec.js.map +1 -1
- package/cjs/presentation/presentation-sections.js +9 -1
- package/cjs/presentation/presentation-sections.js.map +1 -1
- package/cjs/presentation/presentation-slide.js +77 -16
- package/cjs/presentation/presentation-slide.js.map +1 -1
- package/cjs/presentation/presentation-slide.spec.js +176 -136
- package/cjs/presentation/presentation-slide.spec.js.map +1 -1
- package/cjs/presentation/presentation-slides.js +9 -1
- package/cjs/presentation/presentation-slides.js.map +1 -1
- package/cjs/presentation/presentation-subslide.js +23 -3
- package/cjs/presentation/presentation-subslide.js.map +1 -1
- package/cjs/presentation/presentation-subslide.spec.js +125 -101
- package/cjs/presentation/presentation-subslide.spec.js.map +1 -1
- package/cjs/presentation/presentation-subslides.js +9 -1
- package/cjs/presentation/presentation-subslides.js.map +1 -1
- package/cjs/presentation/presentation.js +115 -61
- package/cjs/presentation/presentation.js.map +1 -1
- package/cjs/presentation.js +20 -0
- package/cjs/presentation.js.map +1 -1
- package/cjs/selections.js +29 -4
- package/cjs/selections.js.map +1 -1
- package/cjs/state-register.js +11 -3
- package/cjs/state-register.js.map +1 -1
- package/cjs/sync.js +76 -32
- package/cjs/sync.js.map +1 -1
- package/cjs/utils.js +49 -21
- package/cjs/utils.js.map +1 -1
- package/cjs/utils.spec.js +5 -1
- package/cjs/utils.spec.js.map +1 -1
- package/package.json +4 -4
- package/src/collections/signers.js +18 -0
- package/src/collections/signing-requests.js +18 -0
- package/src/collections.js +2 -1
- package/src/fixtures.js +11 -9
- package/src/index.js +2 -3
- package/src/models/activity-item.js +8 -0
- package/src/models/appointment.js +3 -0
- package/src/models/deck-version.js +1 -0
- package/src/models/manifest-json.js +9 -0
- package/src/models/preset.js +1 -0
- package/src/models/refresh-request.js +1 -0
- package/src/models/signer.js +37 -0
- package/src/models/signing-request.js +56 -0
- package/src/models/snapshot.js +19 -0
- package/src/models.js +2 -1
- package/src/utils.spec.js +4 -4
- package/cjs/collections/appointment-duplicates.js +0 -21
- package/cjs/collections/appointment-duplicates.js.map +0 -1
- package/cjs/models/appointment-duplicate.js +0 -72
- package/cjs/models/appointment-duplicate.js.map +0 -1
- package/src/collections/appointment-duplicates.js +0 -19
- 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
|
-
|
|
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)
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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)
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
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
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
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)
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
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
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
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
|
-
|
|
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)
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
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)
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
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)
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
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)
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
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":";;;;;AAAA,IAAAA,wBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,IAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,WAAA,GAAAN,sBAAA,CAAAC,OAAA;AAA4B,SAAAM,2BAAAC,CAAA,EAAAC,cAAA,QAAAC,EAAA,UAAAC,MAAA,oBAAAH,CAAA,CAAAG,MAAA,CAAAC,QAAA,KAAAJ,CAAA,qBAAAE,EAAA,QAAAG,KAAA,CAAAC,OAAA,CAAAN,CAAA,MAAAE,EAAA,GAAAK,2BAAA,CAAAP,CAAA,MAAAC,cAAA,IAAAD,CAAA,WAAAA,CAAA,CAAAQ,MAAA,qBAAAN,EAAA,EAAAF,CAAA,GAAAE,EAAA,MAAAO,CAAA,UAAAC,CAAA,YAAAA,EAAA,eAAAC,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAA,EAAA,QAAAH,CAAA,IAAAT,CAAA,CAAAQ,MAAA,WAAAK,IAAA,mBAAAA,IAAA,SAAAC,KAAA,EAAAd,CAAA,CAAAS,CAAA,UAAAM,CAAA,WAAAA,EAAAC,EAAA,UAAAA,EAAA,KAAAC,CAAA,EAAAP,CAAA,gBAAAQ,SAAA,iJAAAC,gBAAA,SAAAC,MAAA,UAAAC,GAAA,WAAAV,CAAA,WAAAA,EAAA,IAAAT,EAAA,GAAAA,EAAA,CAAAoB,IAAA,CAAAtB,CAAA,MAAAY,CAAA,WAAAA,EAAA,QAAAW,IAAA,GAAArB,EAAA,CAAAsB,IAAA,IAAAL,gBAAA,GAAAI,IAAA,CAAAV,IAAA,SAAAU,IAAA,KAAAR,CAAA,WAAAA,EAAAU,GAAA,IAAAL,MAAA,SAAAC,GAAA,GAAAI,GAAA,KAAAR,CAAA,WAAAA,EAAA,eAAAE,gBAAA,IAAAjB,EAAA,CAAAwB,MAAA,UAAAxB,EAAA,CAAAwB,MAAA,oBAAAN,MAAA,QAAAC,GAAA;AAAA,SAAAd,4BAAAP,CAAA,EAAA2B,MAAA,SAAA3B,CAAA,qBAAAA,CAAA,sBAAA4B,iBAAA,CAAA5B,CAAA,EAAA2B,MAAA,OAAAf,CAAA,GAAAiB,MAAA,CAAAC,SAAA,CAAAC,QAAA,CAAAT,IAAA,CAAAtB,CAAA,EAAAgC,KAAA,aAAApB,CAAA,iBAAAZ,CAAA,CAAAiC,WAAA,EAAArB,CAAA,GAAAZ,CAAA,CAAAiC,WAAA,CAAAC,IAAA,MAAAtB,CAAA,cAAAA,CAAA,mBAAAP,KAAA,CAAA8B,IAAA,CAAAnC,CAAA,OAAAY,CAAA,+DAAAwB,IAAA,CAAAxB,CAAA,UAAAgB,iBAAA,CAAA5B,CAAA,EAAA2B,MAAA;AAAA,SAAAC,kBAAAS,GAAA,EAAAC,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAAD,GAAA,CAAA7B,MAAA,EAAA8B,GAAA,GAAAD,GAAA,CAAA7B,MAAA,WAAAC,CAAA,MAAA8B,IAAA,OAAAlC,KAAA,CAAAiC,GAAA,GAAA7B,CAAA,GAAA6B,GAAA,EAAA7B,CAAA,IAAA8B,IAAA,CAAA9B,CAAA,IAAA4B,GAAA,CAAA5B,CAAA,UAAA8B,IAAA;AAE5BrC,EAAE,CAAC,2CAA2C,EAAE,YAAM;EACrD,IAAAsC,MAAC,EAACC,gBAAS,EAAE,WAAW,CAAC,CAACC,MAAM,CAAC;IAAEC,SAAS,EAAE;EAAQ,CAAC,CAAC;EACxD,IAAMC,UAAU,GAAG,IAAAJ,MAAC,EAACK,oBAAc,CAAC,CAACH,MAAM,CAAC;IAC3CI,KAAK,EAAE;EACR,CAAC,CAAC;EACF,IAAMC,UAAU,GAAG,IAAIH,UAAU,CAAC,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;EACrEI,MAAM,CAACD,UAAU,CAACE,MAAM,CAAC,CAACC,YAAY,CAAC,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEFhD,EAAE,CAAC,sDAAsD,mBAAAiD,kBAAA,CAAAC,OAAA,gBAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAC,QAAA;EAAA,IAAAX,UAAA,EAAAG,UAAA,EAAAS,WAAA,EAAAC,WAAA;EAAA,OAAAJ,YAAA,CAAAD,OAAA,CAAAM,IAAA,UAAAC,SAAAC,QAAA;IAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAApC,IAAA;MAAA;QAC1D,IAAAgB,MAAC,EAACC,gBAAS,EAAE,WAAW,CAAC;QACnBG,UAAU,GAAG,IAAAJ,MAAC,EAACK,oBAAc,CAAC,CAACH,MAAM,CAAC;UAAEI,KAAK,EAAE;QAAY,CAAC,CAAC;QAC7DC,UAAU,GAAG,IAAIH,UAAU,CAAC,CAAC;UAAEkB,EAAE,EAAE;QAAE,CAAC,EAAE;UAAEA,EAAE,EAAE;QAAE,CAAC,CAAC,CAAC;QAEnDN,WAAW,GAAGO,mBAAE,CAACC,OAAO,CAACjB,UAAU,CAACE,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;QACvDQ,WAAW,GAAGM,mBAAE,CAACC,OAAO,CAACjB,UAAU,CAACE,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;QAAAW,QAAA,CAAApC,IAAA;QAAA,OAEvDuB,UAAU,CAACkB,WAAW,CAAC,CAAC;MAAA;QAE9BF,mBAAE,CAACG,MAAM,CAACV,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1BO,mBAAE,CAACG,MAAM,CAACT,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;MAAC;MAAA;QAAA,OAAAG,QAAA,CAAAO,IAAA;IAAA;EAAA,GAAAZ,OAAA;AAAA,CAC3B,GAAC;AAEFrD,EAAE,CAAC,yCAAyC,mBAAAiD,kBAAA,CAAAC,OAAA,gBAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAc,SAAA;EAAA,IAAAC,KAAA,EAAAzB,UAAA,EAAAG,UAAA,EAAAuB,SAAA,EAAAC,KAAA,EAAAzB,KAAA;EAAA,OAAAO,YAAA,CAAAD,OAAA,CAAAM,IAAA,UAAAc,UAAAC,SAAA;IAAA,kBAAAA,SAAA,CAAAZ,IAAA,GAAAY,SAAA,CAAAjD,IAAA;MAAA;QACvC6C,KAAK,GAAG,IAAA7B,MAAC,EAACC,gBAAS,CAACC,MAAM,CAAC;UAAEC,SAAS,EAAE;QAAO,CAAC,CAAC,EAAE,WAAW,CAAC;QAC/DC,UAAU,GAAG,IAAAJ,MAAC,EAACK,oBAAc,CAAC,CAACH,MAAM,CAAC;UAAEI,KAAK,EAAE;QAAY,CAAC,CAAC;QACnEF,UAAU,CAAC8B,WAAW,CAAC,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QAClD3B,UAAU,GAAG,IAAIH,UAAU,CAAC,CAAC;QAAA6B,SAAA,CAAAjD,IAAA;QAAA,OAC7BuB,UAAU,CAAC4B,KAAK,CAAC,CAAC;MAAA;QACxB3B,MAAM,CAACD,UAAU,CAACE,MAAM,CAAC,CAACC,YAAY,CAAC,CAAC,CAAC;QAACoB,SAAA,GAAAvE,0BAAA,CACtBgD,UAAU,CAACE,MAAM;QAAA;UAArC,KAAAqB,SAAA,CAAA3D,CAAA,MAAA4D,KAAA,GAAAD,SAAA,CAAA1D,CAAA,IAAAC,IAAA,GAAuC;YAA5BiC,KAAK,GAAAyB,KAAA,CAAAzD,KAAA;YACfkC,MAAM,CAACF,KAAK,CAAC,CAAC8B,cAAc,CAACP,KAAK,CAAC;UACpC;QAAC,SAAAhD,GAAA;UAAAiD,SAAA,CAAAvD,CAAA,CAAAM,GAAA;QAAA;UAAAiD,SAAA,CAAArD,CAAA;QAAA;MAAA;MAAA;QAAA,OAAAwD,SAAA,CAAAN,IAAA;IAAA;EAAA,GAAAC,QAAA;AAAA,CACD,GAAC;AAEFlE,EAAE,CAAC,4CAA4C,mBAAAiD,kBAAA,CAAAC,OAAA,gBAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAuB,SAAA;EAAA,IAAAR,KAAA,EAAAzB,UAAA,EAAAG,UAAA,EAAA+B,UAAA,EAAAC,MAAA,EAAAjC,KAAA;EAAA,OAAAO,YAAA,CAAAD,OAAA,CAAAM,IAAA,UAAAsB,UAAAC,SAAA;IAAA,kBAAAA,SAAA,CAAApB,IAAA,GAAAoB,SAAA,CAAAzD,IAAA;MAAA;QAC1C6C,KAAK,GAAG,IAAA7B,MAAC,EAACC,gBAAS,EAAE,WAAW,CAAC;QACjCG,UAAU,GAAG,IAAAJ,MAAC,EAACK,oBAAc,CAACH,MAAM,CAAC;UAAEI,KAAK,EAAE;QAAY,CAAC,CAAC,CAAC;QACnEF,UAAU,CAAC8B,WAAW,CAAC,CAAC;UAAEZ,EAAE,EAAE;QAAE,CAAC,EAAE;UAAEA,EAAE,EAAE;QAAE,CAAC,CAAC,CAAC;QACxCf,UAAU,GAAG,IAAIH,UAAU,CAAC,CAAC;QAAAqC,SAAA,CAAAzD,IAAA;QAAA,OAC7BuB,UAAU,CAAC4B,KAAK,CAAC,CAAC;MAAA;QACxB3B,MAAM,CAACD,UAAU,CAACE,MAAM,CAAC,CAACC,YAAY,CAAC,CAAC,CAAC;QAAC4B,UAAA,GAAA/E,0BAAA,CACtBgD,UAAU,CAACE,MAAM;QAAA;UAArC,KAAA6B,UAAA,CAAAnE,CAAA,MAAAoE,MAAA,GAAAD,UAAA,CAAAlE,CAAA,IAAAC,IAAA,GAAuC;YAA5BiC,KAAK,GAAAiC,MAAA,CAAAjE,KAAA;YACfkC,MAAM,CAACF,KAAK,CAAC,CAAC8B,cAAc,CAACP,KAAK,CAAC;UACpC;QAAC,SAAAhD,GAAA;UAAAyD,UAAA,CAAA/D,CAAA,CAAAM,GAAA;QAAA;UAAAyD,UAAA,CAAA7D,CAAA;QAAA;MAAA;MAAA;QAAA,OAAAgE,SAAA,CAAAd,IAAA;IAAA;EAAA,GAAAU,QAAA;AAAA,CACD,GAAC;AAEF3E,EAAE,CAAC,8CAA8C,EAAE,YAAM;EACxD,IAAMgF,GAAG,GAAG,WAAW;EACvB,IAAMtC,UAAU,GAAG,IAAAJ,MAAC,EAACK,oBAAc,CAAC;EACpC,IAAME,UAAU,GAAG,IAAIH,UAAU,CAAC;IAAEsC,GAAG,EAAHA;EAAI,CAAC,CAAC;EAC1ClC,MAAM,CAACD,UAAU,CAACmC,GAAG,CAAC,CAAC,CAAC,CAACC,OAAO,IAAAC,MAAA,CAAIF,GAAG,mBAAgB,CAAC;AACzD,CAAC,CAAC;AAEFhF,EAAE,CAAC,+CAA+C,EAAE,YAAM;EACzD,IAAM0C,UAAU,GAAG,IAAAJ,MAAC,EAACK,oBAAc,CAACH,MAAM,CAAC;IAAEC,SAAS,EAAE;EAAO,CAAC,CAAC,CAAC;EAClE,IAAMI,UAAU,GAAG,IAAIH,UAAU,CAAC,CAAC;EACnCI,MAAM,CAACD,UAAU,CAACmC,GAAG,CAAC,CAAC,CAAC,CAACC,OAAO,CAAC,0BAA0B,CAAC;AAC7D,CAAC,CAAC;AAEFjF,EAAE,CAAC,0CAA0C,EAAE,YAAM;EACpD,IAAM0C,UAAU,GAAG,IAAAJ,MAAC,EAACK,oBAAc,CAACH,MAAM,CAAC;IAAEC,SAAS,EAAE;EAAO,CAAC,CAAC,CAAC;EAClE,IAAMI,UAAU,GAAG,IAAIH,UAAU,CAAC;IAAEsC,GAAG,EAAE;EAA2B,CAAC,CAAC;EACtElC,MAAM,CAACD,UAAU,CAACmC,GAAG,CAAC,CAAC,CAAC,CAACC,OAAO,CAAC,0BAA0B,CAAC;AAC7D,CAAC,CAAC;AAEFjF,EAAE,CAAC,qDAAqD,EAAE,YAAM;EAC/D,IAAM0C,UAAU,GAAG,IAAAJ,MAAC,EAACK,oBAAc,CAAC;EACpC,IAAME,UAAU,GAAG,IAAIH,UAAU,CAAC;IAAEsC,GAAG,EAAE;EAAoB,CAAC,CAAC;EAC/DlC,MAAM,CAACD,UAAU,CAACmC,GAAG,CAAC,CAAC,CAAC,CAACC,OAAO,CAAC,kCAAkC,CAAC;AACrE,CAAC,CAAC;AAEFjF,EAAE,CAAC,gEAAgE,EAAE,YAAM;EAC1E,IAAM0C,UAAU,GAAG,IAAAJ,MAAC,EAACK,oBAAc,CAAC;EACpC,IAAME,UAAU,GAAG,IAAIH,UAAU,CAAC;IAAEsC,GAAG,EAAE;EAAkC,CAAC,CAAC;EAC7ElC,MAAM,CAACD,UAAU,CAACmC,GAAG,CAAC,CAAC,CAAC,CAACC,OAAO,CAAC,kCAAkC,CAAC;AACrE,CAAC,CAAC;AAEFjF,EAAE,CAAC,gDAAgD,EAAE,YAAM;EAC1D,IAAM0C,UAAU,GAAG,IAAAJ,MAAC,EAACK,oBAAc,CAAC;EACpC,IAAME,UAAU,GAAG,IAAIH,UAAU,CAChC;IACCsC,GAAG,EAAE;EACN,CAAC,EACD;IACCG,IAAI,EAAE;MACLC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI;IACjB;EACD,CACD,CAAC;EACDtC,MAAM,CAACD,UAAU,CAACmC,GAAG,CAAC,CAAC,CAAC,CAACC,OAAO,CAC/B,mDACD,CAAC;AACF,CAAC,CAAC;AAEFjF,EAAE,CAAC,4DAA4D,EAAE,YAAM;EACtE,IAAMmE,KAAK,GAAG,IAAA7B,MAAC,EAACC,gBAAS,EAAE,WAAW,CAAC;EACvC,IAAMG,UAAU,GAAG,IAAAJ,MAAC,EAACK,oBAAc,CAACH,MAAM,CAAC;IAAEI,KAAK,EAAE;EAAY,CAAC,CAAC,CAAC;EACnE,IAAMC,UAAU,GAAG,IAAIH,UAAU,CAAC,CAAC;EACnCI,MAAM,CAACD,UAAU,CAACD,KAAK,CAAC,CAACqC,OAAO,CAACd,KAAK,CAAC;AACxC,CAAC,CAAC;AAEFnE,EAAE,CAAC,8DAA8D,EAAE,YAAM;EACxE,IAAAsC,MAAC,EAACC,gBAAS,EAAE,WAAW,CAAC;EACzB,IAAMG,UAAU,GAAG,IAAAJ,MAAC,EAACK,oBAAc,CAACH,MAAM,CAAC;IAAEI,KAAK,EAAE;EAAY,CAAC,CAAC,CAAC;EACnE,IAAMyC,eAAe,GAAG,IAAI3C,UAAU,CAAC,CAAC;IAAEkB,EAAE,EAAE;EAAE,CAAC,CAAC,CAAC;EACnD,IAAM0B,gBAAgB,GAAG,IAAI5C,UAAU,CAAC2C,eAAe,CAAC;EACxDvC,MAAM,CAACwC,gBAAgB,CAACvC,MAAM,CAAC,CAAC,CAAC,CAACa,EAAE,CAAC,CAACqB,OAAO,CAAC,CAAC,CAAC;AACjD,CAAC,CAAC;AAEFjF,EAAE,CAAC,+BAA+B,EAAE,YAAM;EACzC,IAAAsC,MAAC,EAACC,gBAAS,EAAE,WAAW,CAAC;EACzB,IAAMG,UAAU,GAAG,IAAAJ,MAAC,EAACK,oBAAc,CAACH,MAAM,CAAC;IAAEI,KAAK,EAAE;EAAY,CAAC,CAAC,CAAC;EACnE,IAAMC,UAAU,GAAG,IAAIH,UAAU,CAAC,CAAC;EACnCI,MAAM,CAACD,UAAU,CAACvC,MAAM,CAAC,CAAC2E,OAAO,CAAC,CAAC,CAAC;AACrC,CAAC,CAAC;AAEFjF,EAAE,CAAC,0EAA0E,EAAE,YAAM;EACpF,IAAMuF,qBAAqB,GAAG,IAAAjD,MAAC,EAAC,uBAAuB,CAAC;EACxD;EACA,IAAMO,UAAU,GAAG,IAAI0C,qBAAqB,CAAC,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC;EACzEzC,MAAM,CAACD,UAAU,CAAC2C,gBAAgB,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,KAAK,CAAC;AAClD,CAAC,CAAC;AAEFzF,EAAE,CAAC,oDAAoD,EAAE,YAAM;EAC9D,IAAAsC,MAAC,EAACC,gBAAS,EAAE,WAAW,CAAC;EACzB,IAAMG,UAAU,GAAG,IAAAJ,MAAC,EAACK,oBAAc,CAACH,MAAM,CAAC;IAAEI,KAAK,EAAE;EAAY,CAAC,CAAC,CAAC;EACnE,IAAMC,UAAU,GAAG,IAAIH,UAAU,CAAC,CAAC;IAAEkB,EAAE,EAAE;EAAE,CAAC,EAAE;IAAEA,EAAE,EAAE;EAAE,CAAC,CAAC,CAAC;EACzDd,MAAM,CAACD,UAAU,CAAC2C,gBAAgB,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;AACjD,CAAC,CAAC;AAEF,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,MAAM,EAAK;EACpCC,IAAI,CACFC,KAAK,CAACC,gCAAmB,CAAClE,SAAS,EAAE,OAAO,CAAC,CAC7CmE,kBAAkB,CAAC,UAACC,IAAI,EAAK;IAC7B,IAAMC,YAAY,GAAGN,MAAM,CAACK,IAAI,CAAC;IACjC,OAAOE,iBAAO,CAACC,OAAO,CAACF,YAAY,CAAC;EACrC,CAAC,CAAC;AACJ,CAAC;AAEDG,QAAQ,CAAC,UAAU,EAAE,YAAM;EAC1BpG,EAAE,CAAC,kCAAkC,mBAAAiD,kBAAA,CAAAC,OAAA,gBAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAiD,SAAA;IAAA,IAAA3D,UAAA,EAAA4D,cAAA;IAAA,OAAAnD,YAAA,CAAAD,OAAA,CAAAM,IAAA,UAAA+C,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAA7C,IAAA,GAAA6C,SAAA,CAAAlF,IAAA;QAAA;UACtCoE,gBAAgB,CAAC,YAAM;YACtB,OAAO;cACNe,OAAO,EAAE,CAAC;gBAAE7C,EAAE,EAAE;cAAG,CAAC,EAAE;gBAAEA,EAAE,EAAE;cAAG,CAAC,EAAE;gBAAEA,EAAE,EAAE;cAAG,CAAC;YAC7C,CAAC;UACF,CAAC,CAAC;UAEF,IAAAtB,MAAC,EAACC,gBAAS,EAAE,WAAW,CAAC;UACnBG,UAAU,GAAG,IAAAJ,MAAC,EAACK,oBAAc,CAACH,MAAM,CAAC;YAAEI,KAAK,EAAE;UAAY,CAAC,CAAC,CAAC;UAC7D0D,cAAc,GAAG,IAAI5D,UAAU,CAAC,CAAC;UAAA8D,SAAA,CAAAlF,IAAA;UAAA,OAEjCgF,cAAc,CAACI,QAAQ,CAAC,CAAC;QAAA;UAE/B5D,MAAM,CAACwD,cAAc,CAAChG,MAAM,CAAC,CAAC2E,OAAO,CAAC,CAAC,CAAC;UACxCnC,MAAM,CAACwD,cAAc,CAACK,KAAK,CAAC,CAAC,CAAC/C,EAAE,CAAC,CAACqB,OAAO,CAAC,EAAE,CAAC;QAAC;QAAA;UAAA,OAAAuB,SAAA,CAAAvC,IAAA;MAAA;IAAA,GAAAoC,QAAA;EAAA,CAC9C,GAAC;EAEFrG,EAAE,CAAC,kCAAkC,mBAAAiD,kBAAA,CAAAC,OAAA,gBAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAwD,SAAA;IAAA,IAAAlE,UAAA,EAAA4D,cAAA;IAAA,OAAAnD,YAAA,CAAAD,OAAA,CAAAM,IAAA,UAAAqD,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAnD,IAAA,GAAAmD,SAAA,CAAAxF,IAAA;QAAA;UACtCoE,gBAAgB,CAAC,YAAM;YACtB,OAAO;cACNe,OAAO,EAAE,CAAC;gBAAE7C,EAAE,EAAE;cAAG,CAAC;YACrB,CAAC;UACF,CAAC,CAAC;UAEF,IAAAtB,MAAC,EAACC,gBAAS,EAAE,WAAW,CAAC;UACnBG,UAAU,GAAG,IAAAJ,MAAC,EAACK,oBAAc,CAACH,MAAM,CAAC;YAAEI,KAAK,EAAE;UAAY,CAAC,CAAC,CAAC;UAC7D0D,cAAc,GAAG,IAAI5D,UAAU,CAAC,CAAC;YAAEkB,EAAE,EAAE;UAAG,CAAC,CAAC,CAAC;UAAAkD,SAAA,CAAAxF,IAAA;UAAA,OAE7CgF,cAAc,CAACI,QAAQ,CAAC,CAAC;QAAA;UAE/B5D,MAAM,CAACwD,cAAc,CAAChG,MAAM,CAAC,CAAC2E,OAAO,CAAC,CAAC,CAAC;UACxC;UACAnC,MAAM,CAACwD,cAAc,CAACK,KAAK,CAAC,CAAC,CAAC/C,EAAE,CAAC,CAACqB,OAAO,CAAC,EAAE,CAAC;UAC7CnC,MAAM,CAACwD,cAAc,CAACS,IAAI,CAAC,CAAC,CAACnD,EAAE,CAAC,CAACqB,OAAO,CAAC,EAAE,CAAC;QAAC;QAAA;UAAA,OAAA6B,SAAA,CAAA7C,IAAA;MAAA;IAAA,GAAA2C,QAAA;EAAA,CAC7C,GAAC;EAEF5G,EAAE,CAAC,wBAAwB,mBAAAiD,kBAAA,CAAAC,OAAA,gBAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAA4D,SAAA;IAAA,IAAAtE,UAAA,EAAA4D,cAAA;IAAA,OAAAnD,YAAA,CAAAD,OAAA,CAAAM,IAAA,UAAAyD,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAvD,IAAA,GAAAuD,SAAA,CAAA5F,IAAA;QAAA;UAC5BoE,gBAAgB,CAAC,UAACM,IAAI,EAAK;YAC1B,IAAMmB,IAAI,GAAGnB,IAAI,CAACb,IAAI,CAACgC,IAAI,IAAI,CAAC;YAChC,IAAMlB,YAAY,GAAG;cACpBmB,WAAW,EAAE,CAAC;cACdD,IAAI,EAAJA,IAAI;cACJV,OAAO,EAAE,CAAC;gBAAE7C,EAAE,EAAEuD,IAAI,GAAG;cAAG,CAAC;YAC5B,CAAC;YACD,OAAOjB,iBAAO,CAACC,OAAO,CAACF,YAAY,CAAC;UACrC,CAAC,CAAC;UAEF,IAAA3D,MAAC,EAACC,gBAAS,EAAE,WAAW,CAAC;UACnBG,UAAU,GAAG,IAAAJ,MAAC,EAACK,oBAAc,CAACH,MAAM,CAAC;YAAEI,KAAK,EAAE;UAAY,CAAC,CAAC,CAAC;UAC7D0D,cAAc,GAAG,IAAI5D,UAAU,CAAC,CAAC;UAAAwE,SAAA,CAAA5F,IAAA;UAAA,OAEjCgF,cAAc,CAACI,QAAQ,CAAC,CAAC;QAAA;UAE/B5D,MAAM,CAACwD,cAAc,CAAChG,MAAM,CAAC,CAAC2E,OAAO,CAAC,CAAC,CAAC;UACxCnC,MAAM,CAACwD,cAAc,CAACK,KAAK,CAAC,CAAC,CAAC/C,EAAE,CAAC,CAACqB,OAAO,CAAC,EAAE,CAAC;UAC7CnC,MAAM,CAACwD,cAAc,CAACS,IAAI,CAAC,CAAC,CAACnD,EAAE,CAAC,CAACqB,OAAO,CAAC,EAAE,CAAC;QAAC;QAAA;UAAA,OAAAiC,SAAA,CAAAjD,IAAA;MAAA;IAAA,GAAA+C,QAAA;EAAA,CAC7C,GAAC;EAEFhH,EAAE,CAAC,6CAA6C,mBAAAiD,kBAAA,CAAAC,OAAA,gBAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAiE,SAAA;IAAA,IAAA3E,UAAA,EAAA4D,cAAA;IAAA,OAAAnD,YAAA,CAAAD,OAAA,CAAAM,IAAA,UAAA8D,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAA5D,IAAA,GAAA4D,SAAA,CAAAjG,IAAA;QAAA;UACjDoE,gBAAgB,CAAC,UAACM,IAAI,EAAK;YAC1B,IAAMmB,IAAI,GAAGnB,IAAI,CAACb,IAAI,CAACgC,IAAI,IAAI,CAAC;YAChC,IAAMlB,YAAY,GAAG;cACpBmB,WAAW,EAAE,EAAE;cACfD,IAAI,EAAJA,IAAI;cACJV,OAAO,EAAE,CAAC;gBAAE7C,EAAE,EAAEuD,IAAI,GAAG;cAAG,CAAC;YAC5B,CAAC;YACD,OAAOjB,iBAAO,CAACC,OAAO,CAACF,YAAY,CAAC;UACrC,CAAC,CAAC;UAEF,IAAA3D,MAAC,EAACC,gBAAS,EAAE,WAAW,CAAC;UACnBG,UAAU,GAAG,IAAAJ,MAAC,EAACK,oBAAc,CAACH,MAAM,CAAC;YAAEI,KAAK,EAAE;UAAY,CAAC,CAAC,CAAC;UAC7D0D,cAAc,GAAG,IAAI5D,UAAU,CAAC,CAAC;UAAA6E,SAAA,CAAAjG,IAAA;UAAA,OAEjCgF,cAAc,CAACI,QAAQ,CAAC,CAAC;QAAA;UAE/B5D,MAAM,CAACwD,cAAc,CAAChG,MAAM,CAAC,CAAC2E,OAAO,CAAC,EAAE,CAAC;UACzCnC,MAAM,CAACwD,cAAc,CAACK,KAAK,CAAC,CAAC,CAAC/C,EAAE,CAAC,CAACqB,OAAO,CAAC,EAAE,CAAC;UAC7CnC,MAAM,CAACwD,cAAc,CAACS,IAAI,CAAC,CAAC,CAACnD,EAAE,CAAC,CAACqB,OAAO,CAAC,EAAE,CAAC;QAAC;QAAA;UAAA,OAAAsC,SAAA,CAAAtD,IAAA;MAAA;IAAA,GAAAoD,QAAA;EAAA,CAC7C,GAAC;AACH,CAAC,CAAC"}
|
|
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"}
|