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

Invite to pull request Alegria #14

Open
wants to merge 8 commits into
base: main
Choose a base branch
from

Conversation

guilhermealegria
Copy link

@guilhermealegria guilhermealegria commented Oct 16, 2024

To run test in project npx cypress open --env configEnv=api or npx cypress run --env configEnv=api.
The config in setupNodeEvents follow for check de problem with baseUrl.

@wlsf82 wlsf82 requested review from ldasilvaNZ11 and wlsf82 October 17, 2024 15:48
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ldasilvaNZ11, o .env.example deve sim ser versionado, visto que não contém dados sensíveis, é só um exemplo, como o nome indica, de qual estrutura deve ser usada no .env, esse sim não versionado.

Copy link
Collaborator

@ldasilvaNZ11 ldasilvaNZ11 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Parabens pelo belo trabalho! Conseguiste implementar varios testes de APIs muito bons 👏 Eu fiz algumas observações para levares em consideração, e onde eu achei que talvez precisasse de um feedback mais expert, eu marquei o @wlsf82 para ver o que ele sugeriria naquela situação. Obrigado aprendi bastante revisando o teu codigo, e espero que as sugestões te ajudem nessa jornada! Abraço

cypress/e2e/apitest/customers_request.cy.js Show resolved Hide resolved
@@ -0,0 +1,100 @@
/// <reference types="cypress" />


Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Essa linha tbm pode ser removida pela mesma razão anterior.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Visto que você não implementou a sugestão, essa conversa não deveria ter sido resolvida.

cypress/e2e/apitest/customers_request.cy.js Outdated Show resolved Hide resolved
cypress.config.js Outdated Show resolved Hide resolved
cypress/support/commands.js Outdated Show resolved Hide resolved
.gitignore Show resolved Hide resolved
cypress.config.js Outdated Show resolved Hide resolved
cypress/e2e/apitest/customers_request.cy.js Outdated Show resolved Hide resolved
cypress/e2e/apitest/customers_request.cy.js Show resolved Hide resolved
cypress/e2e/apitest/customers_request.cy.js Show resolved Hide resolved
Copy link
Owner

@wlsf82 wlsf82 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@guilhermealegria, parabéns pela resolução dos exercícios. 👏🏻

Além dos comentários do @ldasilvaNZ11, deixei alguns também, os quais creio que lhe ajudarão a melhorar o design dos teste.

Lembre-se de só enviar novas mudanças para revisão após o encontro de 19/10/2024.

.env.example Outdated Show resolved Hide resolved
.gitignore Show resolved Hide resolved
cypress.config.js Outdated Show resolved Hide resolved
cypress.config.js Outdated Show resolved Hide resolved
cypress.config.js Outdated Show resolved Hide resolved
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Este arquivo faz parte da estrutura padrão do Cypress @ldasilvaNZ11.

Ele é o arquivo principal dos comandos customizados, onde plugins externos são importados e também comandos customizados (cypress/support/commands.j).

Ou seja, tudo certo!

Eu só removeria esse monte de comentários, pra dar uma limpada no arquivo.

cypress/support/e2e.js Outdated Show resolved Hide resolved
cypress/support/e2e.js Outdated Show resolved Hide resolved
package.json Outdated Show resolved Hide resolved
package.json Outdated Show resolved Hide resolved
@wlsf82 wlsf82 removed the request for review from ldasilvaNZ11 October 29, 2024 19:05
Copy link
Owner

@wlsf82 wlsf82 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Parabéns por mais uma rodada de exercícios @guilhermealegria. 👏🏻

Deixei uma séria de comentários os quias espero que lhe ajudem a melhorar suas habilidades de design de testes.

Espero que tenhas gostado da Test Design Masterclass e nos vemos no último encontro.

module.exports = defineConfig({
e2e: {
env:{
grepFilterSpecs: true,
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Vejo que usou o @cypress/grep para a execução dos teste de GUI e API separadamente.

No entanto, uma maneira mais simples seria informar ao Cypress quais arquivos (ou pastas) seriam executados, usando a opção --spec.

Exemplo:

cypress run --spec 'cypress/e2e/gui/*.cy.js'

},
fixturesFolder: false,
setupNodeEvents(on, config) {
require('@cypress/grep/src/plugin')(config);
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ao fazer o que sugeri acima, tal lib nem mesmo seria necessária, tornando o projeto mais simples, que é o que procuramos quando se fala de um bom design: simplicidade.

@@ -0,0 +1,100 @@
/// <reference types="cypress" />


Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Visto que você não implementou a sugestão, essa conversa não deveria ter sido resolvida.

e2e: {
env:{
grepFilterSpecs: true,
baseUrl: 'http://localhost:3001/'
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A propriedade baseUrl deve apontar para a URL do frontend, não da API.

Para a URL da API, você pode definir uma env.

Exemplo:

env: {
  API_URL: 'http://localhost:3001'
}

E a baseUrl deve apontar para http://localhost:3000.


context('Request all customers', () => {
beforeEach('Get request', () => {
cy.request(Cypress.env('baseUrl')).as('customers')
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

baseUrl não é uma env, portanto não é assim que acessa-se a mesma.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Veja o comentário anterior.

cy.visit(Cypress.env('baseUrl'))
cy.setCookie('cookieConsent', value)
})
})
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
})
})

Recomenda-se deixar uma linha em branco ao final de cada arquivo, para evitar que ferramentas como o GitHub exibam o ícone de No newline at end of file.

Isso é uma boa prática e convenção a ser seguida.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Algum motivo por não ter removido os comentários?

// ***********************************************************

// Import commands.js using ES2015 syntax:
import 'cypress-each'
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Se tivesse implementado solução mais simples para os testes, tal lib não seria necessária.

@@ -6,7 +6,9 @@
"install:frontend": "cd frontend && npm install",
"install:backend": "cd backend && npm install",
"start:frontend": "cd frontend && npm start",
"start:server": "cd backend && npm start"
"start:server": "cd backend && npm start",
"cy:api": "npx cypress run --env grepTags=api",
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Em vez de usar o @cypress/grep, você poderia ter feito algo como seguinte:

cypress run --spec 'cypress/e2e/api/*.cy.js'

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

O mesmo vale para o script abaixo.

@@ -30,5 +33,12 @@
"last 1 firefox version",
"last 1 safari version"
]
},
"dependencies": {
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Não resolva conversas sem implementar a sugestão, ou sem justificar a não-implementação.

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

Successfully merging this pull request may close these issues.

3 participants