Untitled
unknown
plain_text
2 years ago
2.5 kB
6
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