🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@testgorilla/tgo-linting

Package Overview
Dependencies
Maintainers
2
Versions
10
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

latest
npmnpm
Version
5.0.0
Version published
Maintainers
2
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

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts