
Security News
Happy Birthday, Shai-Hulud
It has been one year since Shai-Hulud made its first appearance on npm.
@testgorilla/tgo-linting
Advanced tools
Linting rules and code quality standards for TestGorilla projects.
npm install @testgorilla/tgo-linting @angular-eslint/template-parser --save-dev
| tgo-linting | ESLint | angular-eslint | Angular |
|---|---|---|---|
| 5.1+ | ^10.0.0 | 21.x | any (angular-eslint 21 bundles its own compiler) |
| 5.0 | ^9.0.0 || ^10.0.0 | 21.x | any (angular-eslint 21 bundles its own compiler) |
| 4.x | ^8.57.0 || ^9.0.0 | 20.x | any |
ESLint 9 support ended in 5.1.0. 5.0.0 kept the
^9.0.0 || ^10.0.0peer range so repos could adopt the preset before finishing their ESLint 10 migration. All consumers completed that migration alongside the Angular 21 upgrade, so 5.1.0 narrows the range to ESLint 10 only. Stay on 5.0.0 if you are still on ESLint 9 — and note that 5.0.0 also required aneslint-plugin-rxjs-xoverride to install cleanly on 9, which 5.1.0 no longer needs.
5.1.0 restores the @eslint/js recommended baseline in the recommended() preset. Up to
5.0.0 the preset only spread the typescript-eslint configs, whose eslint-recommended slice
disables the core rules TypeScript already covers but never enables the rest — so core
rules such as no-prototype-builtins, no-duplicate-case, no-async-promise-executor,
no-unsafe-optional-chaining and no-misleading-character-class were silently inactive in
consumers. The same release cherry-picks @angular-eslint/template/no-any and
template/no-duplicate-attributes onto the HTML block.
No config change is needed, but expect new violations on first run after the bump. Dry-run
npx eslint . before merging the upgrade.
5.1.0 also drops ESLint 9: both the eslint peer range and the bundled @eslint/js
dependency are now ^10.0.0. @eslint/js@10.0.1 itself declares an eslint: ^10.0.0
peer, so an ESLint 9 install would fail to resolve rather than degrade quietly.
This package requires ESLint flat config (eslint.config.js/.mjs) and ESLint 10.
Support for legacy .eslintrc.* configs and ESLint 8 was removed in 5.0.0; ESLint 9
support ended in 5.1.0.
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
},
},
];
tgo/require-data-testid rule only works with HTML/Angular templates. You must configure @angular-eslint/template-parser for .html files.@angular-eslint, the template parser is usually already configured for HTML files in your overrides.| Rule | Description |
|---|---|
tgo/require-data-testid | Ensures specific HTML elements have a data-testid attribute for E2E testing |
Detailed documentation for each rule, including examples and configuration options, can be found alongside the rule implementation:
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:
Update this README by adding the new rule to the rules table above
Test your changes:
nx test tgo-linting
nx build tgo-linting
nx build tgo-linting
nx test tgo-linting
nx lint tgo-linting
PROPRIETARY - © TestGorilla
FAQs
Linting rules and code quality standards for TestGorilla projects
The npm package @testgorilla/tgo-linting receives a total of 574 weekly downloads. As such, @testgorilla/tgo-linting popularity was classified as not popular.
We found that @testgorilla/tgo-linting demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.

Security News
It has been one year since Shai-Hulud made its first appearance on npm.

Research
/Security News
Operators behind PolinRider used a compromised GitHub account to plant malware in four development versions of a Packagist package with 700,000+ downloads.

Security News
GitHub Actions now supports cache-mode, a least-privilege control on the Actions cache aimed at the cache poisoning technique behind recent compromises.