# Rondleysg QA Agents Wdio Skill QA Wdio Add New Test

> Add new test (E2E WebdriverIO)

- Skill: `tomevault-io/rondleysg-qa-agents-wdio-skill-qa-wdio-add-new-test` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/rondleysg-qa-agents-wdio-skill-qa-wdio-add-new-test`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/rondleysg-qa-agents-wdio-skill-qa-wdio-add-new-test/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/rondleysg-qa-agents-wdio-skill-qa-wdio-add-new-test

---


# 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/test` ou APIs Playwright.

## Estrutura do teste

- **Runner:** Mocha — `describe`, `it`, `before`, `after`.
- **Device/Browser:** Usar `getDeviceFromCapabilities('deviceA')` ou `getDeviceFromCapabilities('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 com `waitForDisplayed`, `waitForExist` quando 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

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/rondleysg) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-15 -->

