testaro-issues
v0.7.5
Published
A classification of about 1300 rules of 11 rule engines into about 400 issues. The rule engines are those in the ensemble of Testaro, which tests web pages for front-end quality (accessibility, usability, and standards conformance).
Maintainers
Readme
testaro-issues
A classification of about 1300 rules of 12 rule engines into about 380 issues. The rule engines are those in the ensemble of Testaro, which tests web pages for front-end quality (accessibility, usability, and standards conformance).
A rule engine is an application, such as HTML CodeSniffer, that tests software.
An issue is a problem, such as a link that does not tell the user what it links to.
A rule is a requirement defined by a rule engine.
Rule engines differ substantially in what they test for. But there is also overlap: multiple rule engines defining similar rules. With overlap, the tests are usually not identical, so it is useful to collect the results from similar tests in one place so you can see what the rule engines agree and disagree on. This repository makes that possible by grouping similar rules into issues.
This repository is a utility for applications using Testaro. They can use it to group the outputs of Testaro jobs for analysis and for presentation to users.
To see how one application uses this utility together with Testaro, see Kilotest and its MCP server.
Data
The data exported by this repository consist of three objects, defined in index.ts:
issues: An object that describes the issues.rules: An object that describes the rules and maps them to issues.issueRules: An object that describes the issues and maps them to rules.
The data underlying the issues and rules objects are statically defined. Those objects are deep-frozen copies of the data. In other words, issues and rules and every object within them are protected from modification. The issueRules object (not frozen) is generated from the issues and rules objects by the makeIssueRules function.
Installation
npm install testaro-issues
Usage
As is
To use the data as-is, import the three exported objects:
const {issues, rules, issueRules} = require('testaro-issues'); // If your application is CommonJS
import {issues, rules, issueRules} from 'testaro-issues'; // If your application is ESMCustomized
The issues and rules objects represent more than a thousand individual decisions, and you may well want to override some of them by revising the objects. You may want to split an issue, combine two issues, assign a rule to a different issue, or adjust the quality score of a rule. You are welcome to work on that purpose in any of three ways:
Propose a change in this repository by submitting an issue.
Fork this repository, perform the installation and build steps described under “Development” below, revise the
issuesDataand/orrulesDataobjects, and submit a pull request.Customize the data in your own application as follows, not as shown above under “As is”:
const {getEditableData, makeIssueRules} = require('testaro-issues'); // If your application is CommonJS import {getEditableData, makeIssueRules} from 'testaro-issues'; // If your application is ESM const {issues, rules} = getEditableData(); // Modify issues and/or rules. Then: const issueRules = makeIssueRules(rules, issues); // If you introduced any inconsistency, you will get an error message
Development
- Clone the repository.
- Install the dev dependencies:
npm install. - Build the CommonJS and ESM bundles plus type declarations into
dist/:npm run build
