ts-patch-mongoose 1.1.3 → 1.1.5

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.
@@ -1,4 +1,4 @@
1
- import mongoose, { model } from 'mongoose'
1
+ import mongoose, { Types, model } from 'mongoose'
2
2
 
3
3
  import UserSchema from './schemas/UserSchema'
4
4
  import { patchHistoryPlugin } from '../src/plugin'
@@ -36,99 +36,248 @@ describe('plugin - event created & patch history disabled', () => {
36
36
  await mongoose.connection.collection('history').deleteMany({})
37
37
  })
38
38
 
39
- it('should save and emit one create event', async () => {
40
- const john = new User({ name: 'John', role: 'user' })
41
- await john.save()
42
-
43
- const history = await History.find({})
44
- expect(history).toHaveLength(0)
45
-
46
- expect(em.emit).toHaveBeenCalledTimes(1)
47
- expect(em.emit).toHaveBeenCalledWith(USER_CREATED, {
48
- doc: expect.objectContaining({
49
- _id: john._id,
50
- name: john.name,
51
- role: john.role,
52
- createdAt: john.createdAt,
53
- updatedAt: john.updatedAt
39
+ describe('normal cases', () => {
40
+ it('should save() and emit one create event', async () => {
41
+ const john = new User({ name: 'John', role: 'user' })
42
+ await john.save()
43
+
44
+ const history = await History.find({})
45
+ expect(history).toHaveLength(0)
46
+
47
+ expect(em.emit).toHaveBeenCalledTimes(1)
48
+ expect(em.emit).toHaveBeenCalledWith(USER_CREATED, {
49
+ doc: expect.objectContaining({
50
+ _id: john._id,
51
+ name: john.name,
52
+ role: john.role,
53
+ createdAt: john.createdAt,
54
+ updatedAt: john.updatedAt
55
+ })
54
56
  })
55
57
  })
56
- })
57
58
 
58
- it('should create and emit one create event', async () => {
59
- const user = await User.create({ name: 'John', role: 'user' })
59
+ it('should create() and emit one create event', async () => {
60
+ const user = await User.create({ name: 'John', role: 'user' })
60
61
 
61
- const history = await History.find({})
62
- expect(history).toHaveLength(0)
62
+ const history = await History.find({})
63
+ expect(history).toHaveLength(0)
63
64
 
64
- expect(em.emit).toHaveBeenCalledTimes(1)
65
- expect(em.emit).toHaveBeenCalledWith(USER_CREATED, {
66
- doc: expect.objectContaining({
67
- _id: user._id,
68
- name: user.name,
69
- role: user.role,
70
- createdAt: user.createdAt,
71
- updatedAt: user.updatedAt
65
+ expect(em.emit).toHaveBeenCalledTimes(1)
66
+ expect(em.emit).toHaveBeenCalledWith(USER_CREATED, {
67
+ doc: expect.objectContaining({
68
+ _id: user._id,
69
+ name: user.name,
70
+ role: user.role,
71
+ createdAt: user.createdAt,
72
+ updatedAt: user.updatedAt
73
+ })
72
74
  })
73
75
  })
74
- })
75
76
 
76
- it('should insertMany and emit one create event', async () => {
77
- const [user] = await User.insertMany([{ name: 'John', role: 'user' }])
77
+ it('should insertMany() and emit three create events', async () => {
78
+ const users = await User.insertMany([
79
+ { name: 'John', role: 'user' },
80
+ { name: 'Alice', role: 'user' },
81
+ { name: 'Bob', role: 'user' }
82
+ ])
83
+
84
+ const [john, alice, bob] = users
78
85
 
79
- const history = await History.find({})
80
- expect(history).toHaveLength(0)
86
+ const history = await History.find({})
87
+ expect(history).toHaveLength(0)
81
88
 
82
- expect(em.emit).toHaveBeenCalledTimes(1)
83
- expect(em.emit).toHaveBeenCalledWith(USER_CREATED, {
84
- doc: expect.objectContaining({
85
- _id: user._id,
86
- name: user.name,
87
- role: user.role,
88
- createdAt: user.createdAt,
89
- updatedAt: user.updatedAt
89
+ expect(em.emit).toHaveBeenCalledTimes(3)
90
+ expect(em.emit).toHaveBeenNthCalledWith(1, USER_CREATED, {
91
+ doc: expect.objectContaining({
92
+ _id: john._id,
93
+ name: john.name,
94
+ role: john.role,
95
+ createdAt: john.createdAt,
96
+ updatedAt: john.updatedAt
97
+ })
98
+ })
99
+ expect(em.emit).toHaveBeenNthCalledWith(2, USER_CREATED, {
100
+ doc: expect.objectContaining({
101
+ _id: alice._id,
102
+ name: alice.name,
103
+ role: alice.role,
104
+ createdAt: alice.createdAt,
105
+ updatedAt: alice.updatedAt
106
+ })
107
+ })
108
+ expect(em.emit).toHaveBeenNthCalledWith(3, USER_CREATED, {
109
+ doc: expect.objectContaining({
110
+ _id: bob._id,
111
+ name: bob.name,
112
+ role: bob.role,
113
+ createdAt: bob.createdAt,
114
+ updatedAt: bob.updatedAt
115
+ })
90
116
  })
91
117
  })
92
118
  })
93
119
 
94
- it('should insertMany and emit three create events', async () => {
95
- const users = await User.insertMany([
96
- { name: 'John', role: 'user' },
97
- { name: 'Alice', role: 'user' },
98
- { name: 'Bob', role: 'user' }
99
- ])
100
-
101
- const [john, alice, bob] = users
102
-
103
- const history = await History.find({})
104
- expect(history).toHaveLength(0)
105
-
106
- expect(em.emit).toHaveBeenCalledTimes(3)
107
- expect(em.emit).toHaveBeenNthCalledWith(1, USER_CREATED, {
108
- doc: expect.objectContaining({
109
- _id: john._id,
110
- name: john.name,
111
- role: john.role,
112
- createdAt: john.createdAt,
113
- updatedAt: john.updatedAt
120
+ describe('upsert cases', () => {
121
+ it('should update() + upsert and emit one create event', async () => {
122
+ await User.update(
123
+ { name: 'John' },
124
+ { name: 'John', role: 'admin' },
125
+ { upsert: true }
126
+ )
127
+
128
+ const user = await User.findOne({ name: 'John', role: 'admin' })
129
+ expect(user).not.toBeNull()
130
+
131
+ const history = await History.find({})
132
+ expect(history).toHaveLength(0)
133
+
134
+ expect(em.emit).toHaveBeenCalledTimes(1)
135
+ expect(em.emit).toHaveBeenCalledWith(USER_CREATED, {
136
+ doc: expect.objectContaining({
137
+ _id: user?._id,
138
+ name: user?.name,
139
+ role: user?.role
140
+ // Upsert does not set createdAt and updatedAt
141
+ })
142
+ })
143
+ })
144
+
145
+ it('should updateOne() + upsert and emit one create event', async () => {
146
+ await User.updateOne(
147
+ { name: 'John' },
148
+ { name: 'John', role: 'admin' },
149
+ { upsert: true }
150
+ )
151
+
152
+ const user = await User.findOne({ name: 'John', role: 'admin' })
153
+ expect(user).not.toBeNull()
154
+
155
+ const history = await History.find({})
156
+ expect(history).toHaveLength(0)
157
+
158
+ expect(em.emit).toHaveBeenCalledTimes(1)
159
+ expect(em.emit).toHaveBeenCalledWith(USER_CREATED, {
160
+ doc: expect.objectContaining({
161
+ _id: user?._id,
162
+ name: user?.name,
163
+ role: user?.role
164
+ // Upsert does not set createdAt and updatedAt
165
+ })
166
+ })
167
+ })
168
+
169
+ it('should replaceOne() + upsert and emit one create event', async () => {
170
+ await User.replaceOne(
171
+ { name: 'John' },
172
+ { name: 'John', role: 'admin' },
173
+ { upsert: true }
174
+ )
175
+
176
+ const user = await User.findOne({ name: 'John', role: 'admin' })
177
+ expect(user).not.toBeNull()
178
+
179
+ const history = await History.find({})
180
+ expect(history).toHaveLength(0)
181
+
182
+ expect(em.emit).toHaveBeenCalledTimes(1)
183
+ expect(em.emit).toHaveBeenCalledWith(USER_CREATED, {
184
+ doc: expect.objectContaining({
185
+ _id: user?._id,
186
+ name: user?.name,
187
+ role: user?.role
188
+ // Upsert does not set createdAt and updatedAt
189
+ })
114
190
  })
115
191
  })
116
- expect(em.emit).toHaveBeenNthCalledWith(2, USER_CREATED, {
117
- doc: expect.objectContaining({
118
- _id: alice._id,
119
- name: alice.name,
120
- role: alice.role,
121
- createdAt: alice.createdAt,
122
- updatedAt: alice.updatedAt
192
+
193
+ it('should updateMany() + upsert and emit one create event', async () => {
194
+ await User.updateMany(
195
+ { name: { $in: ['John', 'Alice', 'Bob'] } },
196
+ { name: 'Steve', role: 'admin' },
197
+ { upsert: true }
198
+ )
199
+
200
+ const users = await User.findOne({ name: 'Steve', role: 'admin' })
201
+
202
+ const history = await History.find({})
203
+ expect(history).toHaveLength(0)
204
+
205
+ expect(em.emit).toHaveBeenCalledTimes(1)
206
+ expect(em.emit).toHaveBeenNthCalledWith(1, USER_CREATED, {
207
+ doc: expect.objectContaining({
208
+ _id: users?._id,
209
+ name: users?.name,
210
+ role: users?.role
211
+ // Upsert does not set createdAt and updatedAt
212
+ })
213
+ })
214
+ })
215
+
216
+ it('should findOneAndUpdate() + upsert and emit one create event', async () => {
217
+ await User.findOneAndUpdate(
218
+ { name: 'John' },
219
+ { name: 'John', role: 'admin' },
220
+ { upsert: true }
221
+ )
222
+
223
+ const user = await User.findOne({ name: 'John', role: 'admin' })
224
+ expect(user).not.toBeNull()
225
+
226
+ const history = await History.find({})
227
+ expect(history).toHaveLength(0)
228
+
229
+ expect(em.emit).toHaveBeenCalledTimes(1)
230
+ expect(em.emit).toHaveBeenCalledWith(USER_CREATED, {
231
+ doc: expect.objectContaining({
232
+ _id: user?._id,
233
+ name: user?.name,
234
+ role: user?.role
235
+ // Upsert does not set createdAt and updatedAt
236
+ })
123
237
  })
124
238
  })
125
- expect(em.emit).toHaveBeenNthCalledWith(3, USER_CREATED, {
126
- doc: expect.objectContaining({
127
- _id: bob._id,
128
- name: bob.name,
129
- role: bob.role,
130
- createdAt: bob.createdAt,
131
- updatedAt: bob.updatedAt
239
+
240
+ it('should findOneAndReplace() + upsert and emit one create event', async () => {
241
+ await User.findOneAndReplace(
242
+ { name: 'John' },
243
+ { name: 'John', role: 'admin' },
244
+ { upsert: true }
245
+ )
246
+
247
+ const user = await User.findOne({ name: 'John', role: 'admin' })
248
+ expect(user).not.toBeNull()
249
+
250
+ const history = await History.find({})
251
+ expect(history).toHaveLength(0)
252
+
253
+ expect(em.emit).toHaveBeenCalledTimes(1)
254
+ expect(em.emit).toHaveBeenCalledWith(USER_CREATED, {
255
+ doc: expect.objectContaining({
256
+ _id: user?._id,
257
+ name: user?.name,
258
+ role: user?.role
259
+ // Upsert does not set createdAt and updatedAt
260
+ })
261
+ })
262
+ })
263
+
264
+ it('should findByIdAndUpdate() + upsert and emit one create event', async () => {
265
+ const _id = new Types.ObjectId()
266
+ await User.findByIdAndUpdate(_id, { name: 'John', role: 'admin' }, { upsert: true })
267
+
268
+ const user = await User.findOne({ name: 'John', role: 'admin' })
269
+ expect(user).not.toBeNull()
270
+
271
+ const history = await History.find({})
272
+ expect(history).toHaveLength(0)
273
+
274
+ expect(em.emit).toHaveBeenCalledTimes(1)
275
+ expect(em.emit).toHaveBeenCalledWith(USER_CREATED, {
276
+ doc: expect.objectContaining({
277
+ _id: user?._id,
278
+ name: user?.name,
279
+ role: user?.role
280
+ })
132
281
  })
133
282
  })
134
283
  })
@@ -1,5 +1,7 @@
1
1
  import mongoose, { model } from 'mongoose'
2
2
 
3
+ import type { ToObjectOptions } from 'mongoose'
4
+
3
5
  import UserSchema from './schemas/UserSchema'
4
6
  import { patchHistoryPlugin } from '../src/plugin'
5
7
  import History from '../src/models/History'
@@ -13,6 +15,11 @@ jest.mock('../src/em', () => {
13
15
  }
14
16
  })
15
17
 
18
+ const toObjectOptions: ToObjectOptions = {
19
+ depopulate: true,
20
+ virtuals: false
21
+ }
22
+
16
23
  describe('plugin - event delete & patch history disabled', () => {
17
24
  const uri = `${globalThis.__MONGO_URI__}${globalThis.__MONGO_DB_NAME__}`
18
25
 
@@ -36,7 +43,20 @@ describe('plugin - event delete & patch history disabled', () => {
36
43
  await mongoose.connection.collection('history').deleteMany({})
37
44
  })
38
45
 
39
- it('should deleteMany and emit two delete events', async () => {
46
+ it('should remove() and emit one delete event', async () => {
47
+ const john = await User.create({ name: 'John', role: 'user' })
48
+ await john.remove()
49
+
50
+ const history = await History.find({})
51
+ expect(history).toHaveLength(0)
52
+
53
+ expect(em.emit).toHaveBeenCalledTimes(1)
54
+ expect(em.emit).toHaveBeenCalledWith(USER_DELETED, {
55
+ oldDoc: expect.objectContaining(john.toObject(toObjectOptions))
56
+ })
57
+ })
58
+
59
+ it('should remove() and emit two delete events', async () => {
40
60
  const users = await User.create([
41
61
  { name: 'John', role: 'user' },
42
62
  { name: 'Alice', role: 'user' },
@@ -45,21 +65,25 @@ describe('plugin - event delete & patch history disabled', () => {
45
65
 
46
66
  const [john, alice] = users
47
67
 
48
- await User.deleteMany({ role: 'user' }).exec()
68
+ await User.remove({ role: 'user' }).exec()
69
+
70
+ const remaining = await User.find({})
71
+
72
+ expect(remaining).toHaveLength(1)
49
73
 
50
74
  const history = await History.find({})
51
75
  expect(history).toHaveLength(0)
52
76
 
53
77
  expect(em.emit).toHaveBeenCalledTimes(2)
54
78
  expect(em.emit).toHaveBeenCalledWith(USER_DELETED, {
55
- oldDoc: expect.objectContaining(john.toObject({ depopulate: true }))
79
+ oldDoc: expect.objectContaining(john.toObject(toObjectOptions))
56
80
  })
57
81
  expect(em.emit).toHaveBeenCalledWith(USER_DELETED, {
58
- oldDoc: expect.objectContaining(alice.toObject({ depopulate: true }))
82
+ oldDoc: expect.objectContaining(alice.toObject(toObjectOptions))
59
83
  })
60
84
  })
61
85
 
62
- it('should deleteMany and emit one delete event { single: true }', async () => {
86
+ it('should remove() and emit one delete event { single: true }', async () => {
63
87
  const users = await User.create([
64
88
  { name: 'John', role: 'user' },
65
89
  { name: 'Alice', role: 'user' },
@@ -68,18 +92,18 @@ describe('plugin - event delete & patch history disabled', () => {
68
92
 
69
93
  const [john] = users
70
94
 
71
- await User.deleteMany({ role: 'user' }, { single: true }).exec()
95
+ await User.remove({ role: 'user' }, { single: true }).exec()
72
96
 
73
97
  const history = await History.find({})
74
98
  expect(history).toHaveLength(0)
75
99
 
76
100
  expect(em.emit).toHaveBeenCalledTimes(1)
77
101
  expect(em.emit).toHaveBeenCalledWith(USER_DELETED, {
78
- oldDoc: expect.objectContaining(john.toObject({ depopulate: true }))
102
+ oldDoc: expect.objectContaining(john.toObject(toObjectOptions))
79
103
  })
80
104
  })
81
105
 
82
- it('should deleteOne and emit one delete event', async () => {
106
+ it('should findOneAndDelete() and emit one delete event', async () => {
83
107
  const users = await User.create([
84
108
  { name: 'John', role: 'user' },
85
109
  { name: 'Alice', role: 'user' },
@@ -88,18 +112,18 @@ describe('plugin - event delete & patch history disabled', () => {
88
112
 
89
113
  const [john] = users
90
114
 
91
- await User.deleteOne({ role: 'user' }).exec()
115
+ await User.findOneAndDelete({ role: 'user' }).exec()
92
116
 
93
117
  const history = await History.find({})
94
118
  expect(history).toHaveLength(0)
95
119
 
96
120
  expect(em.emit).toHaveBeenCalledTimes(1)
97
121
  expect(em.emit).toHaveBeenCalledWith(USER_DELETED, {
98
- oldDoc: expect.objectContaining(john.toObject({ depopulate: true }))
122
+ oldDoc: expect.objectContaining(john.toObject(toObjectOptions))
99
123
  })
100
124
  })
101
125
 
102
- it('should findByIdAndDelete and emit one delete event', async () => {
126
+ it('should findOneAndRemove() and emit one delete event', async () => {
103
127
  const users = await User.create([
104
128
  { name: 'John', role: 'user' },
105
129
  { name: 'Alice', role: 'user' },
@@ -108,18 +132,18 @@ describe('plugin - event delete & patch history disabled', () => {
108
132
 
109
133
  const [john] = users
110
134
 
111
- await User.findByIdAndDelete(john._id).exec()
135
+ await User.findOneAndRemove({ role: 'user' }).exec()
112
136
 
113
137
  const history = await History.find({})
114
138
  expect(history).toHaveLength(0)
115
139
 
116
140
  expect(em.emit).toHaveBeenCalledTimes(1)
117
141
  expect(em.emit).toHaveBeenCalledWith(USER_DELETED, {
118
- oldDoc: expect.objectContaining(john.toObject({ depopulate: true }))
142
+ oldDoc: expect.objectContaining(john.toObject(toObjectOptions))
119
143
  })
120
144
  })
121
145
 
122
- it('should findByIdAndRemove and emit one delete event', async () => {
146
+ it('should findByIdAndDelete() and emit one delete event', async () => {
123
147
  const users = await User.create([
124
148
  { name: 'John', role: 'user' },
125
149
  { name: 'Alice', role: 'user' },
@@ -128,18 +152,18 @@ describe('plugin - event delete & patch history disabled', () => {
128
152
 
129
153
  const [john] = users
130
154
 
131
- await User.findByIdAndRemove(john._id).exec()
155
+ await User.findByIdAndDelete(john._id).exec()
132
156
 
133
157
  const history = await History.find({})
134
158
  expect(history).toHaveLength(0)
135
159
 
136
160
  expect(em.emit).toHaveBeenCalledTimes(1)
137
161
  expect(em.emit).toHaveBeenCalledWith(USER_DELETED, {
138
- oldDoc: expect.objectContaining(john.toObject({ depopulate: true }))
162
+ oldDoc: expect.objectContaining(john.toObject(toObjectOptions))
139
163
  })
140
164
  })
141
165
 
142
- it('should findOneAndDelete and emit one delete event', async () => {
166
+ it('should findByIdAndRemove() and emit one delete event', async () => {
143
167
  const users = await User.create([
144
168
  { name: 'John', role: 'user' },
145
169
  { name: 'Alice', role: 'user' },
@@ -148,18 +172,18 @@ describe('plugin - event delete & patch history disabled', () => {
148
172
 
149
173
  const [john] = users
150
174
 
151
- await User.findOneAndDelete({ role: 'user' }).exec()
175
+ await User.findByIdAndRemove(john._id).exec()
152
176
 
153
177
  const history = await History.find({})
154
178
  expect(history).toHaveLength(0)
155
179
 
156
180
  expect(em.emit).toHaveBeenCalledTimes(1)
157
181
  expect(em.emit).toHaveBeenCalledWith(USER_DELETED, {
158
- oldDoc: expect.objectContaining(john.toObject({ depopulate: true }))
182
+ oldDoc: expect.objectContaining(john.toObject(toObjectOptions))
159
183
  })
160
184
  })
161
185
 
162
- it('should findOneAndRemove and emit one delete event', async () => {
186
+ it('should deleteOne() and emit one delete event', async () => {
163
187
  const users = await User.create([
164
188
  { name: 'John', role: 'user' },
165
189
  { name: 'Alice', role: 'user' },
@@ -168,18 +192,18 @@ describe('plugin - event delete & patch history disabled', () => {
168
192
 
169
193
  const [john] = users
170
194
 
171
- await User.findOneAndRemove({ role: 'user' }).exec()
195
+ await User.deleteOne({ role: 'user' }).exec()
172
196
 
173
197
  const history = await History.find({})
174
198
  expect(history).toHaveLength(0)
175
199
 
176
200
  expect(em.emit).toHaveBeenCalledTimes(1)
177
201
  expect(em.emit).toHaveBeenCalledWith(USER_DELETED, {
178
- oldDoc: expect.objectContaining(john.toObject({ depopulate: true }))
202
+ oldDoc: expect.objectContaining(john.toObject(toObjectOptions))
179
203
  })
180
204
  })
181
205
 
182
- it('should remove and emit two delete events', async () => {
206
+ it('should deleteMany() and emit two delete events', async () => {
183
207
  const users = await User.create([
184
208
  { name: 'John', role: 'user' },
185
209
  { name: 'Alice', role: 'user' },
@@ -188,25 +212,21 @@ describe('plugin - event delete & patch history disabled', () => {
188
212
 
189
213
  const [john, alice] = users
190
214
 
191
- await User.remove({ role: 'user' }).exec()
192
-
193
- const remaining = await User.find({})
194
-
195
- expect(remaining).toHaveLength(1)
215
+ await User.deleteMany({ role: 'user' }).exec()
196
216
 
197
217
  const history = await History.find({})
198
218
  expect(history).toHaveLength(0)
199
219
 
200
220
  expect(em.emit).toHaveBeenCalledTimes(2)
201
221
  expect(em.emit).toHaveBeenCalledWith(USER_DELETED, {
202
- oldDoc: expect.objectContaining(john.toObject({ depopulate: true }))
222
+ oldDoc: expect.objectContaining(john.toObject(toObjectOptions))
203
223
  })
204
224
  expect(em.emit).toHaveBeenCalledWith(USER_DELETED, {
205
- oldDoc: expect.objectContaining(alice.toObject({ depopulate: true }))
225
+ oldDoc: expect.objectContaining(alice.toObject(toObjectOptions))
206
226
  })
207
227
  })
208
228
 
209
- it('should remove and emit one delete event { single: true }', async () => {
229
+ it('should deleteMany() and emit one delete event { single: true }', async () => {
210
230
  const users = await User.create([
211
231
  { name: 'John', role: 'user' },
212
232
  { name: 'Alice', role: 'user' },
@@ -215,14 +235,14 @@ describe('plugin - event delete & patch history disabled', () => {
215
235
 
216
236
  const [john] = users
217
237
 
218
- await User.remove({ role: 'user' }, { single: true }).exec()
238
+ await User.deleteMany({ role: 'user' }, { single: true }).exec()
219
239
 
220
240
  const history = await History.find({})
221
241
  expect(history).toHaveLength(0)
222
242
 
223
243
  expect(em.emit).toHaveBeenCalledTimes(1)
224
244
  expect(em.emit).toHaveBeenCalledWith(USER_DELETED, {
225
- oldDoc: expect.objectContaining(john.toObject({ depopulate: true }))
245
+ oldDoc: expect.objectContaining(john.toObject(toObjectOptions))
226
246
  })
227
247
  })
228
248
 
@@ -235,20 +255,7 @@ describe('plugin - event delete & patch history disabled', () => {
235
255
 
236
256
  expect(em.emit).toHaveBeenCalledTimes(1)
237
257
  expect(em.emit).toHaveBeenCalledWith(USER_DELETED, {
238
- oldDoc: expect.objectContaining(john.toObject({ depopulate: true }))
239
- })
240
- })
241
-
242
- it('should create then remove and emit one delete event', async () => {
243
- const john = await User.create({ name: 'John', role: 'user' })
244
- await john.remove()
245
-
246
- const history = await History.find({})
247
- expect(history).toHaveLength(0)
248
-
249
- expect(em.emit).toHaveBeenCalledTimes(1)
250
- expect(em.emit).toHaveBeenCalledWith(USER_DELETED, {
251
- oldDoc: expect.objectContaining(john.toObject({ depopulate: true }))
258
+ oldDoc: expect.objectContaining(john.toObject(toObjectOptions))
252
259
  })
253
260
  })
254
261
  })