Teste retorna erro
Olá, Carlos. Depois da atualização para o Laravel 7, está tudo funcionando exceto o teste "testCreateNewOrderWithTable", onde adicionei um "assertJsonPath('data.table.uuid', $table->uuid)" ao final do teste, depois do "assertStatus(201)".
O erro retornado é:
1) Tests\Feature\Api\OrderTest::testCreateNewOrderWithTable
Failed asserting that 'b39efcb6-ae74-4c69-b748-a5df717417d1' is identical to an object of class "Ramsey\Uuid\Lazy\LazyUuidFromString".
Não estou conseguindo resolver sozinho. No Laravel 6 ele passava normalmente.
Poderia me ajudar?
Olá, Bruno!
Tudo bem?
Tem o projeto no GitHub?
Preciso ver com detalhes como criou o UUID, se foi uuid v4 ou outro.
No aguardo;
https://github.com/brgomes/larafood
Quando deixa apenas o status code, está ok?
$response->assertStatus(201);
Me envia um print do problema: https://uploaddeimagens.com.br/
Onde está gerando o UUID, experimenta gerar pela Facade do Laravel:
https://laravel.com/docs/9.x/helpers#method-str-uuid
Sim, deixando somente o $response->assertStatus(201) passa tranquilo. Inclusive está passando também o ->assertJsonPath('data.table.identify, $table->identify). Só o uuid que trava.
O uuid está sendo gerado no TableObserver: $table->uuid = \Illuminate\Support\Str::uuid().
Segue o que o PHPUnit retorna:
1) Tests\Feature\Api\OrderTest::testCreateNewOrderWithTable
Failed asserting that '474e568b-c751-484d-a61a-384b4838d436' is identical to an object of class "Ramsey\Uuid\Lazy\LazyUuidFromString".
/var/www/vendor/laravel/framework/src/Illuminate/Testing/AssertableJsonString.php:239
/var/www/vendor/laravel/framework/src/Illuminate/Testing/TestResponse.php:743
/var/www/tests/Feature/Api/OrderTest.php:143
Obs: não consegui subir a imagem no site indicado por você porque ele não está respondendo. Subi no ImgBB: https://ibb.co/bWwCGx1
Olá, Bruno!
Tudo bem?
Desculpas demorar te responder, acabei de reservar um tempo para rodar o seu projeto.
Apenas rodei usando este setup aqui: https://github.com/especializati/setup-docker-laravel/
E funcionou perfeitamente, sem nenhum erro: https://prnt.sc/oAzu_TAVMQnW
Experimenta deletar o diretório vendor/ e instalar a dependências novamente: composer install
Qual a versão do PHP no seu setup?
Consegui resolver forçando a tipagem do uuid de $table. Ficou assim:
->assertJsonPath('data.table.uuid', (string) $table->uuid)
Acredito que o Lavarel deveria estar passando $table->uuid com o formato de objeto. Meu docker está usando PHP 8.
https://github.com/brgomes/larafood/blob/main/.docker/Dockerfile
Show de bola amigo, vou finalizar o ticket, qualquer problema, conte comigo.
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!