prisma-starter/tests/user.test.ts

94 lines
2.1 KiB
TypeScript
Raw Normal View History

2021-03-13 14:24:05 +07:00
import { PrismaClient } from "@prisma/client";
import {
createUser,
findOneByEmail,
createProfile,
findOneProfileByEmail,
} from "../src/User/UserService";
2021-03-13 14:24:05 +07:00
const prisma = new PrismaClient();
// all tests about user
describe("user", function () {
const email = "sombochea@cubetiqs.com";
const name = "Sambo Chea";
const bio = "Software Developer";
// create user test
2021-09-24 17:24:41 +07:00
it("createUser", (done) => {
// create user
2021-09-24 17:24:41 +07:00
createUser({
email: email,
name: name,
})
2021-09-24 17:24:41 +07:00
.then((user) => {
if (user == null) {
throw Error("user is null");
}
expect(user).not.toBeNull();
expect(email).toBe(user.email);
expect(name).toBe(user.name);
// create profile
2021-09-24 17:24:41 +07:00
createProfile(user, {
bio: "Software Developer",
})
.then((profile) => {
if (profile == null) {
throw Error("profile is null");
}
expect(profile).not.toBeNull();
expect(bio).toBe(profile.bio);
})
2021-03-13 14:24:05 +07:00
.catch((e) => console.error(e))
.finally(() => done());
})
2021-03-13 14:24:05 +07:00
.catch((e) => console.error(e))
.finally(() => done());
});
// check user test
2021-09-24 17:24:41 +07:00
it("checkUser", (done) => {
findOneByEmail(email)
.then((user) => {
if (user == null) {
throw Error("user is null");
}
expect(user).not.toBeNull();
expect(email).toBe(user.email);
expect(name).toBe(user.name);
})
2021-03-13 14:24:05 +07:00
.catch((e) => console.error(e))
.finally(() => done());
});
// check profile included user test
2021-09-24 17:24:41 +07:00
it("checkProfileUser", (done) => {
findOneProfileByEmail(email)
.then((profile) => {
if (profile == null) {
throw Error("profile is null");
}
expect(profile).not.toBeNull();
expect(bio).toBe(profile.bio);
expect(email).toBe(profile.user.email);
expect(name).toBe(profile.user.name);
})
2021-03-13 14:24:05 +07:00
.catch((e) => console.error(e))
.finally(() => done());
});
// try to finish
2021-09-24 17:24:41 +07:00
afterAll((done) => {
prisma.$disconnect();
done();
});
2021-03-13 14:24:05 +07:00
// after all
});