Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Descricão da transação e valor estão inconsistentes #49

Closed
giggio opened this issue Feb 8, 2024 · 6 comments
Closed

Descricão da transação e valor estão inconsistentes #49

giggio opened this issue Feb 8, 2024 · 6 comments

Comments

@giggio
Copy link
Contributor

giggio commented Feb 8, 2024

Há casos em que o campo descrição está sendo enviado com mais de 10 caracteres ou vazio. Peguei estes dois logo no começo do teste.

.body(StringBody(s"""{"valor": 1, "tipo": "c", "descricao": "123456789 e mais um pouco"}"""))

e

.body(StringBody(s"""{"valor": 1, "tipo": "c", "descricao": ""}"""))

e

.body(StringBody(s"""{"valor": 1, "tipo": "c", "descricao": null}"""))

A especificação no README diz que o campo é obrigatório, e que deve ter entre 1 e dez caracteres:

- `descricao` deve ser uma string de 1 a 10 caractéres.

Seria bom esclarecer e corrigir, afinal o campo é mesmo obrigatório? Tem mesmo esse limite de dez caracteres?

Percebi que o mesmo está acontecendo para o valor. O README diz que deve ser um inteiro:

- `valor` deve um número inteiro positivo que representa centavos (não vamos trabalhar com frações de centavos). Por exemplo, R$ 10 são 1000 centavos.

Mas nos testes vemos um decimal:

.body(StringBody(s"""{"valor": 1.2, "tipo": "d", "descricao": "devolve"}"""))

giggio added a commit to giggio/rinhaback2401-01 that referenced this issue Feb 8, 2024
@leoralph
Copy link
Contributor

leoralph commented Feb 8, 2024

Eu acho que isso é para simular envio errado por parte do client, a api tem que estar preparada para retornar 422 caso seja menor que 1, maior que 10 ou nulo, pelo menos foi o que eu entendi

@giggio giggio changed the title Descricão da transação está inconsistente Descricão da transação e valor estão inconsistentes Feb 8, 2024
@zebaroni
Copy link
Contributor

zebaroni commented Feb 8, 2024

Esses testes são justamente pra testar se sua API ta tratando o erro e retornando o 422

@giggio
Copy link
Contributor Author

giggio commented Feb 8, 2024

Galera, prestem atenção na descrição do issue: o README diz uma coisa e os testes fazem outra. Esse é o problema.

@zebaroni
Copy link
Contributor

zebaroni commented Feb 8, 2024

Não entendi, os testes que você citou estão esperando o status 422 na resposta.

  • Manda um payload errado
  • Espera o 422

Se retornar 200. o teste quebra

@zanfranceschi
Copy link
Owner

@giggio é como o pessoal falou, esses testes estão validando se o retorno é um 422 para esses casos de payload inválido.

Note o .check(status.in(422)) – a API precisa retornar um 422 nesses requests para passar nos testes.

image

@giggio
Copy link
Contributor Author

giggio commented Feb 9, 2024

@zanfranceschi Sem problemas, mas então é necessário atualizar o readme, a especificação está confusa. O único local onde aparece que o retorno de um 422 no readme é:

Se uma requisição para débito for deixar o saldo inconsistente, a API deve retornar HTTP Status Code 422 sem completar a transação! O corpo da resposta nesse caso não será testado e você pode escolher como o representar.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants