textlint-tester
Version:
testing tool for textlint rule.
101 lines • 3.36 kB
TypeScript
import { TextlintFixResult, TextlintKernelDescriptor, TextlintPluginCreator, TextlintRuleModule } from "@textlint/kernel";
import { TextlintPluginOptions, TextlintRuleOptions } from "@textlint/types";
export type TestConfigPlugin = {
pluginId: string;
plugin: TextlintPluginCreator;
options?: TextlintPluginOptions | boolean;
};
export type TestConfigRule = {
ruleId: string;
rule: TextlintRuleModule;
options?: TextlintRuleOptions | boolean;
};
export type TestConfig = {
plugins?: TestConfigPlugin[];
rules: TestConfigRule[];
};
export type TesterValid = string | {
text?: string;
ext?: string;
inputPath?: string;
options?: TextlintRuleOptions;
description?: string;
};
export type TesterErrorDefinition = {
ruleId?: string;
range?: readonly [startIndex: number, endIndex: number];
loc?: {
start: {
line: number;
column: number;
};
end: {
line: number;
column: number;
};
};
/**
* @deprecated use `range` option
*/
index?: number;
/**
* @deprecated use `loc` option
*/
line?: number;
/**
* @deprecated use `loc` option
*/
column?: number;
message?: string;
};
export type TesterInvalid = {
text?: string;
output?: string;
ext?: string;
inputPath?: string;
options?: TextlintRuleOptions;
description?: string;
errors: TesterErrorDefinition[];
};
export type TestRuleSet = {
rules: {
[index: string]: TextlintRuleModule;
};
rulesOptions: Record<string, TextlintRuleOptions>;
};
export type TestPluginSet = {
plugins: {
[index: string]: TextlintPluginCreator;
};
pluginOptions: Record<string, TextlintPluginOptions | boolean>;
};
interface CreateTextlintKernelDescriptorArgs {
testName: string;
testRuleDefinition: TextlintRuleModule | TestConfig;
testCaseOptions?: TestConfigRule["options"];
}
export declare const createTextlintKernelDescriptor: ({ testName, testRuleDefinition, testCaseOptions }: CreateTextlintKernelDescriptorArgs) => TextlintKernelDescriptor;
export declare const createTestLinter: (textlintKernelDescriptor: TextlintKernelDescriptor) => {
lintText(text: string, ext: string): Promise<import("@textlint/kernel").TextlintResult>;
lintFile(filePath: string): Promise<import("@textlint/kernel").TextlintResult>;
fixText(text: string, ext: string): Promise<TextlintFixResult>;
fixFile(filePath: string): Promise<TextlintFixResult>;
};
export declare class TextLintTester {
constructor();
testValidPattern(testName: string, param: TextlintRuleModule | TestConfig, valid: TesterValid): void;
testInvalidPattern(testName: string, param: TextlintRuleModule | TestConfig, invalid: TesterInvalid): void;
/**
* run test for textlint rule.
* @param {string} name name is name of the test or rule
* @param {TextlintRuleModule|TestConfig} testRuleDefinition param is TextlintRuleCreator or TestConfig
* @param {string[]|object[]} [valid]
* @param {object[]} [invalid]
*/
run(name: string, testRuleDefinition: TextlintRuleModule | TestConfig, { valid, invalid }: {
valid?: TesterValid[];
invalid?: TesterInvalid[];
}): void;
}
export {};
//# sourceMappingURL=textlint-tester.d.ts.map