Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Publish typescript definitions #2

Merged
merged 1 commit into from
Apr 7, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 69 additions & 0 deletions index.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
interface TestOptions {
/**
* The number of tests that can be run at the same time. If unspecified, subtests inherit this value from their parent.
* Default: 1.
*/
concurrency?: number;

/**
* If truthy, the test is skipped. If a string is provided, that string is displayed in the test results as the reason for skipping the test.
* Default: false.
*/
skip?: boolean | string;

/**
* If truthy, the test marked as TODO. If a string is provided, that string is displayed in the test results as the reason why the test is TODO.
* Default: false.
*/
todo?: boolean | string;
}

type TestFn = (t: TestContext) => any | Promise<any>;

export default test;

/**
* @returns Whether `string` is a URL.
*/
declare function test(name: string, options: TestOptions, fn: TestFn): void;
declare function test(name: string, fn: TestFn): void;
declare function test(fn: TestFn): void;

/**
* An instance of TestContext is passed to each test function in order to interact with the test runner.
* However, the TestContext constructor is not exposed as part of the API.
*/
export class TestContext {
/**
* This function is used to create subtests under the current test. This function behaves in the same fashion as the top level test() function.
*/
public test(name: string, options: TestOptions, fn: TestFn): Promise<void>;
public test(name: string, fn: TestFn): Promise<void>;
public test(fn: TestFn): Promise<void>;

/**
* This function is used to write TAP diagnostics to the output.
* Any diagnostic information is included at the end of the test's results. This function does not return a value.
*
* @param message Message to be displayed as a TAP diagnostic.
*/
public diagnostic(message: string): void;

/**
* This function causes the test's output to indicate the test as skipped.
* If message is provided, it is included in the TAP output.
* Calling skip() does not terminate execution of the test function. This function does not return a value.
*
* @param message Optional skip message to be displayed in TAP output.
*/
public skip(message?: string): void;

/**
* This function adds a TODO directive to the test's output.
* If message is provided, it is included in the TAP output.
* Calling todo() does not terminate execution of the test function. This function does not return a value.
*
* @param message Optional TODO message to be displayed in TAP output.
*/
public todo(message?: string): void;
}
2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
"description": "Node 18's node:test, as a node module",
"license": "MIT",
"repository": "juliangruber/node-core-test",
"main": "./index.js",
"types": "./index.d.ts",
"scripts": {
"test": "prettier-standard && standard && node test/parallel/* && node test/message"
},
Expand Down