> ## Documentation Index
> Fetch the complete documentation index at: https://docs.airys.chat/llms.txt
> Use this file to discover all available pages before exploring further.

# Testes End-to-end com Cypress

> Guia para executar testes end-to-end com Cypress para o AirysChat

# Testes end-to-end com Cypress

O AirysChat usa o [Cypress](https://www.cypress.io/) para testes end-to-end. Use os seguintes passos para executar os testes em sua máquina local.

## Preparar o Servidor de Teste

Escolha qualquer um dos métodos fornecidos para executar o seu servidor de teste do AirysChat.

<Tabs>
  <Tab title="Instalação Local">
    ### Usando a Instalação Local do AirysChat

    <Note>
      Você tem que instalar as dependências necessárias como descrito no [guia de configuração](/contributing-guide/setup-guide) para que este método funcione.
    </Note>

    Navegue até a base de código do AirysChat na sua máquina local e execute os seguintes passos:

    #### Crie um banco de dados de teste novo

    ```bash theme={null}
    RAILS_ENV=test bin/rake db:drop
    RAILS_ENV=test bin/rake db:create
    RAILS_ENV=test bin/rake db:schema:load
    ```

    #### Inicie o AirysChat no ambiente de teste

    ```bash theme={null}
    RAILS_ENV=test foreman start -f Procfile.test
    ```

    Carregue a URL no navegador e espere iniciar:

    ```
    http://localhost:5050/app/login
    ```
  </Tab>

  <Tab title="Configuração com Docker">
    ### Usando Docker

    Siga o [guia de configuração do docker](/contributing-guide/environment-setup/docker) até a criação das imagens.

    #### Mude o Ambiente Rails

    Abra o `docker-compose.yaml` e atualize todos os valores de `RAILS_ENV` de `development` para `test`:

    ```yaml theme={null}
    # Em docker-compose.yaml
    environment:
      - RAILS_ENV=test  # Change from development to test
    ```

    #### Atualize a Porta

    Na seção rails do seu `docker-compose.yaml` atualize o valor da porta conforme fornecido abaixo:

    ```yaml theme={null}
    # Em docker-compose.yaml
    ports:
      - 5050:3000  # Change from 3000:3000 to 5050:3000
    ```

    #### Redefina o Banco de Dados

    ```bash theme={null}
    docker-compose run --rm rails bundle exec rails db:reset
    ```

    #### Inicie o Docker do AirysChat no ambiente de teste

    ```bash theme={null}
    docker-compose up
    ```

    Carregue a URL no navegador e espere iniciar:

    ```
    http://localhost:5050/app/login
    ```
  </Tab>
</Tabs>

## Executar o Cypress

Carregue `localhost:5050` no seu navegador e certifique-se de que o servidor do AirysChat esteja rodando.

Navegue até o seu diretório local do AirysChat e execute o seguinte comando para rodar os testes do Cypress:

```bash theme={null}
pnpm cypress open --project ./spec
```

Isso abrirá o Cypress Test Runner onde você pode:

1. **Escolher um navegador** para rodar os testes
2. **Selecionar arquivos de teste** para rodar testes individuais ou todos
3. **Assistir aos testes rodarem** em tempo real com execução passo a passo
4. **Depurar testes falhos** com informações detalhadas sobre os erros

## Obtendo Ajuda

Se você encontrar problemas com os testes do Cypress:

* **Documentação do Cypress**: [Docs Oficiais do Cypress](https://docs.cypress.io/)
* **Boas Práticas do Cypress**: [Guia de Testes](https://docs.cypress.io/guides/references/best-practices)
* **Erros Comuns**: Veja [Erros Comuns](/contributing-guide/common-errors)
* **Suporte da Comunidade**: [Discord](https://discord.com/invite/cJXdrwS)

## Recursos Úteis

* **Referência da API do Cypress**: [https://docs.cypress.io/api/table-of-contents](https://docs.cypress.io/api/table-of-contents)
* **Testing Library**: [Utilitários de teste para melhor seleção de elementos](https://testing-library.com/)
* **Exemplos do Cypress**: [Exemplos do mundo real](https://github.com/cypress-io/cypress-example-recipes)

***

Seu ambiente de testes Cypress agora está pronto para testes end-to-end abrangentes! 🧪
