Code Monkey home page Code Monkey logo

Comments (11)

filipedeschamps avatar filipedeschamps commented on July 21, 2024 5

Ahh que massa saber que o Paulo é um queridão!

Sobre a vantagem de testar contra a URL, é para tentar chegar mais próximo da borda do ambiente de produção possível, e no caso específico do Now, não vejo diferença alguma entre um ambiente de staging e produção tirando os secrets. Então é uma garantia muito grande, talvez o máximo a se chegar antes de testar direto em produção 😂 faz sentido?

De qualquer forma, isso com certeza não é deal breaker 👍

from brasilapi.

kevenleone avatar kevenleone commented on July 21, 2024 4

Olá pessoal, gostaria deixar uma sugestão para vocês.

Tem uma lib muito daora chamada Cypress, que faz testes E2E com uma API muito simples de se utilizar, que roda em background inclusive. poderiam se criar interfaces (ou não) para realizar através de uma página qualquer essa consulta de CEP de uma forma mais amigável até para o usuário final, sem ser apenas via API.

Basicamente o Cypress iria executar essas ações de testes através de um endpoint, independente de ser localhost ou remoto em algum serviço online, como variável de ambiente.

Se acharem a ideia viável eu poderia tentar fazer algo do tipo e submeter uma PR com a proposta.

Abraços

from brasilapi.

filipedeschamps avatar filipedeschamps commented on July 21, 2024 2

Para testar os Actions de forma gratuita, o repositório precisa estar open. Eu vou abrir ele, dai vou ficar cavucando devagarinho ao longo dos dias 👍

from brasilapi.

mukaschultze avatar mukaschultze commented on July 21, 2024 2

Sobre a vantagem de testar contra a URL, é para tentar chegar mais próximo da borda do ambiente de produção possível

Tem um problema nisso, se o ambiente de produção for modificado e quebrar algo todos os PRs vão começar a acusar erro, mesmo se eles estiverem funcionando corretamente. Quanto mais isolado os testes acontecerem, melhor, fica mais fácil de debugar e encontrar a origem dos problemas.
O ideal é usar um Travis, CircleCI, etc pra fazer os testes, além de que isso permite testar diferentes configurações simultaneamente e falhar de forma mais branda para casos de linting por exemplo.

Se vocês ou o @kevenleone implementarem os testes eu posso fazer essas coisas de CI (no Travis, que eu ja manjo), só deem um ping em mim.

from brasilapi.

filipedeschamps avatar filipedeschamps commented on July 21, 2024 1

Showwww @kevenleone Qualquer contribuição é bem vinda e, sendo aprovada ou não, estamos num estágio agora de projeto que quanto mais alternativas tivermos de código aplicado em mãos para conseguir comparar e conversar, melhor! 😍 👍

from brasilapi.

filipedeschamps avatar filipedeschamps commented on July 21, 2024

Perguntei lá no chat: https://spectrum.chat/zeit/general/how-to-properly-e2e-test-using-next-js-and-now-auto-deploy-to-a-branch~9c3881f7-2cfb-4b2c-b89f-bda512cb6ab2

from brasilapi.

lucianopf avatar lucianopf commented on July 21, 2024

Dúvida: Qual seria a vantagem de testar apontando pra uma URL remota contra subir localmente e testar no próprio CI? 🤔

O trecho da resposta do Paulo (ele é brasileiro e mega sangue bom 😬) está contido em https://zeit.co/docs/v2/git-integrations/zeit-now-for-github na seção Extending Your GitHub Workflow

Eu tava pensando e talvez a gnt consiga inclusive fazer um test durante o build-step no Now.

O Now usa o script build do package.json para buildar uma versão, se esse script falhar a integração irá falhar e o build não vai prosseguir. 🤔
Uma forma de usar isso a nosso favor é fazer tipo:

"build": "npm test && next build",

Será que funciona? 🤔

from brasilapi.

lucianopf avatar lucianopf commented on July 21, 2024

Show mestre!! 🤘

(eu to um pouquinho agarrado no trampo essa última semana e nessa, mas já já consigo um tempo pra focar nesse projeto ❤️)

from brasilapi.

filipedeschamps avatar filipedeschamps commented on July 21, 2024

Show!! Zero necessidade de correria nesse projeto @lucianopf vamos degustar ele com calma 😍

from brasilapi.

filipedeschamps avatar filipedeschamps commented on July 21, 2024

@mukaschultze muito obrigado por entrar na conversa meu caro 🤝 👍

Tem um problema nisso, se o ambiente de produção for modificado e quebrar algo todos os PRs vão começar a acusar erro,

Excelente ponto! Mas na verdade já vi ao contrário, o ambiente de staging quebrar e o ambiente de produção estar funcionando corretamente. O que eu gostaria de forçar o ambiente da ZEIT por que lá não existe diferença no ambiente de Staging e Production, a única diferença que eu percebo é a tag, a classificação, pois é exatamente a mesma infraestrutura, o que muda é o apontamento do DNS. A URL de "staging" é tão produção quanto a URL de "production".

Então apesar de eu me preocupar com diferenças entre ambientes, eu queria testar exatamente isso na infra da ZEIT, que não há diferença.

Agora, uma preocupação interessante e relacionada a isso é se um endpoint depende de um serviço externo e esse serviço modificar a interface ou quebrar.

O que me fez pensar em outra coisa MUITO IMPORTANTE que acabei de criar uma issue para isso: https://github.com/filipedeschamps/BrasilAPI/issues/12

from brasilapi.

filipedeschamps avatar filipedeschamps commented on July 21, 2024

Um caso importante (porém bastante isolado por se tratar de uma feature em beta) mas que mostra como é possível ter diferenças entre um ambiente local e remoto: vercel/next.js#10598

Por se tratar de uma infraestrutura nova para nós, continuo achando mega importante testarmos o E2E com a URL de preview. Eu to fazendo uma versão desses testes com Jest, ta ficando bem legal e vai servir como comparação/discussão do PR https://github.com/filipedeschamps/BrasilAPI/pull/27 To na marcha lenta por conta do canal mas acho que vai funcionar certinho. Se estiver local, ele testa local, se estiver num PR ele pega a URL do preview 👍

from brasilapi.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.