prisma-starter/tests/user.test.ts

94 lines
2.2 KiB
TypeScript
Raw Permalink 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
it("createUser", async (done) => {
// create user
await createUser({
email: email,
name: name,
})
2021-03-13 14:24:05 +07:00
.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
2021-03-13 14:24:05 +07:00
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);
})
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
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);
})
2021-03-13 14:24:05 +07:00
.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);
})
2021-03-13 14:24:05 +07:00
.catch((e) => console.error(e))
.finally(() => done());
});
// try to finish
afterAll(async (done) => {
await prisma.$disconnect();
done();
});
2021-03-13 14:24:05 +07:00
// after all
});