{ "env": { "browser": true, // ==> Define que o código será executado em um ambiente de navegador "es2021": true, // ==> Define que o código pode usar recursos do ECMAScript 2021 "node": true // ==> Define que o código será executado em um ambiente Node.js }, "extends": [ "eslint:recommended", // ==> Estende as regras recomendadas pelo ESLint "plugin:playwright/playwright-test" // ==> Estende as regras recomendadas para testes do Playwright ], "parser": "@babel/eslint-parser", // ==> Adicione esta linha "parserOptions": { "ecmaVersion": 12, // ==> Define a versão mais recente do ECMAScript que o parser deve suportar "requireConfigFile": false, "allowImportExportEverywhere": true, "sourceType": "module" // ==> Indica que o código é um módulo ECMAScript }, "plugins": [ "playwright", // ==> Habilita o plugin do Playwright para adicionar regras específicas para testes do Playwright "import" // ==> Habilita o plugin de importação para adicionar regras específicas para importações ], "rules": { "sort-vars": [ "error", { "ignoreCase": true } ], // ==> Gera um erro se as variáveis não estiverem classificadas "sort-imports": "off", // ==> Gera um erro se as importações não estiverem classificadas "import/order": [ "error", { "groups": [ "builtin", "external", "internal", "parent", "sibling", "index" ], "pathGroups": [ { "pattern": "**/helpers/**", "group": "builtin" }, { "pattern": "**/api/**", "group": "parent" }, { "pattern": "**/db/**", "group": "sibling" }, { "pattern": "**/data/**", "group": "index" }, { "pattern": "react", "group": "external", "position": "before" } ], "newlines-between": "always-and-inside-groups" } ], // ==> Gera um erro se as importações não estiverem classificadas "linebreak-style": 0, // ==> Desabilita a regra de estilo de quebra de linha "quotes": [ "error", "single" ], // ==> Define que as aspas simples devem ser usadas para strings "semi": [ "error", "always" ], // ==> Define que um ponto e vírgula deve ser colocado sempre no final de uma declaração "comma-spacing": [ "error" ], // ==> Verifica se há espaçamento adequado antes e depois das vírgulas "no-use-before-define": [ "error", { "functions": true, "classes": true, "variables": false } ], // ==> Gera um erro se uma variável é usada antes de ser definida "prefer-const": [ "error", { "destructuring": "all" } ], // ==> Gera um erro se uma variável declarada com 'let' pode ser declarada com 'const' "no-new-object": "error", // ==> Gera um erro ao usar a sintaxe de construtor de objeto ({}) "no-array-constructor": "error", // ==> Gera um erro ao usar a sintaxe de construtor de array ([]) "max-len": "off", // ==> Desabilita a regra de limite máximo de caracteres por linha "no-confusing-arrow": [ "error", { "allowParens": false } ], // ==> Gera um erro ao usar a sintaxe de seta de forma confusa "no-mixed-operators": "error", // ==> Gera um erro ao usar operadores misturados sem parênteses "no-tabs": [ "error", { "allowIndentationTabs": true } ], // ==> Gera um erro ao usar tabs para indentação "valid-jsdoc": [ "error", { "requireReturn": false, "requireParamDescription": true, "requireParamType": true, "requireReturnType": false, "preferType": { "String": "string", "Number": "number", "Boolean": "boolean", "Symbol": "symbol", "function": "Function", "object": "Object", "date": "Date", "error": "Error" } } ], // ==> Verifica a presença de documentação JSDoc em funções e métodos "no-var": "error", // ==> Não permite o uso de 'var' para declaração de variáveis "no-unused-vars": "error", // ==> Gera um erro se houver variáveis não utilizadas "new-cap": 0, // ==> Desabilita a verificação de nomes de variáveis e propriedades que não são construtores de classe capitalizados "playwright/expect-expect": "off", // ==> Gera um erro se não houver expectativas em testes do Playwright "playwright/no-useless-await": "off", // ==> Desativa a regra que verifica await desnecessários "playwright/no-raw-locators": "off", // ==> Desativa a regra que proíbe o uso de localizadores brutos "playwright/no-page-pause": "error", // ==> Proibir uso de page.pause "playwright/no-duplicate-hooks": "error", // ==> Gera um erro se houver ganchos duplicados em testes do Playwright "playwright/no-get-by-title": "error", // ==> Gera um erro ao usar getByTitle para localizar elementos no Playwright "playwright/no-nth-methods": "off", // ==> Gera um erro ao usar métodos nth para localizar elementos no Playwright "playwright/no-first-method": "off", // ==> Gera um erro ao usar métodos first para localizar elementos no Playwright "playwright/no-restricted-matchers": "error", // ==> Gera um erro ao usar matchers restritos no Playwright "playwright/prefer-comparison-matcher": "error", // ==> Prefere o uso de matchers de comparação no Playwright "playwright/prefer-equality-matcher": "error", // ==> Prefere o uso de matchers de igualdade no Playwright "playwright/prefer-hooks-in-order": "error", // ==> Prefere que os ganchos sejam usados em uma ordem específica no Playwright "playwright/prefer-hooks-on-top": "error", // ==> Prefere que os ganchos sejam definidos no topo dos testes no Playwright "playwright/prefer-lowercase-title": "error", // ==> Prefere que os títulos dos testes sejam em minúsculas no Playwright "playwright/prefer-strict-equal": "error", // ==> Prefere o uso de strictEqual em afirmações no Playwright "playwright/prefer-to-be": "error", // ==> Prefere o uso de toBe em afirmações no Playwright "playwright/prefer-to-contain": "error", // ==> Prefere o uso de toContain em afirmações no Playwright "playwright/prefer-to-have-count": "error", // ==> Prefere o uso de toHaveCount em afirmações no Playwright "playwright/prefer-to-have-length": "error", // ==> Prefere o uso de toHaveLength em afirmações no Playwright "playwright/require-to-throw-message": "error", // ==> Gera um erro se uma mensagem não for fornecida ao usar toThrow no Playwright "playwright/require-top-level-describe": "error" // ==> Gera um erro se não houver um describe no nível superior nos testes do Playwright } }