Skip to content

Instantly share code, notes, and snippets.

@AkshayCHD
Created January 16, 2022 07:24
Show Gist options
  • Save AkshayCHD/a0c046d948aecedca3b8dfe517048faf to your computer and use it in GitHub Desktop.
Save AkshayCHD/a0c046d948aecedca3b8dfe517048faf to your computer and use it in GitHub Desktop.
const { getUser, saveUser } = require("../src/services/user.service");
const { expect } = require("chai");
const User = require("../src/models/user.model")
const sinon = require("sinon");
describe("User Service Unit Tests", function () {
this.afterEach(() => {
sinon.restore();
})
describe("Get User functionality", function () {
it("should return correct age and experience of the user after calculation", async function () {
const profileId = 1;
const fakeObject = {
_id: 1,
name: "Akshay",
dob: "2020-12-12",
experience: [{ years: 5, organizationName: "ABCD" }]
}
sinon.stub(User, 'findOne').returns(fakeObject)
const returnedUser = await getUser({
profileId
});
expect(returnedUser.name).to.equal(fakeObject.name)
expect(returnedUser.age).to.equal(1)
expect(returnedUser.totalExperience).to.eql(5)
});
it("should give error if invalid if there is no user found with provided profileId", async function () {
const profileId = 1;
sinon.stub(User, 'findOne').returns(null)
await getUser({
profileId,
}).catch((error) => {
expect(error.message).to.equal("No user not found with given profileId")
});
});
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment