Untitled
unknown
plain_text
2 years ago
1.9 kB
13
Indexable
const chai = require('chai');
const sinon = require('sinon');
const sinonChai = require('sinon-chai');
const chaiHTTP = require('chai-http');
const { SERVICES_MOCK, UNIQUE_PRODUCT_MOCK, NOT_FOUND_MOCK } = require('../mocks/product.mock');
const { expect } = chai;
chai.use(sinonChai);
chai.use(chaiHTTP);
const serviceForProducts = require('../../../src/services/product.services');
const controllerForProducts = require('../../../src/controllers/products');
describe('Model for products', function () {
afterEach(function () {
sinon.restore();
});
it('should return all products', async function () {
const req = { params: { id: 1 } };
const res = { status: sinon.stub().returnsThis(), json: sinon.stub().returnsThis() };
const getAllProductsFromDatabase = sinon.stub(serviceForProducts, 'getAllDatabase').resolves(SERVICES_MOCK);
await controllerForProducts.getControllerByProducts(req, res);
expect(res.status).to.be.calledWith(200);
getAllProductsFromDatabase.restore();
});
it('should return a product by id', async function () {
const req = { params: { id: 1 } };
const res = { status: sinon.stub().returnsThis(), json: sinon.stub().returnsThis() };
const getAllProductsById = sinon.stub(serviceForProducts, 'getAllById').resolves(UNIQUE_PRODUCT_MOCK);
await controllerForProducts.getControllerById(req, res);
expect(res.status).to.be.calledWith(200);
getAllProductsById.restore();
});
it('should return a error message', async function () {
const req = { params: { id: 1 } };
const res = { status: sinon.stub().returnsThis(), json: sinon.stub().returnsThis() };
const getAllProductsById = sinon.stub(serviceForProducts, 'getAllById').resolves(NOT_FOUND_MOCK);
await controllerForProducts.getControllerById(req, res);
expect(res.status).to.be.calledWith(200);
getAllProductsById.restore();
});
});
Editor is loading...
Leave a Comment