Untitled
unknown
plain_text
a year ago
2.5 kB
5
Indexable
describe('Quando o produto é atualizado com sucesso', function () { it('Retorna o produto atualizado', async function () { const res = { status: sinon.stub().returnsThis(), json: sinon.stub().returnsThis(), }; const req = { params: { id: 1, }, body: { name: 'Bombril de ouro', }, }; const stub = sinon.stub(productsService, 'updateProductName').resolves(MOCK_UPDATE_OUTPUT); await productsController.updateProductName(req, res); expect(res.status).to.have.been.calledWith(200); stub.restore(); }); }); describe('Quando o produto não é atualizado com sucesso', function () { it('Sem nome', async function () { const res = { status: sinon.stub().returnsThis(), json: sinon.stub(), }; const req = { params: { id: 1, }, body: {}, }; const stub = sinon.stub(productsService, 'updateProductName').resolves(null); await productsController.updateProductName(req, res); expect(res.status).to.have.been.calledWith(400); expect(res.json).to.have.been.calledWith({ message: '"name" is required' }); stub.restore(); }); it('Nome com menos de 5 caracteres', async function () { const res = { status: sinon.stub().returnsThis(), json: sinon.stub(), }; const req = { params: { id: 1, }, body: { name: 'hjkl', }, }; const stub = sinon.stub(productsService, 'updateProductName').resolves(null); await productsController.updateProductName(req, res); expect(res.status).to.have.been.calledWith(422); expect(res.json).to.have.been.calledWith({ message: '"name" length must be at least 5 characters long' }); stub.restore(); }); it('Produto não encontrado', async function () { const res = { status: sinon.stub().returnsThis(), json: sinon.stub(), }; const req = { params: { id: 1, }, body: { name: 'Bombril de ouro', }, }; const stub = sinon.stub(productsService, 'updateProductName').resolves({ message: 'Product not found' }); await productsController.updateProductName(req, res); expect(res.status).to.have.been.calledWith(200); expect(res.json).to.have.been.calledWith({ message: 'Product not found' }); stub.restore(); }); });
Editor is loading...
Leave a Comment