joist-test-utils 1.283.0 → 1.284.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.
@@ -0,0 +1,10 @@
1
+ import { JoinRowTodo, Plugin, Todo } from "joist-orm";
2
+ import { EntityManager } from "joist-orm/build/EntityManager";
3
+ export declare class RunPlugin extends Plugin {
4
+ #private;
5
+ readonly em: EntityManager;
6
+ constructor(em: EntityManager);
7
+ maybeCloneForNewEm(): this;
8
+ afterWrite(entityTodos: Record<string, Todo>, joinRowTodos: Record<string, JoinRowTodo>): void;
9
+ }
10
+ //# sourceMappingURL=RunPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunPlugin.d.ts","sourceRoot":"","sources":["../src/RunPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,WAAW,EAMX,MAAM,EAIN,IAAI,EACL,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,aAAa,EAAoB,MAAM,+BAA+B,CAAC;AAOhF,qBAAa,SAAU,SAAQ,MAAM;;aAGP,EAAE,EAAE,aAAa;gBAAjB,EAAE,EAAE,aAAa;IAI7C,kBAAkB;IAIlB,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC;CA4JxF"}
@@ -0,0 +1,302 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RunPlugin = void 0;
4
+ const joist_orm_1 = require("joist-orm");
5
+ const EntityManager_1 = require("joist-orm/build/EntityManager");
6
+ /*
7
+ * `run...` helpers use this plugin to mirror any changes made to their isolated entity manager inside to the original
8
+ * entity manager they were passed. This allows changes to be synchronously reflected between the two entity managers
9
+ * without needing to query the database.
10
+ */
11
+ class RunPlugin extends joist_orm_1.Plugin {
12
+ em;
13
+ // The em passed here is the target which we'll mirror changes to. The plugin should not be added to it, but rather
14
+ // to the new em `run..` helpers create or by downstream ems created by implementation code
15
+ constructor(em) {
16
+ super();
17
+ this.em = em;
18
+ }
19
+ maybeCloneForNewEm() {
20
+ return this;
21
+ }
22
+ afterWrite(entityTodos, joinRowTodos) {
23
+ const api = (0, EntityManager_1.getEmInternalApi)(this.em);
24
+ // We don't want any old preloaded data leaking into our changes, so we clear it out before we start as a precaution
25
+ api.clearPreloadedRelations();
26
+ // Likewise, any data loaders in memory will have stale data, so we clear them out as well
27
+ api.clearDataloaders();
28
+ this.#syncEntityData(entityTodos);
29
+ this.#syncReferences(entityTodos);
30
+ this.#syncManyToManys(joinRowTodos);
31
+ this.#preloadUnloadedRelations(entityTodos);
32
+ }
33
+ #syncEntityData(entityTodos) {
34
+ const { em } = this;
35
+ Object.values(entityTodos).forEach((todo) => {
36
+ todo.inserts.forEach((newEntity) => {
37
+ const row = (0, joist_orm_1.createRowFromEntityData)(newEntity, { preferOriginalData: false });
38
+ em.hydrate(newEntity.constructor, [row]);
39
+ });
40
+ todo.updates.forEach((newEntity) => {
41
+ const oldEntity = em.findExistingInstance(newEntity.idTagged);
42
+ // This fail shouldn't really be possible, since any entity should either have been created:
43
+ // * via factory or em.create in the original em
44
+ // * by the new em inside the `run` call, in which case it'd be an insert instead of an update
45
+ // * by a previous afterWrite call, which would have already been an insert and added to the original em
46
+ // * by a previous `run` call, which would have already been an insert as well
47
+ if (!oldEntity)
48
+ fail(`Expected to find existing entity for $ {e.idTagged}`);
49
+ const { data: newData } = (0, joist_orm_1.getInstanceData)(newEntity);
50
+ const { data: oldData } = (0, joist_orm_1.getInstanceData)(oldEntity);
51
+ const meta = (0, joist_orm_1.getMetadata)(newEntity);
52
+ newEntity.changes.fields
53
+ .values()
54
+ .filter((fieldName) => fieldName in newData)
55
+ .filter((fieldName) => !!meta.allFields[fieldName].serde)
56
+ .forEach((fieldName) => {
57
+ // We're imitating a round trip to the database here, so we use our field's serde to map the value back
58
+ // and forth.
59
+ const serde = meta.allFields[fieldName].serde;
60
+ let column;
61
+ let value;
62
+ if (serde instanceof joist_orm_1.PolymorphicKeySerde) {
63
+ [column, value] =
64
+ serde.columns
65
+ .values()
66
+ .map((c) => [c, c.rowValue(newData)])
67
+ .find(([, v]) => v !== undefined) ?? [];
68
+ }
69
+ else {
70
+ [column] = serde.columns;
71
+ // the 2nd and 3rd arguments are only used if the 4th argument is defined, so it's OK to pass undefined here
72
+ value = column.rowValue(newData);
73
+ }
74
+ serde.setOnEntity(oldData, column ? { [column.columnName]: value } : {});
75
+ });
76
+ });
77
+ todo.deletes.forEach((newEntity) => {
78
+ const existing = em.findExistingInstance(newEntity.idTagged);
79
+ // Again it shouldn't really be possible for a deletion to happen without the entity being present in the
80
+ // original em, but just in case we'll skip if we don't find it
81
+ if (!existing)
82
+ fail(`Expected to find existing entity for $ {e.idTagged}`);
83
+ (0, joist_orm_1.getInstanceData)(existing).markDeletedBecauseNotFound();
84
+ });
85
+ });
86
+ }
87
+ // Ensure m2o/rr/poly changes from the new em are reflected in the original em
88
+ #syncReferences(entityTodos) {
89
+ const { em } = this;
90
+ Object.values(entityTodos).forEach((todo) => {
91
+ todo.inserts.forEach((newEntity) => {
92
+ const oldEntity = em.findExistingInstance(newEntity.idTagged);
93
+ getReferences(newEntity).forEach((r) => {
94
+ const other = r.isSet ? em.findExistingInstance(r.idTaggedMaybe) : undefined;
95
+ preloadReference(em, r.fieldName, oldEntity, other);
96
+ if (other)
97
+ maybePreloadOtherSide(em, r.fieldName, oldEntity, other);
98
+ });
99
+ });
100
+ todo.updates.forEach((newEntity) => {
101
+ const oldEntity = em.findExistingInstance(newEntity.idTagged);
102
+ getReferences(newEntity)
103
+ .filter((r) => newEntity.changes[r.fieldName].hasChanged)
104
+ .forEach((r) => {
105
+ const other = r.isSet ? em.findExistingInstance(r.idTaggedMaybe) : undefined;
106
+ preloadReference(em, r.fieldName, oldEntity, other);
107
+ if (other)
108
+ maybePreloadOtherSide(em, r.fieldName, oldEntity, other);
109
+ const originalId = newEntity.changes[r.fieldName].originalValue;
110
+ const originalOther = originalId ? em.findExistingInstance(originalId) : undefined;
111
+ if (originalOther)
112
+ maybePreloadOtherSide(em, r.fieldName, oldEntity, originalOther, true);
113
+ });
114
+ // If the entity was soft-deleted, then we need to clear out the caches for any o2m collections that contain it
115
+ if ("deletedAt" in newEntity && newEntity.changes.deletedAt.hasChanged) {
116
+ getReferences(oldEntity).forEach((r) => {
117
+ const other = r.isSet ? em.findExistingInstance(r.idTaggedMaybe) : undefined;
118
+ if (other) {
119
+ const otherSide = getOtherSide(r.fieldName, oldEntity, other);
120
+ if (otherSide instanceof joist_orm_1.OneToManyCollection)
121
+ otherSide.resetIsLoaded();
122
+ }
123
+ });
124
+ }
125
+ });
126
+ todo.deletes.forEach((newEntity) => {
127
+ const oldEntity = em.findExistingInstance(newEntity.idTagged);
128
+ getReferences(newEntity).forEach((r) => {
129
+ // Since both old and new entities are marked as deleted, we can't just go looking through their relations
130
+ // for the other side's id since this will error. Likewise, we only care about the collection that this
131
+ // entity used to belong to in the old em so we can remove it. So just grab the other id directly from the
132
+ // old entity's data and then preload its other side relation.
133
+ const entityOrId = (0, joist_orm_1.getInstanceData)(oldEntity).data[r.fieldName];
134
+ const originalOther = entityOrId
135
+ ? em.findExistingInstance((0, joist_orm_1.isEntity)(entityOrId) ? entityOrId.idTagged : entityOrId)
136
+ : undefined;
137
+ if (originalOther)
138
+ maybePreloadOtherSide(em, r.fieldName, oldEntity, originalOther, true);
139
+ });
140
+ });
141
+ });
142
+ }
143
+ // Ensure m2m changes are propagated from the new em to the original em
144
+ #syncManyToManys(joinRowTodos) {
145
+ const { em } = this;
146
+ const api = (0, EntityManager_1.getEmInternalApi)(em);
147
+ Object.entries(joinRowTodos).forEach(([joinTable, todo]) => {
148
+ const preloads = new Set();
149
+ processJoinRows(em, joinTable, todo.newRows, preloads, (oldEntity, entities) => entities.push(oldEntity));
150
+ processJoinRows(em, joinTable, todo.deletedRows, preloads, (oldEntity, entities) => entities.splice(entities.indexOf(oldEntity), 1));
151
+ // Since multiple join rows could reference the same m2m, our processJoinRows doesn't actually call preload() so
152
+ // we need to do it now
153
+ preloads.values().forEach((r) => {
154
+ const id = r.entity.idTagged;
155
+ const entities = api.getPreloadedRelation(id, r.fieldName);
156
+ // unique our entities in case somehow an entity was inserted by multiple join rows
157
+ api.setPreloadedRelation(id, r.fieldName, [...new Set(entities)]);
158
+ r.preload();
159
+ });
160
+ });
161
+ }
162
+ // Make sure any unloaded relations on net new entities are marked as loaded. We should have already preloaded all
163
+ // concrete references in a previous step. So we just need to load collections (plus o2os) if they haven't already
164
+ // been preloaded by another step. Since nothing else preloaded them, they must have no data so we can just set
165
+ // them to an empty array.
166
+ #preloadUnloadedRelations(entityTodos) {
167
+ const { em } = this;
168
+ Object.entries(entityTodos).forEach(([, todo]) => {
169
+ todo.inserts.forEach((newEntity) => {
170
+ const oldEntity = em.findExistingInstance(newEntity.idTagged);
171
+ getCollections(oldEntity)
172
+ .filter((r) => !r.isPreloaded)
173
+ .forEach((r) => {
174
+ (0, EntityManager_1.getEmInternalApi)(em).setPreloadedRelation(oldEntity.idTagged, r.fieldName, []);
175
+ r.preload();
176
+ });
177
+ });
178
+ });
179
+ }
180
+ }
181
+ exports.RunPlugin = RunPlugin;
182
+ function preloadReference(em, fieldName, entity, other) {
183
+ // Preload for concrete references doesn't make us of the global preloaded cache. It just looks at its owner's data
184
+ // to get a key, then checks if that entity is already in the em and uses that if so. So we just need to set the
185
+ // owner's data to have the correct key then we can call preload since all entities should already be in the original
186
+ // em
187
+ const reference = entity[fieldName];
188
+ reference.unload();
189
+ const { data } = (0, joist_orm_1.getInstanceData)(entity);
190
+ data[fieldName] = other?.idTagged;
191
+ if (!entity.isDeletedEntity)
192
+ reference.preload();
193
+ }
194
+ function getOtherSide(fieldName, entity, other) {
195
+ const meta = (0, joist_orm_1.getMetadata)(entity);
196
+ const metas = new Set([meta, ...meta.baseTypes]);
197
+ return (0, joist_orm_1.getRelations)(other)
198
+ .values()
199
+ .filter((r) => r instanceof joist_orm_1.OneToOneReferenceImpl || r instanceof joist_orm_1.OneToManyCollection)
200
+ .find((r) => metas.has(r.otherMeta) && r.otherFieldName === fieldName);
201
+ }
202
+ function maybePreloadOtherSide(em, fieldName, entity, other, remove = false) {
203
+ const meta = (0, joist_orm_1.getMetadata)(entity);
204
+ const otherSide = getOtherSide(fieldName, entity, other);
205
+ // If our other side is a large o2m then we can just ignore it, since it isn't loadable regardless
206
+ if (!otherSide)
207
+ return;
208
+ // Since our preload scans the entire em, we only need to run it once per collection/o2o. We clear out preloads
209
+ // when we start the afterWrite, so if anything is preloaded we know we put it there.
210
+ if (otherSide.isPreloaded)
211
+ return;
212
+ let otherEntities;
213
+ if (otherSide instanceof joist_orm_1.OneToOneReferenceImpl) {
214
+ otherEntities = remove ? [] : [entity];
215
+ }
216
+ else if (otherSide instanceof joist_orm_1.OneToManyCollection) {
217
+ // Scan the entire em for (non-deleted) entities of our type that reference the other side
218
+ otherEntities = em
219
+ .getEntities(meta.cstr)
220
+ .values()
221
+ .filter((e) => !e.isDeletedEntity)
222
+ .filter((e) => e[otherSide.otherFieldName].idTaggedMaybe === other.idTagged)
223
+ .toArray();
224
+ }
225
+ else {
226
+ (0, joist_orm_1.assertNever)(otherSide);
227
+ }
228
+ // We don't need to worry about order here because o2ms do their own sorting internally and o2os are inherently
229
+ // unordered (since it's just a single entity)
230
+ (0, EntityManager_1.getEmInternalApi)(em).setPreloadedRelation(other.idTagged, otherSide.fieldName, otherEntities);
231
+ otherSide.preload();
232
+ // This method is confusingly name, what it actually does is clear out the sorted caches that m2m uses to avoid
233
+ // sorting on every `.get` call. Since we just preloaded the collection with new data, we know these caches need to
234
+ // be cleared
235
+ if (otherSide instanceof joist_orm_1.OneToManyCollection)
236
+ otherSide.resetIsLoaded();
237
+ }
238
+ function processJoinRows(em, joinTable, rows, preloads, callback) {
239
+ const api = (0, EntityManager_1.getEmInternalApi)(em);
240
+ rows.forEach((row) => {
241
+ // A join row's `columns` is always an object with two key/value pairs, one for each side of the m2m
242
+ const [[col1, e1], [col2, e2]] = Object.entries(row.columns);
243
+ [
244
+ // Each join row needs to append/remove from both sides of the m2m. So we need to do the same operation once for
245
+ // each side.
246
+ [col1, e1, e2],
247
+ [col2, e2, e1],
248
+ ].forEach(([column, newEntity, newOther]) => {
249
+ const { idTagged: id } = newEntity;
250
+ const oldEntity = em.findExistingInstance(id);
251
+ if (oldEntity.isDeletedEntity)
252
+ return;
253
+ const newM2m = getManyToManys(newEntity).find((r) => r.joinTableName === joinTable && r.columnName === column);
254
+ const { fieldName } = newM2m;
255
+ const oldM2m = oldEntity[fieldName];
256
+ let entities;
257
+ if (preloads.has(oldM2m)) {
258
+ // If a previous join row has already preloaded this relation, then we can just append/remove from the
259
+ // existing preloaded data.
260
+ entities = api.getPreloadedRelation(id, fieldName);
261
+ }
262
+ else if (oldM2m.isLoaded) {
263
+ // The order here is important. M2ms are returned in the order their join rows were inserted, so we need to
264
+ // make sure we match that behavior here. So we get all the extant rows first and then append each new row
265
+ // in order from there. Removals are fine since they'll modify the array in place and the correct order will
266
+ // be preserved.
267
+ entities = oldM2m.get;
268
+ }
269
+ else if (newEntity.isNewEntity) {
270
+ // If this is a new entity, then all the join rows referencing it must also be inserts. So we can just use an
271
+ // empty array initially and inserts will be appended to it.
272
+ entities = [];
273
+ }
274
+ else {
275
+ fail(`Expected ${fieldName} to be loaded`);
276
+ }
277
+ callback(em.findExistingInstance(newOther.idTagged), entities);
278
+ api.setPreloadedRelation(id, fieldName, entities);
279
+ // We only need to preload the m2m once, but multiple join rows could reference it, so we keep track of which m2ms
280
+ // need to be preloaded as we work, then actually call preload() at the end once we're done.
281
+ preloads.add(oldM2m);
282
+ });
283
+ });
284
+ }
285
+ function getReferences(entity) {
286
+ return (0, joist_orm_1.getRelations)(entity)
287
+ .values()
288
+ .filter((r) => r instanceof joist_orm_1.ManyToOneReferenceImpl ||
289
+ r instanceof joist_orm_1.ReactiveReferenceImpl ||
290
+ r instanceof joist_orm_1.PolymorphicReferenceImpl);
291
+ }
292
+ function getManyToManys(entity) {
293
+ return (0, joist_orm_1.getRelations)(entity)
294
+ .values()
295
+ .filter((r) => r instanceof joist_orm_1.ManyToManyCollection);
296
+ }
297
+ function getCollections(entity) {
298
+ return (0, joist_orm_1.getRelations)(entity)
299
+ .values()
300
+ .filter((r) => r instanceof joist_orm_1.ManyToManyCollection || r instanceof joist_orm_1.OneToManyCollection || r instanceof joist_orm_1.OneToOneReferenceImpl);
301
+ }
302
+ //# sourceMappingURL=RunPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunPlugin.js","sourceRoot":"","sources":["../src/RunPlugin.ts"],"names":[],"mappings":"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"}
package/build/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { MatchedEntity } from "./toMatchEntity";
2
2
  export { Context } from "./context";
3
3
  export { ContextFn, makeRun, makeRunEach, newContext, run, runEach } from "./run";
4
+ export { RunPlugin } from "./RunPlugin";
4
5
  export { seed } from "./seed";
5
6
  export { toMatchEntity } from "./toMatchEntity";
6
7
  export interface CustomMatcherResult {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAClF,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,MAAM,CAAC;CACvB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,IAAI,CAAC;QACb,UAAU,QAAQ,CAAC,CAAC,SAAS,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE;YACvD,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC;SAChE;KACF;CACF;AAED,OAAO,QAAQ,QAAQ,CAAC;IACtB,UAAU,QAAQ,CAAC,CAAC,SAAS,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO;QAC5D,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC;KAChE;CACF;AAGD,OAAO,QAAQ,UAAU,CAAC;IACxB,UAAU,QAAQ,CAAC,CAAC,GAAG,OAAO;QAC5B,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC;KAChE;CACF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,uBAUtD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,MAAM,CAAC;CACvB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,IAAI,CAAC;QACb,UAAU,QAAQ,CAAC,CAAC,SAAS,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE;YACvD,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC;SAChE;KACF;CACF;AAED,OAAO,QAAQ,QAAQ,CAAC;IACtB,UAAU,QAAQ,CAAC,CAAC,SAAS,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO;QAC5D,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC;KAChE;CACF;AAGD,OAAO,QAAQ,UAAU,CAAC;IACxB,UAAU,QAAQ,CAAC,CAAC,GAAG,OAAO;QAC5B,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC;KAChE;CACF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,uBAUtD"}
package/build/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toMatchEntity = exports.seed = exports.runEach = exports.run = exports.newContext = exports.makeRunEach = exports.makeRun = void 0;
3
+ exports.toMatchEntity = exports.seed = exports.RunPlugin = exports.runEach = exports.run = exports.newContext = exports.makeRunEach = exports.makeRun = void 0;
4
4
  exports.areEntitiesEqual = areEntitiesEqual;
5
5
  const joist_orm_1 = require("joist-orm");
6
6
  var run_1 = require("./run");
@@ -9,6 +9,8 @@ Object.defineProperty(exports, "makeRunEach", { enumerable: true, get: function
9
9
  Object.defineProperty(exports, "newContext", { enumerable: true, get: function () { return run_1.newContext; } });
10
10
  Object.defineProperty(exports, "run", { enumerable: true, get: function () { return run_1.run; } });
11
11
  Object.defineProperty(exports, "runEach", { enumerable: true, get: function () { return run_1.runEach; } });
12
+ var RunPlugin_1 = require("./RunPlugin");
13
+ Object.defineProperty(exports, "RunPlugin", { enumerable: true, get: function () { return RunPlugin_1.RunPlugin; } });
12
14
  var seed_1 = require("./seed");
13
15
  Object.defineProperty(exports, "seed", { enumerable: true, get: function () { return seed_1.seed; } });
14
16
  var toMatchEntity_1 = require("./toMatchEntity");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AA8CA,4CAUC;AAxDD,yCAAuC;AAGvC,6BAAkF;AAA9D,8FAAA,OAAO,OAAA;AAAE,kGAAA,WAAW,OAAA;AAAE,iGAAA,UAAU,OAAA;AAAE,0FAAA,GAAG,OAAA;AAAE,8FAAA,OAAO,OAAA;AAClE,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AACb,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AA4BtB;;;;;;;;;;;;GAYG;AACH,SAAgB,gBAAgB,CAAC,CAAU,EAAE,CAAU;IACrD,IAAI,CAAC,YAAY,sBAAU,IAAI,CAAC,YAAY,sBAAU,EAAE,CAAC;QACvD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACzF,CAAC;SAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,YAAY,sBAAU,EAAE,CAAC;QAC5D,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;IACpB,CAAC;SAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,YAAY,sBAAU,EAAE,CAAC;QAC5D,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AA+CA,4CAUC;AAzDD,yCAAuC;AAGvC,6BAAkF;AAA9D,8FAAA,OAAO,OAAA;AAAE,kGAAA,WAAW,OAAA;AAAE,iGAAA,UAAU,OAAA;AAAE,0FAAA,GAAG,OAAA;AAAE,8FAAA,OAAO,OAAA;AAClE,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AACb,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AA4BtB;;;;;;;;;;;;GAYG;AACH,SAAgB,gBAAgB,CAAC,CAAU,EAAE,CAAU;IACrD,IAAI,CAAC,YAAY,sBAAU,IAAI,CAAC,YAAY,sBAAU,EAAE,CAAC;QACvD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACzF,CAAC;SAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,YAAY,sBAAU,EAAE,CAAC;QAC5D,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;IACpB,CAAC;SAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,YAAY,sBAAU,EAAE,CAAC;QAC5D,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEtC,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC;AAEvD,6DAA6D;AAC7D,wBAAsB,GAAG,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,EAC5C,GAAG,EAAE,CAAC,EACN,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,EAC/B,SAAS,GAAE,SAAS,CAAC,CAAC,CAAc,GACnC,OAAO,CAAC,CAAC,CAAC,CAQZ;AAED,yDAAyD;AACzD,wBAAgB,OAAO,CAAC,CAAC,SAAS,OAAO,EACvC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,GACtB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAE5D;AAED,qFAAqF;AACrF,wBAAsB,OAAO,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC,EACnD,GAAG,EAAE,CAAC,EACN,QAAQ,EAAE,MAAM,CAAC,EAAE,EACnB,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,EACzC,SAAS,GAAE,SAAS,CAAC,CAAC,CAAc,GACnC,OAAO,CAAC,CAAC,EAAE,CAAC,CAQd;AAED,6DAA6D;AAC7D,wBAAgB,WAAW,CAAC,CAAC,SAAS,OAAO,EAC3C,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,GACtB,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,CAEhG;AAED,uFAAuF;AACvF,wBAAgB,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAMvD"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEtC,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC;AAEvD,6DAA6D;AAC7D,wBAAsB,GAAG,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,EAC5C,GAAG,EAAE,CAAC,EACN,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,EAC/B,SAAS,GAAE,SAAS,CAAC,CAAC,CAAc,GACnC,OAAO,CAAC,CAAC,CAAC,CAUZ;AAED,yDAAyD;AACzD,wBAAgB,OAAO,CAAC,CAAC,SAAS,OAAO,EACvC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,GACtB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAE5D;AAED,qFAAqF;AACrF,wBAAsB,OAAO,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC,EACnD,GAAG,EAAE,CAAC,EACN,QAAQ,EAAE,MAAM,CAAC,EAAE,EACnB,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,EACzC,SAAS,GAAE,SAAS,CAAC,CAAC,CAAc,GACnC,OAAO,CAAC,CAAC,EAAE,CAAC,CAad;AAED,6DAA6D;AAC7D,wBAAgB,WAAW,CAAC,CAAC,SAAS,OAAO,EAC3C,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,GACtB,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,CAEhG;AAED,uFAAuF;AACvF,wBAAgB,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAMvD"}
package/build/run.js CHANGED
@@ -7,14 +7,17 @@ exports.makeRunEach = makeRunEach;
7
7
  exports.newContext = newContext;
8
8
  const joist_orm_1 = require("joist-orm");
9
9
  const joist_utils_1 = require("joist-utils");
10
+ const RunPlugin_1 = require("./RunPlugin");
10
11
  /** Runs the `fn` in a dedicated / non-test Unit of Work . */
11
12
  async function run(ctx, fn, contextFn = newContext) {
12
13
  const { em } = ctx;
13
14
  // Ensure any test data we've setup is flushed
14
15
  await em.flush();
15
- const result = await fn(await contextFn(ctx));
16
+ const newCtx = await contextFn(ctx);
17
+ const plugin = new RunPlugin_1.RunPlugin(em);
18
+ newCtx.em.addPlugin(plugin);
19
+ const result = await fn(newCtx);
16
20
  // We expect `fn` (i.e. a resolver) to do its own UoW management, so don't flush.
17
- await em.refresh({ deepLoad: true });
18
21
  return mapResultToOriginalEm(em, result);
19
22
  }
20
23
  /** Creates a `run` with a custom `newContext` method. */
@@ -26,9 +29,12 @@ async function runEach(ctx, valuesFn, fn, contextFn = newContext) {
26
29
  const { em } = ctx;
27
30
  // Ensure any test data we've setup is flushed
28
31
  await em.flush();
29
- const results = await Promise.all(valuesFn().map(async (value) => fn(await contextFn(ctx), value)));
30
- // We expect `fn` (i.e. a resolver) to do its own UoW management, so don't flush.
31
- await em.refresh({ deepLoad: true });
32
+ const plugin = new RunPlugin_1.RunPlugin(em);
33
+ const results = await Promise.all(valuesFn().map(async (value) => {
34
+ const newCtx = await contextFn(ctx);
35
+ newCtx.em.addPlugin(plugin);
36
+ return fn(newCtx, value);
37
+ }));
32
38
  return mapResultToOriginalEm(em, results);
33
39
  }
34
40
  /** Creates a `runEach` with a custom `newContext` method. */
package/build/run.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "joist-test-utils",
3
- "version": "1.283.0",
3
+ "version": "1.284.0",
4
4
  "license": "MIT",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -11,8 +11,8 @@
11
11
  "build"
12
12
  ],
13
13
  "dependencies": {
14
- "joist-orm": "1.283.0",
15
- "joist-utils": "1.283.0"
14
+ "joist-orm": "1.284.0",
15
+ "joist-utils": "1.284.0"
16
16
  },
17
17
  "devDependencies": {
18
18
  "@swc/core": "^1.13.20",