New:Microsoft Teams Notifications Are Now Available in Socket.Learn more →
Get Started

@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
1.0.2
Version published
Weekly downloads
0
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

Usage

This package supports both modern flat config (ESLint 9+) and legacy config formats (ESLint 8.x and below).

Flat Config (ESLint 9+)

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
    },
  },
];

Legacy Config (ESLint 8.x and below)

Using the legacy preset:

// .eslintrc.js
const { legacy } = require('@testgorilla/tgo-linting');

module.exports = {
  // Your base config
  extends: [
    // Your other extends
  ],
  plugins: ['tgo'],
  overrides: [
    {
      files: ['*.html'],
      parser: '@angular-eslint/template-parser',
      ...legacy,
    },
  ],
};

Manual configuration:

// .eslintrc.js
module.exports = {
  plugins: ['tgo'],
  extends: [
    // Your other extends
  ],
  overrides: [
    {
      files: ['*.html'],
      parser: '@angular-eslint/template-parser',
      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 09 Apr 2026

Related posts