-
-
Notifications
You must be signed in to change notification settings - Fork 145
Expand file tree
/
Copy pathlearn-sequelize.test.js
More file actions
77 lines (66 loc) · 1.98 KB
/
learn-sequelize.test.js
File metadata and controls
77 lines (66 loc) · 1.98 KB
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
const { Genre, Movie, Actor, sequelize } = require("./models");
const seed = require("./seed");
const {
insertNewGenre,
insertNewMovie,
getMovieWithId2,
getAllActors,
getAllMoviesFrom2008,
deleteGenreYouAdded,
associateRosarioToEagleEye,
associateRobertToTropicThunder,
} = require("./learn-sequelize");
describe("Sequelize Model Usage", () => {
beforeAll(() => {
return seed();
});
afterAll(() => {
return sequelize.close();
});
test("insert new genre", async () => {
await insertNewGenre();
let genres = await Genre.findAll();
expect(genres.length).toBe(4);
});
test("insert new Movie", async () => {
await insertNewMovie();
let movies = await Movie.findAll();
expect(movies.length).toBe(6);
});
test("get movie ID=2", async () => {
expect(await getMovieWithId2()).toBe("Men in Black II");
});
test("get all actors", async () => {
expect((await getAllActors()).sort()).toEqual(
["Will Smith", "Rosario Dawson", "Robert Downey Jr."].sort()
);
});
test("get all movies from 2008", async () => {
expect((await getAllMoviesFrom2008()).sort()).toEqual(
["Seven Pounds", "Eagle Eye", "Tropic Thunder"].sort()
);
});
test("delete genre you added", async () => {
await deleteGenreYouAdded();
let genres = await Genre.findAll();
expect(genres.length).toBe(3);
});
test("associate rosario with Eagle Eye", async () => {
await associateRosarioToEagleEye();
return Actor.findByPk(2)
.then((r) => r.getMovies())
.then((movies) => {
expect(movies.length).toBe(3);
expect(movies.map((m) => m.title)).toContain("Eagle Eye");
});
});
test("associate robert with Tropic Thunder", async () => {
await associateRobertToTropicThunder();
return Actor.findByPk(3)
.then((r) => r.getMovies())
.then((movies) => {
expect(movies.length).toBe(1);
expect(movies.map((m) => m.title)).toContain("Tropic Thunder");
});
});
});