prisma-starter/tests/user.test.ts
Sambo Chea 050b759cce
Some checks reported errors
continuous-integration/drone/push Build was killed
Add user tests
2021-03-13 14:24:05 +07:00

94 lines
2.2 KiB
TypeScript

import { PrismaClient } from "@prisma/client";
import {
createUser,
findOneByEmail,
createProfile,
findOneProfileByEmail,
} from "../src/User/UserService";
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
it("createUser", async (done) => {
// create user
await createUser({
email: email,
name: name,
})
.then(async (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
await createProfile(user, {
bio: "Software Developer",
})
.then((profile) => {
if (profile == null) {
throw Error("profile is null");
}
expect(profile).not.toBeNull();
expect(bio).toBe(profile.bio);
})
.catch((e) => console.error(e))
.finally(() => done());
})
.catch((e) => console.error(e))
.finally(() => done());
});
// check user test
it("checkUser", async (done) => {
await 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);
})
.catch((e) => console.error(e))
.finally(() => done());
});
// check profile included user test
it("checkProfileUser", async (done) => {
await 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);
})
.catch((e) => console.error(e))
.finally(() => done());
});
// try to finish
afterAll(async (done) => {
await prisma.$disconnect();
done();
});
// after all
});