[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
Bruno Roberto Gomes
Criador Bruno Roberto Gomes 06/06/2022

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?

Manager Carlos Ferreira 06/06/2022

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;

Carlos Ferreira
Criador Bruno Roberto Gomes 06/06/2022

https://github.com/brgomes/larafood

Bruno Roberto Gomes
Manager Carlos Ferreira 06/06/2022

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

Carlos Ferreira
Criador Bruno Roberto Gomes 06/06/2022

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

Bruno Roberto Gomes
Manager Carlos Ferreira 06/06/2022

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?

Carlos Ferreira
Criador Bruno Roberto Gomes 06/06/2022

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

Bruno Roberto Gomes
Manager Carlos Ferreira 06/06/2022

Show de bola amigo, vou finalizar o ticket, qualquer problema, conte comigo.

Carlos Ferreira
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!