Untitled

mail@pastecode.io avatar
unknown
plain_text
a month ago
1.4 kB
3
Indexable
Never
const { 
  FIRST_PRODUCT_MOCK,
  MOCK_PRODUCTS,
  INSERT_PRODUCT_MOCK,
  MOCK_UPDATE_OUTPUT,
} = require('../mocks/products.mock');

it('Deve ser possível atualizar o nome de um produto', async function () {
    const stub = sinon.stub(ProductsModel, 'updateProductName').returns(MOCK_UPDATE_OUTPUT);
    const product = await ProductsModel.updateProductName(1, 'Bombril de ouro');

    expect(product).to.be.deep.equal(MOCK_UPDATE_OUTPUT);
    stub.restore();
  });

  it('Não deve ser possível atualizar o nome de um produto que não existe', async function () {
    const stub = sinon.stub(ProductsModel, 'updateProductName')
      .returns({ status: 404, data: 'Product not found' });

    const product = await ProductsModel.updateProductName(999, 'Bombril de ouro');

    expect(product).to.be.deep.equal({ status: 404, data: 'Product not found' });
    stub.restore();
  });

  it('Não deve ser possível atualizar o nome de um produto com um nome menor que 5 caracteres', async function () {
    const stub = sinon.stub(ProductsModel, 'updateProductName')
      .returns({ status: 422, data: '"name" length must be at least 5 characters long' });

    const product = await ProductsModel.updateProductName(69, 'Bom');

    expect(product).to.be.deep.equal({ status: 422, data: '"name" length must be at least 5 characters long' });
    stub.restore();
  });
Leave a Comment