Untitled

 avatar
unknown
plain_text
a year ago
2.0 kB
6
Indexable
const chai = require('chai');
const sinon = require('sinon');
const SinonChai = require('sinon-chai');
const chaiHttp = require('chai-http');

const { expect } = chai;
const serviceSales = require('../../../src/services/service.sales');
const controllerSales = require('../../../src/controllers/controller.sales');
const {
  SalesIdOne,
  salesNotFoundMock,
  mocksSales,
} = require('../mocks/sales.mocks');

chai.use(SinonChai);
chai.use(chaiHttp);

describe('Realiza teste da Sales no arquivo controller', function () {
  afterEach(function () {
    sinon.restore();
  });

  it('No arquivo controller verifica se retorna todos os sales', async function () {
    const req = { params: { id: 1 } };
    const resp = { status: sinon.stub().returnsThis(), json: sinon.stub().returnsThis() };
    const stubAll = sinon.stub(serviceSales, 'getSales').resolves(mocksSales);
    await controllerSales.getSalesController(req, resp);
    expect(resp.status).to.have.been.calledWith(200);

    stubAll.restore();
  });

  it('No arquivo controller devera retornar "Sales not found" caso a venda seja inexistente', async function () {
    const resp = { status: sinon.stub().returnsThis(), json: sinon.stub().returnsThis() };
    const req = { params: { id: 1 } };
    const stubId = sinon.stub(serviceSales, 'getSaleId').returns(salesNotFoundMock);
    await controllerSales.getSalesControllerId(req, resp);

    expect(resp.status).to.have.been.calledWith(200);
    stubId.restore();
  });

  it('No arquivo controller devera retornar uma venda caso o ID seja encontrado na tabeal sales', async function () {
    const resp = { status: sinon.stub().returnsThis(), json: sinon.stub().returnsThis() };
    const req = { params: { id: 1 } };
    const stubId = sinon.stub(serviceSales, 'getSaleId').returns(SalesIdOne);
    await controllerSales.getSalesControllerId(req, resp);
    expect(resp.status).to.have.been.calledWith(200);

    stubId.restore();
  });
});    
Editor is loading...
Leave a Comment