0
45

SHARE

Como Validar e Testar Blocos Gutenberg

Testes e Validação de Blocos com @wordpress/scripts

Aprenda a testar, validar e garantir a qualidade dos seus blocos personalizados usando as ferramentas nativas do pacote @wordpress/scripts
Este post é a parte 19 de 20 da Série WordPress Extremo: Gutenberg + React + Blocos Customizados

Fala, dev! 👋

Depois de criar seus próprios blocos no Gutenberg com React, CSS, atributos e integração com APIs, é hora de dar um passo importante rumo à qualidade de código: testar e validar seus blocos com ferramentas do pacote @wordpress/scripts.

Hoje você vai aprender a configurar e executar:

  • Lint de JavaScript e JSX
  • Lint de CSS com Stylelint
  • Testes unitários com Jest
  • Validação de blocos com o block-validator

🎯 Por que testar blocos?

  • Evita bugs sutis no editor ou frontend
  • Garante compatibilidade com futuras versões do WordPress
  • Facilita manutenção, refatoração e colaboração em equipe
  • Garante que blocos registrados são válidos e coerentes com o block.json

📦 Dependência: @wordpress/scripts

Se você está seguindo a série, provavelmente já tem esse pacote instalado:

npm install @wordpress/scripts --save-dev

Esse pacote já vem com tudo que você precisa para testes, lint e validações, incluindo:

  • Babel
  • Webpack
  • ESLint
  • Jest
  • Stylelint
  • Block Validator

🧪 1. Rodando validação de blocos

Verifica se a implementação (edit/save) está coerente com o block.json.

npx wp-scripts validate-blocks

Ou, se estiver no package.json:

"scripts": {
  "validate": "wp-scripts validate-blocks"
}

E então:

npm run validate

Isso ajuda a evitar problemas como blocos quebrando quando salvos e recarregados.


🔍 2. ESLint – Lint de JavaScript

Você pode rodar:

npx wp-scripts lint-js

Ou configurar no package.json:

"scripts": {
  "lint:js": "wp-scripts lint-js"
}

Adicione um .eslintrc.json (se quiser ajustes):

{
  "extends": "plugin:@wordpress/eslint-plugin/recommended"
}

🎨 3. Stylelint – Lint de CSS

npx wp-scripts lint-style

E para deixar no package.json:

"scripts": {
  "lint:style": "wp-scripts lint-style"
}

Adicione um .stylelintrc.json:

{
  "extends": "stylelint-config-wordpress"
}

✅ 4. Testes com Jest

Já vem configurado com @wordpress/scripts.

Você pode criar arquivos de teste como meu-bloco.test.js e rodar:

npx wp-scripts test-unit-js

Ou no script:

"scripts": {
  "test": "wp-scripts test-unit-js"
}

Ideal para testar lógica de componentes React (ex: funções, renderizações condicionais, manipulação de atributos).


🧪 Exemplo de teste básico com Jest

import { render } from '@testing-library/react';
import Edit from './edit';

test('renderiza corretamente o bloco', () => {
  const { container } = render(<Edit attributes={{}} setAttributes={() => {}} />);
  expect(container.firstChild).toBeInTheDocument();
});

📁 Estrutura sugerida

blocks/
└── meu-bloco/
    ├── block.json
    ├── edit.js
    ├── save.js
    ├── index.js
    ├── style.css
    └── __tests__/
        └── edit.test.js
Navegação<< Inserindo Blocos via Código ou ShortcodesDistribuindo Seus Blocos: Plugins, Repositório e GitHub >>

Não perca mais nenhuma atualização aqui!

Ative as Notificações!

Clique aqui e, em seguida, clique em Permitir na caixa que aparecerá na parte superior da janela, próximo à barra de endereços.

Torne-se um Assinante e Eleve seu Conhecimento do WordPress!

Acesso Exclusivo, Suporte Especializado e Muito Mais.

Se você está aproveitando nosso conteúdo gratuito, vai adorar os benefícios exclusivos que oferecemos aos nossos assinantes! Ao se tornar um assinante do WP24Horas, você terá acesso a:

Não perca a oportunidade de maximizar seu potencial no WordPress. Clique no botão abaixo para se tornar um assinante e leve suas habilidades ao próximo nível!

Não perca mais nenhuma atualização aqui!

Tabela de Conteúdo
PUBLICIDADE
Últimos Posts
Listagem e Detalhes de Posts WordPress com API REST no Next.js

Listagem de Posts e Roteamento Dinâmico no Next.js

Frontend com Next.js - Setup e Integração Inicial com WordPress

Frontend com Next.js: Setup e Integração Inicial

Configurando o WordPress como Backend Headless

Configurando o WordPress como Backend Headless

REST API do WordPress

REST API do WordPress: Visão Geral

Introdução ao WordPress Headless

Introdução ao WordPress Headless

Como Distribuir Seus Blocos Gutenberg em Plugins ou no GitHub

Distribuindo Seus Blocos: Plugins, Repositório e GitHub

Você precisa estar logado para ver esta informação.

Torne-se um Assinante e Eleve seu Conhecimento do WordPress!

Acesso Exclusivo, Suporte Especializado e Muito Mais.

Se você está aproveitando nosso conteúdo gratuito, vai adorar os benefícios exclusivos que oferecemos aos nossos assinantes! 

Não perca a oportunidade de maximizar seu potencial no WordPress. Clique no botão abaixo para se tornar um assinante e leve suas habilidades ao próximo nível!