Merge pull request #26309 from JoshuaKGoldberg/axe-webdriverjs

Added types for axe webdriverjs
This commit is contained in:
Armando Aguirre
2018-06-06 13:03:48 -07:00
committed by GitHub
7 changed files with 146 additions and 2 deletions

View File

@@ -124,7 +124,7 @@
"libraryName": "axe-core",
"typingsPackageName": "axe-core",
"sourceRepoURL": "https://github.com/dequelabs/axe-core",
"asOfVersion": "2.0.7"
"asOfVersion": "3.0.3"
},
{
"libraryName": "axios",

View File

@@ -0,0 +1,31 @@
import { Result, RunOptions, Spec } from "axe-core";
import { AxeBuilder, AxeAnalysis } from "axe-webdriverjs";
import { WebDriver } from "selenium-webdriver";
const inTest = async (webDriver: WebDriver) => {
const builderCalled: AxeBuilder = AxeBuilder(webDriver);
const builderNewed: AxeBuilder = new AxeBuilder(webDriver);
const runOptions: RunOptions = {};
const spec: Spec = {};
const analysis: AxeAnalysis = await AxeBuilder(webDriver)
.include("include")
.exclude("exclude")
.options(runOptions)
.withRules("rule")
.withRules(["rule", "rule"])
.withTags("tag")
.withTags(["tag", "tag"])
.disableRules("rule")
.disableRules(["rule", "rule"])
.configure(spec)
.analyze((internalResults: AxeAnalysis) => {});
const inapplicable: Result[] = analysis.inapplicable;
const incomplete: Result[] = analysis.incomplete;
const passes: Result[] = analysis.passes;
const timestamp: string = analysis.timestamp;
const url: string = analysis.url;
const violations: Result[] = analysis.violations;
};

83
types/axe-webdriverjs/index.d.ts vendored Normal file
View File

@@ -0,0 +1,83 @@
// Type definitions for axe-webdriverjs 2.0
// Project: https://github.com/dequelabs/axe-webdriverjs#readme
// Definitions by: My Self <https://github.com/JoshuaKGoldberg>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
import { Result, RunOptions, Spec } from "axe-core";
import { WebDriver } from "selenium-webdriver";
export interface AxeAnalysis {
inapplicable: Result[];
incomplete: Result[];
passes: Result[];
timestamp: string;
url: string;
violations: Result[];
}
export interface AxeBuilder {
/**
* Includes a selector in analysis.
*
* @param selector CSS selector of the element to include.
*/
include(selector: string): this;
/**
* Excludes a selector from analysis.
*
* @param selector CSS selector of the element to exclude.
*/
exclude(selector: string): this;
/**
* Options to directly pass to `axe.run`.
*
* @param options aXe options object.
* @remarks Will override any other configured options, including calls to `withRules` and `withTags`.
* @see https://github.com/dequelabs/axe-core/issues/937
*/
options(options: RunOptions): this;
/**
* Limits analysis to only the specified rules.
*
* @param rules Array of rule IDs, or a single rule ID as a string.
* @remarks Cannot be used with `withTags`.
*/
withRules(rules: string | string[]): this;
/**
* Limist analysis to only the specified tags.
*
* @param rules Array of tags, or a single tag as a string.
* @remarks Cannot be used with `withRules`.
*/
withTags(tags: string | string[]): this;
/**
* Set the list of rules to skip when running an analysis
*
* @param rules Array of rule IDs, or a single rule ID as a string.
*/
disableRules(rules: string | string[]): this;
/**
* Configures aXe before running analyze.
*
* @param config aXe Configuration spec to use in analysis.
*/
configure(config: Spec): this;
/**
* Perform analysis and retrieve results.
* @param callback Function to execute when analysis completes.
*/
analyze(callback: (results: AxeAnalysis) => void): Promise<AxeAnalysis>;
}
export const AxeBuilder: {
(driver: WebDriver): AxeBuilder;
new (driver: WebDriver): AxeBuilder;
};

View File

@@ -0,0 +1,6 @@
{
"private": true,
"dependencies": {
"axe-core": "^3.0.3"
}
}

View File

@@ -0,0 +1,23 @@
{
"compilerOptions": {
"module": "commonjs",
"lib": [
"es6"
],
"noImplicitAny": true,
"noImplicitThis": true,
"strictFunctionTypes": true,
"strictNullChecks": true,
"baseUrl": "../",
"typeRoots": [
"../"
],
"types": [],
"noEmit": true,
"forceConsistentCasingInFileNames": true
},
"files": [
"index.d.ts",
"axe-webdriverjs-tests.ts"
]
}

View File

@@ -0,0 +1 @@
{ "extends": "dtslint/dt.json" }

View File

@@ -1,6 +1,6 @@
{
"private": true,
"dependencies": {
"axe-core": "^2.6.1"
"axe-core": "^3.0.3"
}
}