-
Notifications
You must be signed in to change notification settings - Fork 29
/
multiUpdate.test.js
36 lines (29 loc) · 1.13 KB
/
multiUpdate.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import spinUp from "./spinUp";
let db, schema, queryAndMatchArray, runMutation, close;
beforeEach(async () => {
({ db, schema, queryAndMatchArray, runMutation, close } = await spinUp());
await db.collection("books").insertOne({ title: "Book 1", pages: 100 });
await db.collection("books").insertOne({ title: "Book 2", pages: 150 });
await db.collection("books").insertOne({ title: "Book 3", pages: 200 });
});
afterEach(async () => {
await db.collection("books").deleteMany({});
close();
db = null;
});
test("Multi update 1", async () => {
let books = await db
.collection("books")
.find({ pages: { $gt: 100 } }, { _id: 1 })
.toArray();
let results = await runMutation({
mutation: `updateBooks(_ids: [${books.map(b => '"' + b._id + '"').join(",")}], Updates: {pages: 99}){Books{pages}}`,
result: "updateBooks"
});
expect(results).toEqual([{ pages: 99 }, { pages: 99 }]);
await queryAndMatchArray({
query: "{allBooks(SORT: { title: 1 }){Books{title, pages}}}",
coll: "allBooks",
results: [{ title: "Book 1", pages: 100 }, { title: "Book 2", pages: 99 }, { title: "Book 3", pages: 99 }]
});
});