Skip to content

Commit f50fae6

Browse files
author
Valeriy Borodayev
committed
test(plugin-test): add cases with an array
1 parent 334d35b commit f50fae6

File tree

1 file changed

+101
-20
lines changed

1 file changed

+101
-20
lines changed

src/__tests__/plugin-test.js

Lines changed: 101 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -37,24 +37,105 @@ describe('mongoose-dp', () => {
3737
expect(diffs[0].v).toBe(1);
3838
});
3939

40-
// it('save array diffs properly', async () => {
41-
// await Post.create({ title: 'arrayCheck', subjects: [{ name: 'was' }] });
42-
// const post: PostDoc = (await Post.findOne({ title: 'arrayCheck' }).exec(): any);
43-
// post.subjects = [{ name: 'was' }, { name: 'first' }];
44-
// await post.save();
45-
46-
// const post1: PostDoc = (await Post.findOne({ title: 'arrayCheck' }).exec(): any);
47-
// post1.subjects = [{ name: 'was' }, { name: 'first' }, { name: 'second' }];
48-
// await post1.save();
49-
50-
// const post2: PostDoc = (await Post.findOne({ title: 'arrayCheck' }).exec(): any);
51-
// post2.subjects = [{ name: 'first' }, { name: 'second' }];
52-
// await post2.save();
53-
54-
// const Diff = Post.diffModel();
55-
// const diffs = await Diff.findByDocId(post2._id);
56-
// expect(diffs).toMatchInli
57-
// const merged = await Diff.mergeDiffs(post2);
58-
// expect(merged).toBe();
59-
// });
40+
describe('save array diffs properly', () => {
41+
it('add new element', async () => {
42+
await Post.create({ title: 'newElement', subjects: [{ name: 'test' }] });
43+
const post: PostDoc = (await Post.findOne({
44+
title: 'newElement',
45+
}).exec(): any);
46+
post.subjects = [{ name: 'test' }, { name: 'new test' }];
47+
await post.save();
48+
49+
const Diff = Post.diffModel();
50+
const diffs = await Diff.findByDocId(post._id);
51+
expect(diffs[0].c).toMatchInlineSnapshot(`
52+
CoreMongooseArray [
53+
Object {
54+
"i": 1,
55+
"it": Object {
56+
"k": "N",
57+
"r": Object {
58+
"name": "new test",
59+
},
60+
},
61+
"k": "A",
62+
"p": Array [
63+
"subjects",
64+
],
65+
},
66+
]
67+
`);
68+
});
69+
70+
it('edit existed element', async () => {
71+
await Post.create({
72+
title: 'existedElement',
73+
subjects: [{ name: 'was' }],
74+
});
75+
const post: PostDoc = (await Post.findOne({
76+
title: 'existedElement',
77+
}).exec(): any);
78+
post.subjects = [{ name: 'become' }];
79+
await post.save();
80+
81+
const Diff = Post.diffModel();
82+
const diffs = await Diff.findByDocId(post._id);
83+
expect(diffs[0].c).toMatchInlineSnapshot(`
84+
CoreMongooseArray [
85+
Object {
86+
"k": "E",
87+
"l": "was",
88+
"p": Array [
89+
"subjects",
90+
"0",
91+
"name",
92+
],
93+
"r": "become",
94+
},
95+
]
96+
`);
97+
});
98+
99+
it('delete element', async () => {
100+
await Post.create({
101+
title: 'deleteElement',
102+
subjects: [{ name: 'one' }, { name: 'two' }, { name: 'three' }],
103+
});
104+
const post: PostDoc = (await Post.findOne({
105+
title: 'deleteElement',
106+
}).exec(): any);
107+
post.subjects = [{ name: 'one' }, { name: 'three' }];
108+
await post.save();
109+
110+
const Diff = Post.diffModel();
111+
const diffs = await Diff.findByDocId(post._id);
112+
expect(diffs[0].c).toMatchInlineSnapshot(`
113+
CoreMongooseArray [
114+
Object {
115+
"i": 2,
116+
"it": Object {
117+
"k": "D",
118+
"l": Object {
119+
"name": "three",
120+
},
121+
},
122+
"k": "A",
123+
"p": Array [
124+
"subjects",
125+
],
126+
},
127+
Object {
128+
"k": "E",
129+
"l": "two",
130+
"p": Array [
131+
"subjects",
132+
"1",
133+
"name",
134+
],
135+
"r": "three",
136+
},
137+
]
138+
`);
139+
});
140+
});
60141
});

0 commit comments

Comments
 (0)