@bedrockio/model 0.1.0 → 0.1.1
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/README.md +24 -0
- package/dist/cjs/access.js +4 -0
- package/dist/cjs/assign.js +2 -3
- package/dist/cjs/disallowed.js +40 -0
- package/dist/cjs/include.js +3 -2
- package/dist/cjs/load.js +15 -3
- package/dist/cjs/schema.js +29 -12
- package/dist/cjs/search.js +16 -16
- package/dist/cjs/serialization.js +2 -3
- package/dist/cjs/soft-delete.js +234 -55
- package/dist/cjs/testing.js +8 -0
- package/dist/cjs/validation.js +109 -43
- package/package.json +9 -7
- package/src/access.js +3 -0
- package/src/disallowed.js +63 -0
- package/src/include.js +1 -0
- package/src/load.js +12 -1
- package/src/schema.js +25 -5
- package/src/search.js +21 -10
- package/src/soft-delete.js +238 -85
- package/src/testing.js +7 -0
- package/src/validation.js +134 -43
- package/types/access.d.ts +7 -0
- package/types/access.d.ts.map +1 -0
- package/types/assign.d.ts +2 -0
- package/types/assign.d.ts.map +1 -0
- package/types/const.d.ts +9 -0
- package/types/const.d.ts.map +1 -0
- package/types/disallowed.d.ts +2 -0
- package/types/disallowed.d.ts.map +1 -0
- package/types/errors.d.ts +9 -0
- package/types/errors.d.ts.map +1 -0
- package/types/include.d.ts +4 -0
- package/types/include.d.ts.map +1 -0
- package/types/index.d.ts +6 -0
- package/types/index.d.ts.map +1 -0
- package/types/load.d.ts +15 -0
- package/types/load.d.ts.map +1 -0
- package/types/references.d.ts +2 -0
- package/types/references.d.ts.map +1 -0
- package/types/schema.d.ts +71 -0
- package/types/schema.d.ts.map +1 -0
- package/types/search.d.ts +303 -0
- package/types/search.d.ts.map +1 -0
- package/types/serialization.d.ts +6 -0
- package/types/serialization.d.ts.map +1 -0
- package/types/slug.d.ts +2 -0
- package/types/slug.d.ts.map +1 -0
- package/types/soft-delete.d.ts +4 -0
- package/types/soft-delete.d.ts.map +1 -0
- package/types/testing.d.ts +11 -0
- package/types/testing.d.ts.map +1 -0
- package/types/utils.d.ts +8 -0
- package/types/utils.d.ts.map +1 -0
- package/types/validation.d.ts +13 -0
- package/types/validation.d.ts.map +1 -0
- package/types/warn.d.ts +2 -0
- package/types/warn.d.ts.map +1 -0
- package/babel.config.cjs +0 -41
- package/jest.config.js +0 -8
- package/test/assign.test.js +0 -225
- package/test/definitions/custom-model.json +0 -9
- package/test/definitions/special-category.json +0 -18
- package/test/include.test.js +0 -896
- package/test/load.test.js +0 -47
- package/test/references.test.js +0 -71
- package/test/schema.test.js +0 -919
- package/test/search.test.js +0 -652
- package/test/serialization.test.js +0 -748
- package/test/setup.js +0 -27
- package/test/slug.test.js +0 -112
- package/test/soft-delete.test.js +0 -333
- package/test/validation.test.js +0 -1925
package/test/setup.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import mongoose from 'mongoose';
|
|
2
|
-
import logger from '@bedrockio/logger';
|
|
3
|
-
|
|
4
|
-
async function setupDb() {
|
|
5
|
-
try {
|
|
6
|
-
mongoose.set('strictQuery', false);
|
|
7
|
-
await mongoose.connect(global.__MONGO_URI__, {
|
|
8
|
-
// Databases are unique per test file.
|
|
9
|
-
dbName: global.__MONGO_DB_NAME__,
|
|
10
|
-
});
|
|
11
|
-
} catch (err) {
|
|
12
|
-
logger.error(err);
|
|
13
|
-
process.exit(1);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
async function teardownDb() {
|
|
18
|
-
await mongoose.disconnect();
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
beforeAll(async () => {
|
|
22
|
-
await setupDb();
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
afterAll(async () => {
|
|
26
|
-
await teardownDb();
|
|
27
|
-
});
|
package/test/slug.test.js
DELETED
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import { createTestModel } from '../src/testing';
|
|
2
|
-
|
|
3
|
-
describe('slug', () => {
|
|
4
|
-
it('should find a document by its slug', async () => {
|
|
5
|
-
const Post = createTestModel({
|
|
6
|
-
slug: 'String',
|
|
7
|
-
});
|
|
8
|
-
const post = await Post.create({
|
|
9
|
-
slug: 'welcome-to-the-jungle',
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
const found = await Post.findByIdOrSlug('welcome-to-the-jungle');
|
|
13
|
-
expect(post.id).toBe(found.id);
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
it('should find a document by its id', async () => {
|
|
17
|
-
const Post = createTestModel({
|
|
18
|
-
slug: 'String',
|
|
19
|
-
});
|
|
20
|
-
const post = await Post.create({
|
|
21
|
-
slug: 'welcome-to-the-jungle',
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
const found = await Post.findByIdOrSlug(post.id);
|
|
25
|
-
expect(post.id).toBe(found.id);
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
it('should find a deleted document by slug', async () => {
|
|
29
|
-
const Post = createTestModel({
|
|
30
|
-
slug: 'String',
|
|
31
|
-
});
|
|
32
|
-
await Post.create({
|
|
33
|
-
slug: 'welcome-to-the-jungle',
|
|
34
|
-
deleted: true,
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
expect(await Post.findByIdOrSlugDeleted('welcome-to-the-jungle')).not.toBe(
|
|
38
|
-
null
|
|
39
|
-
);
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
it('should find a deleted document by id', async () => {
|
|
43
|
-
const Post = createTestModel({
|
|
44
|
-
slug: 'String',
|
|
45
|
-
});
|
|
46
|
-
const post = await Post.create({
|
|
47
|
-
slug: 'welcome-to-the-jungle',
|
|
48
|
-
deleted: true,
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
expect(await Post.findByIdOrSlugDeleted(post.id)).not.toBe(null);
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
it('should find all documents by slug', async () => {
|
|
55
|
-
const Post = createTestModel({
|
|
56
|
-
slug: 'String',
|
|
57
|
-
});
|
|
58
|
-
await Post.create({
|
|
59
|
-
slug: 'welcome-to-the-jungle',
|
|
60
|
-
deleted: true,
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
await Post.create({
|
|
64
|
-
slug: 'welcome-to-the-bayou',
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
expect(
|
|
68
|
-
await Post.findByIdOrSlugWithDeleted('welcome-to-the-jungle')
|
|
69
|
-
).not.toBe(null);
|
|
70
|
-
expect(
|
|
71
|
-
await Post.findByIdOrSlugWithDeleted('welcome-to-the-bayou')
|
|
72
|
-
).not.toBe(null);
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
it('should find by slug with projection', async () => {
|
|
76
|
-
const Post = createTestModel({
|
|
77
|
-
name: 'String',
|
|
78
|
-
slug: 'String',
|
|
79
|
-
});
|
|
80
|
-
const post = await Post.create({
|
|
81
|
-
name: 'GNR',
|
|
82
|
-
slug: 'welcome-to-the-jungle',
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
const found = await Post.findByIdOrSlug('welcome-to-the-jungle', {
|
|
86
|
-
name: true,
|
|
87
|
-
});
|
|
88
|
-
expect(found.toObject()).toEqual({
|
|
89
|
-
id: post.id,
|
|
90
|
-
name: 'GNR',
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
it('should find by id with projection', async () => {
|
|
95
|
-
const Post = createTestModel({
|
|
96
|
-
name: 'String',
|
|
97
|
-
slug: 'String',
|
|
98
|
-
});
|
|
99
|
-
const post = await Post.create({
|
|
100
|
-
name: 'GNR',
|
|
101
|
-
slug: 'welcome-to-the-jungle',
|
|
102
|
-
});
|
|
103
|
-
|
|
104
|
-
const found = await Post.findByIdOrSlug(post.id, {
|
|
105
|
-
name: true,
|
|
106
|
-
});
|
|
107
|
-
expect(found.toObject()).toEqual({
|
|
108
|
-
id: post.id,
|
|
109
|
-
name: 'GNR',
|
|
110
|
-
});
|
|
111
|
-
});
|
|
112
|
-
});
|
package/test/soft-delete.test.js
DELETED
|
@@ -1,333 +0,0 @@
|
|
|
1
|
-
import { createTestModel } from '../src/testing';
|
|
2
|
-
|
|
3
|
-
describe('soft delete', () => {
|
|
4
|
-
describe('delete', () => {
|
|
5
|
-
it('should soft delete a document', async () => {
|
|
6
|
-
const User = createTestModel({
|
|
7
|
-
name: 'String',
|
|
8
|
-
});
|
|
9
|
-
const user = await User.create({
|
|
10
|
-
name: 'foo',
|
|
11
|
-
});
|
|
12
|
-
await user.delete();
|
|
13
|
-
expect(await user.deletedAt).toBeInstanceOf(Date);
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
it('should soft delete with deleteOne', async () => {
|
|
17
|
-
const User = createTestModel({
|
|
18
|
-
name: 'String',
|
|
19
|
-
});
|
|
20
|
-
await User.create({
|
|
21
|
-
name: 'foo',
|
|
22
|
-
});
|
|
23
|
-
await User.create({
|
|
24
|
-
name: 'bar',
|
|
25
|
-
});
|
|
26
|
-
const res = await User.deleteOne({
|
|
27
|
-
name: 'foo',
|
|
28
|
-
});
|
|
29
|
-
expect(res).toEqual({
|
|
30
|
-
acknowledged: true,
|
|
31
|
-
deletedCount: 1,
|
|
32
|
-
});
|
|
33
|
-
expect(await User.countDocuments()).toBe(1);
|
|
34
|
-
expect(await User.countDocumentsWithDeleted()).toBe(2);
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
it('should soft delete with deleteMany', async () => {
|
|
38
|
-
const User = createTestModel({
|
|
39
|
-
name: 'String',
|
|
40
|
-
});
|
|
41
|
-
await User.create({
|
|
42
|
-
name: 'foo',
|
|
43
|
-
});
|
|
44
|
-
await User.create({
|
|
45
|
-
name: 'bar',
|
|
46
|
-
});
|
|
47
|
-
const res = await User.deleteMany();
|
|
48
|
-
expect(res).toEqual({
|
|
49
|
-
acknowledged: true,
|
|
50
|
-
deletedCount: 2,
|
|
51
|
-
});
|
|
52
|
-
expect(await User.countDocuments()).toBe(0);
|
|
53
|
-
expect(await User.countDocumentsWithDeleted()).toBe(2);
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
it('should soft delete with findOneAndDelete', async () => {
|
|
57
|
-
const User = createTestModel({
|
|
58
|
-
name: 'String',
|
|
59
|
-
});
|
|
60
|
-
await User.create({
|
|
61
|
-
name: 'foo',
|
|
62
|
-
});
|
|
63
|
-
expect(await User.countDocuments()).toBe(1);
|
|
64
|
-
expect(await User.countDocumentsWithDeleted()).toBe(1);
|
|
65
|
-
const user = await User.findOneAndDelete({
|
|
66
|
-
name: 'foo',
|
|
67
|
-
});
|
|
68
|
-
expect(user.name).toBe('foo');
|
|
69
|
-
expect(await User.countDocuments()).toBe(0);
|
|
70
|
-
expect(await User.countDocumentsWithDeleted()).toBe(1);
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
it('should soft delete with findByIdAndDelete', async () => {
|
|
74
|
-
const User = createTestModel({
|
|
75
|
-
name: 'String',
|
|
76
|
-
});
|
|
77
|
-
let user = await User.create({
|
|
78
|
-
name: 'foo',
|
|
79
|
-
});
|
|
80
|
-
user = await User.findByIdAndDelete(user.id);
|
|
81
|
-
expect(user.name).toBe('foo');
|
|
82
|
-
expect(await User.countDocuments()).toBe(0);
|
|
83
|
-
expect(await User.countDocumentsWithDeleted()).toBe(1);
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
describe('restore', () => {
|
|
88
|
-
it('should restore a document', async () => {
|
|
89
|
-
const User = createTestModel({
|
|
90
|
-
name: 'String',
|
|
91
|
-
});
|
|
92
|
-
const user = await User.create({
|
|
93
|
-
name: 'foo',
|
|
94
|
-
});
|
|
95
|
-
await user.delete();
|
|
96
|
-
expect(await user.deletedAt).toBeInstanceOf(Date);
|
|
97
|
-
await user.restore();
|
|
98
|
-
expect(await user.deletedAt).toBeUndefined();
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
it('should restore with restoreOne', async () => {
|
|
102
|
-
const User = createTestModel({
|
|
103
|
-
name: 'String',
|
|
104
|
-
});
|
|
105
|
-
await User.create({
|
|
106
|
-
name: 'foo',
|
|
107
|
-
});
|
|
108
|
-
await User.create({
|
|
109
|
-
name: 'bar',
|
|
110
|
-
});
|
|
111
|
-
await User.deleteOne({
|
|
112
|
-
name: 'foo',
|
|
113
|
-
});
|
|
114
|
-
expect(await User.countDocuments()).toBe(1);
|
|
115
|
-
expect(await User.countDocumentsWithDeleted()).toBe(2);
|
|
116
|
-
|
|
117
|
-
const res = await User.restoreOne({
|
|
118
|
-
name: 'foo',
|
|
119
|
-
});
|
|
120
|
-
expect(res).toEqual({
|
|
121
|
-
acknowledged: true,
|
|
122
|
-
restoredCount: 1,
|
|
123
|
-
});
|
|
124
|
-
expect(await User.countDocuments()).toBe(2);
|
|
125
|
-
expect(await User.countDocumentsWithDeleted()).toBe(2);
|
|
126
|
-
});
|
|
127
|
-
|
|
128
|
-
it('should restore with restoreMany', async () => {
|
|
129
|
-
let users;
|
|
130
|
-
const User = createTestModel({
|
|
131
|
-
name: 'String',
|
|
132
|
-
});
|
|
133
|
-
await User.create({
|
|
134
|
-
name: 'foo',
|
|
135
|
-
});
|
|
136
|
-
await User.create({
|
|
137
|
-
name: 'bar',
|
|
138
|
-
});
|
|
139
|
-
await User.deleteMany({});
|
|
140
|
-
expect(await User.countDocuments()).toBe(0);
|
|
141
|
-
expect(await User.countDocumentsWithDeleted()).toBe(2);
|
|
142
|
-
users = await User.findWithDeleted();
|
|
143
|
-
expect(users[0].deleted).toBe(true);
|
|
144
|
-
expect(users[0].deletedAt).not.toBeUndefined();
|
|
145
|
-
expect(users[1].deleted).toBe(true);
|
|
146
|
-
expect(users[1].deletedAt).not.toBeUndefined();
|
|
147
|
-
|
|
148
|
-
const res = await User.restoreMany({});
|
|
149
|
-
expect(res).toEqual({
|
|
150
|
-
acknowledged: true,
|
|
151
|
-
restoredCount: 2,
|
|
152
|
-
});
|
|
153
|
-
expect(await User.countDocuments()).toBe(2);
|
|
154
|
-
expect(await User.countDocumentsWithDeleted()).toBe(2);
|
|
155
|
-
users = await User.findWithDeleted();
|
|
156
|
-
expect(users[0].deleted).toBe(false);
|
|
157
|
-
expect(users[0].deletedAt).toBeUndefined();
|
|
158
|
-
expect(users[1].deleted).toBe(false);
|
|
159
|
-
expect(users[1].deletedAt).toBeUndefined();
|
|
160
|
-
});
|
|
161
|
-
});
|
|
162
|
-
|
|
163
|
-
describe('destroy', () => {
|
|
164
|
-
it('should hard delete a document', async () => {
|
|
165
|
-
const User = createTestModel({
|
|
166
|
-
name: 'String',
|
|
167
|
-
});
|
|
168
|
-
const user = await User.create({
|
|
169
|
-
name: 'foo',
|
|
170
|
-
});
|
|
171
|
-
await User.create({
|
|
172
|
-
name: 'foo2',
|
|
173
|
-
});
|
|
174
|
-
await user.destroy();
|
|
175
|
-
expect(await User.countDocumentsWithDeleted()).toBe(1);
|
|
176
|
-
});
|
|
177
|
-
|
|
178
|
-
it('should hard delete with destroyOne', async () => {
|
|
179
|
-
const User = createTestModel({
|
|
180
|
-
name: 'String',
|
|
181
|
-
});
|
|
182
|
-
await User.create({
|
|
183
|
-
name: 'foo',
|
|
184
|
-
});
|
|
185
|
-
await User.create({
|
|
186
|
-
name: 'bar',
|
|
187
|
-
});
|
|
188
|
-
const res = await User.destroyOne({
|
|
189
|
-
name: 'foo',
|
|
190
|
-
});
|
|
191
|
-
expect(res).toEqual({
|
|
192
|
-
acknowledged: true,
|
|
193
|
-
destroyedCount: 1,
|
|
194
|
-
});
|
|
195
|
-
expect(await User.countDocuments()).toBe(1);
|
|
196
|
-
expect(await User.countDocumentsWithDeleted()).toBe(1);
|
|
197
|
-
});
|
|
198
|
-
|
|
199
|
-
it('should hard delete with destroyMany', async () => {
|
|
200
|
-
const User = createTestModel({
|
|
201
|
-
name: 'String',
|
|
202
|
-
});
|
|
203
|
-
await User.create({
|
|
204
|
-
name: 'foo',
|
|
205
|
-
});
|
|
206
|
-
await User.create({
|
|
207
|
-
name: 'bar',
|
|
208
|
-
});
|
|
209
|
-
const res = await User.destroyMany();
|
|
210
|
-
expect(res).toEqual({
|
|
211
|
-
acknowledged: true,
|
|
212
|
-
destroyedCount: 2,
|
|
213
|
-
});
|
|
214
|
-
expect(await User.countDocuments()).toBe(0);
|
|
215
|
-
expect(await User.countDocumentsWithDeleted()).toBe(0);
|
|
216
|
-
});
|
|
217
|
-
});
|
|
218
|
-
|
|
219
|
-
describe('query existing', () => {
|
|
220
|
-
it('should not query deleted documents by default', async () => {
|
|
221
|
-
const User = createTestModel({
|
|
222
|
-
name: 'String',
|
|
223
|
-
});
|
|
224
|
-
const deletedUser = await User.create({
|
|
225
|
-
name: 'foo',
|
|
226
|
-
deletedAt: new Date(),
|
|
227
|
-
deleted: true,
|
|
228
|
-
});
|
|
229
|
-
expect(await User.find()).toEqual([]);
|
|
230
|
-
expect(await User.findOne()).toBe(null);
|
|
231
|
-
expect(await User.findById(deletedUser.id)).toBe(null);
|
|
232
|
-
expect(await User.exists()).toBe(null);
|
|
233
|
-
expect(await User.countDocuments()).toBe(0);
|
|
234
|
-
});
|
|
235
|
-
});
|
|
236
|
-
|
|
237
|
-
describe('query deleted', () => {
|
|
238
|
-
it('should still query deleted documents', async () => {
|
|
239
|
-
const User = createTestModel({
|
|
240
|
-
name: 'String',
|
|
241
|
-
});
|
|
242
|
-
const deletedUser = await User.create({
|
|
243
|
-
name: 'foo',
|
|
244
|
-
deletedAt: new Date(),
|
|
245
|
-
deleted: true,
|
|
246
|
-
});
|
|
247
|
-
expect(await User.findDeleted()).not.toBe(null);
|
|
248
|
-
expect(await User.findOneDeleted()).not.toBe(null);
|
|
249
|
-
expect(await User.findByIdDeleted(deletedUser.id)).not.toBe(null);
|
|
250
|
-
expect(await User.existsDeleted()).toStrictEqual({
|
|
251
|
-
_id: deletedUser._id,
|
|
252
|
-
});
|
|
253
|
-
expect(await User.countDocumentsDeleted()).toBe(1);
|
|
254
|
-
});
|
|
255
|
-
});
|
|
256
|
-
|
|
257
|
-
describe('query with deleted', () => {
|
|
258
|
-
it('should still query with deleted documents', async () => {
|
|
259
|
-
const User = createTestModel({
|
|
260
|
-
name: 'String',
|
|
261
|
-
});
|
|
262
|
-
await User.create({
|
|
263
|
-
name: 'foo',
|
|
264
|
-
});
|
|
265
|
-
const deletedUser = await User.create({
|
|
266
|
-
name: 'bars',
|
|
267
|
-
deletedAt: new Date(),
|
|
268
|
-
deleted: true,
|
|
269
|
-
});
|
|
270
|
-
expect((await User.findWithDeleted()).length).toBe(2);
|
|
271
|
-
expect(await User.findOneWithDeleted({ name: 'bars' })).not.toBe(null);
|
|
272
|
-
expect(await User.findByIdWithDeleted(deletedUser.id)).not.toBe(null);
|
|
273
|
-
expect(await User.existsWithDeleted({ name: 'bars' })).not.toBe(null);
|
|
274
|
-
expect(await User.countDocumentsWithDeleted()).toBe(2);
|
|
275
|
-
});
|
|
276
|
-
});
|
|
277
|
-
|
|
278
|
-
describe('other', () => {
|
|
279
|
-
it('should not allow remove method', async () => {
|
|
280
|
-
const User = createTestModel({
|
|
281
|
-
name: 'String',
|
|
282
|
-
});
|
|
283
|
-
const user = await User.create({
|
|
284
|
-
name: 'foo',
|
|
285
|
-
});
|
|
286
|
-
await user.delete();
|
|
287
|
-
|
|
288
|
-
expect(() => {
|
|
289
|
-
user.remove();
|
|
290
|
-
}).toThrow('Method not allowed.');
|
|
291
|
-
});
|
|
292
|
-
|
|
293
|
-
it('should not allow deleteOne on document', async () => {
|
|
294
|
-
const User = createTestModel({
|
|
295
|
-
name: 'String',
|
|
296
|
-
});
|
|
297
|
-
const user = await User.create({
|
|
298
|
-
name: 'foo',
|
|
299
|
-
});
|
|
300
|
-
|
|
301
|
-
expect(() => {
|
|
302
|
-
user.deleteOne();
|
|
303
|
-
}).toThrow('Method not allowed.');
|
|
304
|
-
});
|
|
305
|
-
|
|
306
|
-
it('should not allow remove on model', async () => {
|
|
307
|
-
const User = createTestModel({
|
|
308
|
-
name: 'String',
|
|
309
|
-
});
|
|
310
|
-
expect(() => {
|
|
311
|
-
User.remove();
|
|
312
|
-
}).toThrow('Method not allowed.');
|
|
313
|
-
});
|
|
314
|
-
|
|
315
|
-
it('should not allow findOneAndRemove on model', async () => {
|
|
316
|
-
const User = createTestModel({
|
|
317
|
-
name: 'String',
|
|
318
|
-
});
|
|
319
|
-
expect(() => {
|
|
320
|
-
User.findOneAndRemove();
|
|
321
|
-
}).toThrow('Method not allowed.');
|
|
322
|
-
});
|
|
323
|
-
|
|
324
|
-
it('should not allow findByIdAndRemove on model', async () => {
|
|
325
|
-
const User = createTestModel({
|
|
326
|
-
name: 'String',
|
|
327
|
-
});
|
|
328
|
-
expect(() => {
|
|
329
|
-
User.findByIdAndRemove();
|
|
330
|
-
}).toThrow('Method not allowed.');
|
|
331
|
-
});
|
|
332
|
-
});
|
|
333
|
-
});
|