1.0.0-beta.2.1 • Published 1 year ago

robot-helper v1.0.0-beta.2.1

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

Robot Helper

Este pacote contém um conjunto de funções utilitárias para auxilia-lo na escrita de testes unitários e E2E usando Robot Pattern. Desde interações básicas com a interface como o cliock de um botão, até formas práticas de mockar chamadas a API's ou banco de dados o Robot Helper foi construido pensando na melhor forma de otimizar a escrita de testes com o Robot Pattern e deixa-lo ainda mais legível. Para mais informações acesso o repositório do pacote: Static Badge

Índice

Pré requisitos

Npm

Instalação

Para instalar este pacote, você precisa ter o Node.js e o npm instalados em sua máquina. Depois, você pode instalar o pacote com o seguinte comando:

npm install robot-helper -D

Importação

Depois de instalar o pacote, você pode importá-lo em seu arquivo de teste da seguinte maneira:

import robotHelper from 'robot-helper';

e desestruturar os helpers assim:

const { actionHelper, mockHelper, assertHelper } = robotHelper;

Documentação

Métodos

triggerEvent()

Este método procura um elemento na tela pelo texto e dispara um evento. Se nenhum evento for especificado, um clique será disparado. Ele lança um erro se o elemento não for encontrado ou se o evento não existir em fireEvent.

fillFormField()

Este método procura um campo de entrada (input) pelo texto do placeholder e preenche com o valor fornecido. Ele lança um erro se o campo não for encontrado ou se não for uma instância de HTMLInputElement.

clickButton()

Este método procura um botão pelo texto e dispara um evento de clique. Ele lança um erro se o botão não for encontrado.

Uso

import robotHelper from 'robotHelper';

const { actionHelper } = robotHelper;

// Para disparar um evento de clique em um elemento
await actionHelper.triggerEvent('Texto do Elemento');

// Para preencher um campo de entrada
await actionHelper.fillFormField('Texto do Placeholder', 'Valor');

// Para clicar em um botão
await actionHelper.clickButton('Texto do Botão');

Métodos

checkIf()

Este método recebe dois valores, um matcher e um modifier opcional. Ele usa o matcher para comparar os dois valores e o modifier para modificar o comportamento da comparação. Por exemplo, se o modifier for 'not', a comparação será invertida.

asyncCheckIf

Este método é semelhante ao checkIf, mas é assíncrono. Ele é útil para comparações que envolvem operações assíncronas.

checkArray()

Este método realiza uma operação em um array e verifica se o resultado é igual ao valor fornecido. A operação pode ser 'contains' para verificar se o array contém um valor, ou 'length' para verificar o comprimento do array.

checkObject()

Este método realiza uma operação em um objeto e verifica se o resultado é igual ao valor fornecido. A operação pode ser 'hasProperty' para verificar se o objeto tem uma propriedade, ou 'keys' para verificar as chaves do objeto.

verifyElementPresence()

Este método verifica se um elemento com o texto fornecido está presente na tela.

verifyElementAbsence()

Este método verifica se um elemento com o texto fornecido não está presente na tela.

Uso

import robotHelper from 'robotHelper';

const { assertHelper } = robotHelper;

// Para verificar se dois valores são iguais
assertHelper.checkIf(received, expected, 'toEqual');

// Para verificar se um array contém um valor
assertHelper.checkArray(array, 'contains', value);

// Para verificar se um objeto tem uma propriedade
assertHelper.checkObject(object, 'hasProperty', propertyName);

// Para verificar a presença de um elemento
await assertHelper.verifyElementPresence('Texto do Elemento');

// Para verificar a ausência de um elemento
await assertHelper.verifyElementAbsence('Texto do Elemento');

Métodos

fetchSuccess()

Este método simula uma chamada de fetch bem-sucedida com os dados fornecidos e um tempo limite opcional. Ele substitui global.fetch por uma função que retorna uma promessa que resolve para um objeto de resposta com os dados fornecidos e um status de 200.

fetchFailure()

Este método simula uma chamada de fetch que falha com o erro fornecido e um tempo limite opcional. Ele substitui global.fetch por uma função que retorna uma promessa que rejeita com o erro fornecido.

fetchWithStatus()

Este método simula uma chamada de fetch com os dados fornecidos, um status de resposta e um tempo limite opcional. Ele substitui global.fetch por uma função que retorna uma promessa que resolve para um objeto de resposta com os dados fornecidos e o status fornecido.

clearFetchMock()

Este método limpa o mock de fetch, substituindo global.fetch por uma função vazia.

Uso

import robotHelper from 'robotHelper';

const { mockHelper } = robotHelper;

// Para simular uma chamada de fetch bem-sucedida
mockHelper.fetchSuccess({ key: 'value' });

// Para simular uma chamada de fetch que falha
mockHelper.fetchFailure(new Error('Network error'));

// Para simular uma chamada de fetch com um status específico
mockHelper.fetchWithStatus({ key: 'value' }, 404);

// Para limpar o mock de fetch
mockHelper.clearFetchMock();

Tecnologias usadas

Pensando no desempenho e na escalabilidade deste pacote e do seu projeto, escolhemos as tecnologias mais avançadas do mercado para compor nosso projeto. Elas são: React Jest Typescript Testing Library

Contribuindo

Contribuições são bem-vindas. Por favor, abra uma issue primeiro para discutir o que você gostaria de mudar.

Licença

License: MIT

1.0.0-beta.2.1

1 year ago

1.0.0-beta.2

1 year ago

1.0.0-beta.1

1 year ago

1.0.0-beta

1 year ago