Sign In

@testgorilla/tgo-linting

Package Overview
Dependencies
Maintainers
2
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@testgorilla/tgo-linting

Linting rules and code quality standards for TestGorilla projects

npmnpm
Version
5.0.0
Version published
Weekly downloads
1.5K
93.84%
Maintainers
2
Weekly downloads
 
Created
Source

@testgorilla/tgo-linting

Linting rules and code quality standards for TestGorilla projects.

Installation

npm install @testgorilla/tgo-linting @angular-eslint/template-parser --save-dev

Compatibility

tgo-lintingESLintangular-eslintAngular
5.x^9.0.0 || ^10.0.021.xany (angular-eslint 21 bundles its own compiler)
4.x^8.57.0 || ^9.0.020.xany

ESLint 9 consumers: the bundled eslint-plugin-rxjs-x@1.0.2 declares an eslint: ^10 peer dependency (no release of that plugin supports ESLint 9 and 10 simultaneously). Until your repo moves to ESLint 10, keep this override in your package.json so npm install resolves cleanly:

"overrides": {
  "eslint-plugin-rxjs-x": {
    "eslint": "$eslint"
  }
}

Consumers on ESLint 10 do not need the override.

Usage

This package requires ESLint flat config (eslint.config.js/.mjs) and ESLint 9 or 10. Support for legacy .eslintrc.* configs and ESLint 8 was removed in 5.0.0.

Flat Config

Recommended approach:

// eslint.config.js
import tgoPlugin from '@testgorilla/tgo-linting';

export default [
  tgoPlugin.configs.recommended,
  // Your other configurations
];

Manual configuration:

// eslint.config.js
import tgoPlugin from '@testgorilla/tgo-linting';

export default [
  {
    plugins: {
      tgo: tgoPlugin,
    },
    rules: {
      'tgo/require-data-testid': 'warn', // Example rule configuration
    },
  },
];

Important Notes

  • Template Parser Required: The tgo/require-data-testid rule only works with HTML/Angular templates. You must configure @angular-eslint/template-parser for .html files.
  • Angular Projects: If you're using @angular-eslint, the template parser is usually already configured for HTML files in your overrides.

Rules

Available Rules

RuleDescription
tgo/require-data-testidEnsures specific HTML elements have a data-testid attribute for E2E testing

Rule Documentation

Detailed documentation for each rule, including examples and configuration options, can be found alongside the rule implementation:

  • require-data-testid - Enforces data-testid attributes on specified elements

Adding New Rules

To add a new ESLint rule to this package:

  • Create the rule file in src/rules/:

    // src/rules/your-rule-name.ts
    import { Rule } from 'eslint';
    
    const rule: Rule.RuleModule = {
      meta: {
        type: 'problem', // or 'suggestion' or 'layout'
        docs: {
          description: 'Your rule description',
          category: 'Best Practices',
          recommended: false,
        },
        schema: [], // JSON schema for rule options
        messages: {
          // Define error messages here
        },
      },
      create(context) {
        // Your rule implementation
        return {
          // AST node visitors
        };
      },
    };
    
    export default rule;
    
  • Add tests in src/rules/your-rule-name.spec.ts:

    import { RuleTester } from '@typescript-eslint/rule-tester';
    import rule from './your-rule-name';
    
    const ruleTester = new RuleTester({
      parser: '@angular-eslint/template-parser',
    });
    
    ruleTester.run('your-rule-name', rule, {
      valid: [
        // Test cases that should pass
      ],
      invalid: [
        // Test cases that should fail
      ],
    });
    
  • Export the rule in src/rules/index.ts:

    import yourRuleName from './your-rule-name';
    
    export const rules = {
      'require-data-testid': requireDataTestId,
      'your-rule-name': yourRuleName,
    };
    
  • Add to recommended config (optional) in src/configs/recommended.ts:

    rules: {
      'tgo/require-data-testid': 'warn',
      'tgo/your-rule-name': 'error', // or 'warn'
    }
    
  • Document the rule in src/rules/your-rule-name.md:

    • Describe what the rule does
    • Provide configuration options
    • Show correct and incorrect code examples
    • Explain the rationale
  • Update this README by adding the new rule to the rules table above

  • Test your changes:

    nx test tgo-linting
    nx build tgo-linting
    

Development

Building

nx build tgo-linting

Testing

nx test tgo-linting

Linting

nx lint tgo-linting

License

PROPRIETARY - © TestGorilla

FAQs

Package last updated on 21 Jul 2026

Related posts