Curso Pest - Upload imagem em um formulario
ola carlos , surgiu uma duvida aqui . dei uma pesquisada . quando eu for fazer um upload de imagem em um formulário .
eu pego uma imagem de teste por exemplo e envio junto com os dados do formulário .
eu vi aqui, deu certo de fazer o upload de imagem desta forma aqui -
to enviando esta imagem, no campo image_profile .
ai depois que envia os dados vc geralmente verifica desta forma neh -
só que a imagem , vai ser encriptada , então não vai ter como saber o nome dela pra comprovar que foi feito o upload mesmo .
como que vc verifica o nome dela neste caso ?
precisava saber o nome dela tbem pra apagar ela , pq vi aqui, fiz o upload e enviou pro diretório .
como que vc faz nestes casos de envio de arquivo pra saber se ta afzendo o envio ok ?
valeu
vc costuma retornar os valores que foram inseridos no model ? pq daria pra fazer algo do tipo tbem pra saber o nome da imagem . nao sei se eh uma boa ideia .
tipo verifica se esta fazendo a inserção através de teste se for retorna os valores que foram inseridos .
A ideia é usar o Eloquent (ou qualquer outro ORM) para fazer a inserção dos dados, e usar o assertDatabaseHas para validar se o valor realmente foi persistido (independendo do método, se foi com o ORM ou não).
Era essa mesmo a sua dúvida?
mas tenho uma duvida aqui , no caso de testar uploads .
funcionaria tbem no caso no GitHubActions estes testes ?
ou se fr utilizar o Git Hub Actions eu desabilito o upload ?
Vc pode criar um arquivo fake, assim funciona em qualquer workflow de CI/CD, dessa forma:
$file = UploadedFile::fake()->image('avatar.jpg');
(https://laravel.com/docs/11.x/http-tests#testing-file-uploads)
outra coisa , vc disse que o corretor é usar o assertDatabaseHas .
por exemplo , no seu código vc usou o asset data has -
mas vc sabia os valores do id e do campo nome .
mas se por exemplo for um arquivo de upload , vc vai enviar o upload com esse nome -
avatar.jpg , mas o arquivo no banco de dados vai encriptar , e viar esse nome - CsPO8Rra6GSlDabCH/cKvVAm.XlElkUyHJu.jpg
como vc vai usar o assert se vc nao sabe o nome do campo , entende ? isso que eu estava tentando explicar . rss
oque vc costuma fazer neste caso , retorna depois de inserido o campo o nome que foi gravado ?
eu tava pensando aqui, tbem tem a opção de nao validar o upload, igual o que vc fez com o campo de senha , que pulou ele.
A nível de teste e2e não muito viável testar o nome do arquivo, até mesmo porque o nome do arquivo será aleatório (a não que ser que exista uma estratégia para fazer o upload do arquivo com um nome personalizado).
Em um teste de integração sim, neste caso dá para validar o nome persistido no banco, porque você pode fazer o upload do arquivo fake, e validar se o valor retornado foi preenchido corretamente no banco de dados.
No caso da senha, você pode validar se o valor não está null, ou pode usar:
Hash::check($senhaNormal, $senhaCriptografada);
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!