Add new test (E2E WebdriverIO)
Ao adicionar um novo teste ao projeto E2E em tests/e2e/, seguir estas convenções.
Localização
- •Arquivo em tests/e2e/specs/ (na subpasta do fluxo, se houver), com sufixo .spec.ts.
Imports
- •Sempre relativos a partir do spec (ex.:
../../data/Constants,../../screenobjects/HomeScreen,../../helpers/Utils). - •Nunca importar
@playwright/testou APIs Playwright.
Estrutura do teste
- •Runner: Mocha —
describe,it,before,after. - •Device/Browser: Usar
getDeviceFromCapabilities('deviceA')ougetDeviceFromCapabilities('browserA')conforme o config (helpers/Utils.ts). - •Screenobjects: Usar métodos dos screenobjects para interações (ex.:
HomeScreen.waitForIsShown(),CartScreen.tapOnAddButton()). - •Data: Usar constantes de data/Constants.ts ou data/Logins.ts (ex.:
PLACE_NAME_TO_TEST,LOGINS_TO_TEST) em vez de valores fixos quando fizer sentido. - •Seletores: Via helpers
getElementByTestID,getElementByText,getElementByAccessibilityLabel(Utils.ts) ou dentro de screenobjects. - •Assertions:
expect(Mocha/Chai); aguardar comwaitForDisplayed,waitForExistquando necessário. Ex.:expect(element).toBeDisplayed(),expect(value).toEqual(expected). - •Arrange-Act-Assert: Estrutura clara; nome do teste descritivo (cenário + resultado esperado).
- •Async: Todas as interações e assertions assíncronas com async/await.
Allure (opcional)
Se o projeto usar @wdio/allure-reporter, seguir o padrão dos specs existentes (ex.: allureReporter.addFeature, allureReporter.startStep/endStep).
Checklist
- • Arquivo em tests/e2e/specs/ com sufixo .spec.ts
- • Imports relativos (data, screenobjects, helpers)
- • Uso de data/ quando há dados reutilizáveis
- • Nome do teste descreve cenário e resultado esperado
- • Async/await usado de forma consistente
References
- •Exemplos: tests/e2e/specs/basic-features.spec.ts, tests/e2e/specs/cart/checkout-cart.spec.ts
- •Helpers: tests/e2e/helpers/Utils.ts