Skip to content

Commit

Permalink
docs: add pt-BR translation to Poku and Helpers sections (#656)
Browse files Browse the repository at this point in the history
* docs: translate getting started page

* docs: translate philosophy page

* docs: adds include directories and files translation page

* docs: adds config files translation page

* docs: adds parallel translation page

* docs: adds filter translation page

* docs: adds platform translation page

* docs: adds exclude translation page

* docs: moves poku cateogry autogenerated section to sidebars config

* feat: adds translations to history component

* docs: adds all documentation section to sidebars file

* chore: fixes lint

* Update website/i18n/pt-BR/docusaurus-plugin-content-docs/current/documentation/poku/config-files.mdx

* Update website/i18n/pt-BR/docusaurus-plugin-content-docs/current/documentation/poku/config-files.mdx

* Update website/i18n/pt-BR/docusaurus-plugin-content-docs/current/documentation/poku/config-files.mdx

* Update website/i18n/pt-BR/docusaurus-plugin-content-docs/current/documentation/poku/config-files.mdx

* Update website/i18n/pt-BR/docusaurus-plugin-content-docs/current/documentation/poku/options/exclude.mdx

* Update website/i18n/pt-BR/docusaurus-plugin-content-docs/current/index.mdx

* Update website/i18n/pt-BR/docusaurus-plugin-content-docs/current/index.mdx

* Update website/i18n/pt-BR/docusaurus-plugin-content-docs/current/index.mdx

* Update website/i18n/pt-BR/docusaurus-plugin-content-docs/current/index.mdx

* Update website/i18n/pt-BR/docusaurus-plugin-content-docs/current/documentation/poku/config-files.mdx

* Update website/i18n/pt-BR/docusaurus-plugin-content-docs/current/documentation/poku/options/exclude.mdx

* Update website/i18n/pt-BR/docusaurus-plugin-content-docs/current/documentation/poku/config-files.mdx

* Update website/i18n/pt-BR/docusaurus-plugin-content-docs/current/documentation/poku/config-files.mdx

* Update website/i18n/pt-BR/docusaurus-plugin-content-docs/current/documentation/poku/options/exclude.mdx

* Revert "docs: adds all documentation section to sidebars file"

This reverts commit e8bd379.

* Revert "feat: adds translations to history component"

This reverts commit d305d6a.

* Revert "docs: moves poku cateogry autogenerated section to sidebars config"

This reverts commit 8b55ce9.

* chore: fixes lint

* chore: fixes install ancor

* chore: fixes broken ancor

* docs: small adjustments

* docs: fix lint

* docs: adds quiet option translate

* chore: fixes config files sentence

* docs: adds debug option translate

* docs: adds fail-fast option translate

* docs: adds concurrency option translate

* docs: adds watch option translate

* docs: adds deno option translate

* docs: adds no-exit option translate

* docs: adds assert page translate

* docs: adds test helper translation

* docs: adds describe helper translation

* docs: adds it helper translation

* docs: adds env helper translation

* docs: adds skip helper translation

* docs: adds per-file helper translation

* docs: adds in-code helper translation

* docs: adds container helper translation

* docs: adds startScript helper translation

* chore: fixes sentence at startScript file

* chore: fixes lint

* Update website/i18n/pt-BR/docusaurus-plugin-content-docs/current/documentation/assert/index.mdx

* Update website/i18n/pt-BR/docusaurus-plugin-content-docs/current/documentation/assert/index.mdx

* Update website/i18n/pt-BR/docusaurus-plugin-content-docs/current/documentation/assert/index.mdx

* Update website/i18n/pt-BR/docusaurus-plugin-content-docs/current/documentation/assert/index.mdx

* Update website/i18n/pt-BR/docusaurus-plugin-content-docs/current/documentation/helpers/test.mdx

* Update website/i18n/pt-BR/docusaurus-plugin-content-docs/current/documentation/poku/options/fail-fast.mdx

* Update website/i18n/pt-BR/docusaurus-plugin-content-docs/current/documentation/poku/options/concurrency.mdx

---------

Co-authored-by: Weslley Araújo <46850407+wellwelwel@users.noreply.github.com>
  • Loading branch information
mrspaiva and wellwelwel committed Aug 6, 2024
1 parent 2b0528a commit f8e50a7
Show file tree
Hide file tree
Showing 18 changed files with 1,585 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -0,0 +1,189 @@
---
sidebar_position: 2
tags: [assert, assertions, expect]
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import { FAQ } from '@site/src/components/FAQ';

# 🕵🏻 Assert

O **Poku** inclui o método `assert` nativo do [**Node.js**][node-version-url], mantendo tudo como está, mas fornecendo legibilidade para humanos.<br/>
Suporta tanto o [**Bun**][bun-version-url] quanto o [**Deno**][deno-version-url].

[node-version-url]: https://github.com/nodejs/node
[bun-version-url]: https://github.com/oven-sh/bun
[deno-version-url]: https://github.com/denoland/deno

- Compatível com [**Node.js**][node-version-url], [**Bun**][bun-version-url] e [**Deno**][deno-version-url]

> O `assert` é usado para escrever testes e verificar se seu código funciona como esperado, comparando valores e lançando erros 🧑🏻‍🎓
## Migrando para o `assert` do **Poku**

_Mas apenas se você quiser, é claro._

Asserções padrões:

```diff
- import assert from 'node:assert';
+ import { assert } from 'poku';
```

Asserções estritas:

```diff
- import assert from 'node:assert/strict';
+ import { strict as assert } from 'poku';
```

- O método `strict` está disponível para **Node.js 16** em diante, **Bun** e **Deno**.

```ts
assert(true, 'Isso é válido 🧪');
assert.strictEqual(1, '1', 'O Poku irá descrever isso e mostrar um erro 🐷');
// ...
```

:::tip
O `assert` do **Poku** usará a mensagem exatamente como seria ao usar `describe` e `it`. <br />
Seu **Poku** está esperando por você 🐷✨
:::

<hr />

📘 Para aprender sobre asserções, veja o tutorial rápido: [De um teste de asserção básico à sua execução](/docs/tutorials/beginner).

<hr />

## Métodos Disponíveis

```ts
import { assert } from 'poku';
// import { strict as assert } from 'poku';
```

<FAQ title='Asserções positivas' open>

### Verdadeira

```ts
assert(valor[, mensagem])
```

```ts
assert.ok(valor[, mensagem])
```

### Igualdade

```ts
assert.equal(atual, esperado[, mensagem])
```

```ts
assert.strictEqual(atual, esperado[, mensagem])
```

### Igualdade Profunda

```ts
assert.deepEqual(atual, esperado[, mensagem])
```

```ts
assert.deepStrictEqual(atual, esperado[, mensagem])
```

### Correspondente

```ts
assert.match(string, regexp[, mensagem])
```

### Sucesso

```ts
assert.doesNotReject(asyncFn[, erro][, mensagem])
```

```ts
assert.doesNotThrow(fn[, erro][, mensagem])
```

</FAQ>

<FAQ title='Asserções Negativas'>

### Desigualdade

```ts
assert.notEqual(atual, esperado[, mensagem])
```

```ts
assert.notStrictEqual(atual, esperado[, mensagem])
```

### Desigualdade Profunda

```ts
assert.notDeepEqual(atual, esperado[, mensagem])
```

```ts
assert.notDeepStrictEqual(atual, esperado[, mensagem])
```

### Não Correspondente

```ts
assert.doesNotMatch(string, regexp[, mensagem])
```

### Falha

```ts
assert.rejects(asyncFn[, erro][, mensagem])
```

```ts
assert.throws(fn[, erro][, mensagem])
```

</FAQ>

<FAQ title='Tratamento de Erro'>

### Falso

```ts
assert.ifError(valor);
```

- _Teste para um valor de erro, útil em callbacks_

### Falha Forçada

```ts
assert.fail([mensagem]);
```

</FAQ>

Você pode seguir a [**documentação do assert**](https://nodejs.org/api/assert.html) da documentação do **Node.js**.

:::note
Para o **Node.js**, os métodos `assert.match` e `assert.doesNotMatch` estão disponíveis a partir da versão 12 ou superior.
:::

:::info

Para compilar testes usando `assert` com **TypeScript**, você pode precisar instalar o **@types/node**:

```bash
npm i -D @types/node
```

:::
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
---
sidebar_position: 2
tags: [hooks, setup, teardown]
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

# No Código

## `beforeEach` e `afterEach`

Tanto `beforeEach` quanto `afterEach` são recomendados para testes que utilizam um estado global específico para cada teste.<br />
Por exemplo, populando ou reiniciando um banco de dados antes e/ou depois de várias asserções.

### Uso Básico

```ts
import { test, beforeEach, afterEach } from 'poku';

const prepareService = () => true;
const resetService = () => true;

beforeEach(() => prepareService());

afterEach(() => resetService());

test(() => {
// faça o que quiser
});

test(() => {
// faça o que quiser
});
```

### Usando promessas

```ts
import { test, beforeEach, afterEach } from 'poku';

const prepareService = () => new Promise((resolve) => resolve(true));

const resetService = () => new Promise((resolve) => resolve(true));

beforeEach(async () => await prepareService());
afterEach(async () => await resetService());

await test(async () => {
// faça o que quiser
});

await test(async () => {
// faça o que quiser
});
```

:::tip

Você pode sobrescrever tanto `beforeEach` quanto `afterEach` declarando-os novamente a qualquer momento.

O **Poku** fornece três métodos opcionais tanto para `beforeEach` quanto para `afterEach`:

- `.pause()`
- `.continue()`
- `.reset()`

:::
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
---
sidebar_position: 1
tags: [hooks, setup, teardown]
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import { FAQ } from '@site/src/components/FAQ';
import Success from '@site/static/img/each-success.png';
import Failure from '@site/static/img/each-fail.png';

# Por Arquivo

## Executando um callback antes e depois de cada arquivo de teste

- [x] `poku` **API**
- [ ] `poku` **CLI**

O **Poku** traz uma maneira simples de executar um callback antes e/ou depois de cada arquivo de teste.

<Tabs>
<TabItem default value='test/run.test.js'>

```ts
import { poku } from 'poku';

const prepareService = () => new Promise((resolve) => resolve(undefined));
const resetService = () => new Promise((_, reject) => reject('Vamos fazer com que falhe'));

await poku('test/unit', {
beforeEach: prepareService,
afterEach: resetService,
});
```

```bash
npx poku test/run.test.js
```

</TabItem>
</Tabs>

<FAQ title="Caso de Sucesso" >

<img src={Success} />

</FAQ>

<FAQ title="Caso de Falha (verifique o debug)" >

<img src={Failure} />

</FAQ>

<hr />

:::tip
O modo "por arquivo" se aproxima dos plugins, embora essa não fosse a intenção original.
:::

:::danger
Embora também funcione com execuções `parallel`, é fortemente desaconselhado usar esses recursos para testes concorrentes.
:::
Loading

0 comments on commit f8e50a7

Please sign in to comment.