mirror of
https://github.com/microsoft/vscode.git
synced 2026-05-01 22:12:26 +01:00
split vscode.proposed.d.ts into a file per proposal, https://github.com/microsoft/vscode/issues/131165
This commit is contained in:
202
src/vscode-dts/vscode.proposed.testObserver.d.ts
vendored
Normal file
202
src/vscode-dts/vscode.proposed.testObserver.d.ts
vendored
Normal file
@@ -0,0 +1,202 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
declare module 'vscode' {
|
||||
|
||||
// https://github.com/microsoft/vscode/issues/107467
|
||||
|
||||
export namespace tests {
|
||||
/**
|
||||
* Requests that tests be run by their controller.
|
||||
* @param run Run options to use.
|
||||
* @param token Cancellation token for the test run
|
||||
*/
|
||||
export function runTests(run: TestRunRequest, token?: CancellationToken): Thenable<void>;
|
||||
|
||||
/**
|
||||
* Returns an observer that watches and can request tests.
|
||||
*/
|
||||
export function createTestObserver(): TestObserver;
|
||||
/**
|
||||
* List of test results stored by the editor, sorted in descending
|
||||
* order by their `completedAt` time.
|
||||
*/
|
||||
export const testResults: ReadonlyArray<TestRunResult>;
|
||||
|
||||
/**
|
||||
* Event that fires when the {@link testResults} array is updated.
|
||||
*/
|
||||
export const onDidChangeTestResults: Event<void>;
|
||||
}
|
||||
|
||||
export interface TestObserver {
|
||||
/**
|
||||
* List of tests returned by test provider for files in the workspace.
|
||||
*/
|
||||
readonly tests: ReadonlyArray<TestItem>;
|
||||
|
||||
/**
|
||||
* An event that fires when an existing test in the collection changes, or
|
||||
* null if a top-level test was added or removed. When fired, the consumer
|
||||
* should check the test item and all its children for changes.
|
||||
*/
|
||||
readonly onDidChangeTest: Event<TestsChangeEvent>;
|
||||
|
||||
/**
|
||||
* Dispose of the observer, allowing the editor to eventually tell test
|
||||
* providers that they no longer need to update tests.
|
||||
*/
|
||||
dispose(): void;
|
||||
}
|
||||
|
||||
export interface TestsChangeEvent {
|
||||
/**
|
||||
* List of all tests that are newly added.
|
||||
*/
|
||||
readonly added: ReadonlyArray<TestItem>;
|
||||
|
||||
/**
|
||||
* List of existing tests that have updated.
|
||||
*/
|
||||
readonly updated: ReadonlyArray<TestItem>;
|
||||
|
||||
/**
|
||||
* List of existing tests that have been removed.
|
||||
*/
|
||||
readonly removed: ReadonlyArray<TestItem>;
|
||||
}
|
||||
|
||||
/**
|
||||
* A test item is an item shown in the "test explorer" view. It encompasses
|
||||
* both a suite and a test, since they have almost or identical capabilities.
|
||||
*/
|
||||
export interface TestItem {
|
||||
/**
|
||||
* Marks the test as outdated. This can happen as a result of file changes,
|
||||
* for example. In "auto run" mode, tests that are outdated will be
|
||||
* automatically rerun after a short delay. Invoking this on a
|
||||
* test with children will mark the entire subtree as outdated.
|
||||
*
|
||||
* Extensions should generally not override this method.
|
||||
*/
|
||||
// todo@api still unsure about this
|
||||
invalidateResults(): void;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* TestResults can be provided to the editor in {@link tests.publishTestResult},
|
||||
* or read from it in {@link tests.testResults}.
|
||||
*
|
||||
* The results contain a 'snapshot' of the tests at the point when the test
|
||||
* run is complete. Therefore, information such as its {@link Range} may be
|
||||
* out of date. If the test still exists in the workspace, consumers can use
|
||||
* its `id` to correlate the result instance with the living test.
|
||||
*/
|
||||
export interface TestRunResult {
|
||||
/**
|
||||
* Unix milliseconds timestamp at which the test run was completed.
|
||||
*/
|
||||
readonly completedAt: number;
|
||||
|
||||
/**
|
||||
* Optional raw output from the test run.
|
||||
*/
|
||||
readonly output?: string;
|
||||
|
||||
/**
|
||||
* List of test results. The items in this array are the items that
|
||||
* were passed in the {@link tests.runTests} method.
|
||||
*/
|
||||
readonly results: ReadonlyArray<Readonly<TestResultSnapshot>>;
|
||||
}
|
||||
|
||||
/**
|
||||
* A {@link TestItem}-like interface with an associated result, which appear
|
||||
* or can be provided in {@link TestResult} interfaces.
|
||||
*/
|
||||
export interface TestResultSnapshot {
|
||||
/**
|
||||
* Unique identifier that matches that of the associated TestItem.
|
||||
* This is used to correlate test results and tests in the document with
|
||||
* those in the workspace (test explorer).
|
||||
*/
|
||||
readonly id: string;
|
||||
|
||||
/**
|
||||
* Parent of this item.
|
||||
*/
|
||||
readonly parent?: TestResultSnapshot;
|
||||
|
||||
/**
|
||||
* URI this TestItem is associated with. May be a file or file.
|
||||
*/
|
||||
readonly uri?: Uri;
|
||||
|
||||
/**
|
||||
* Display name describing the test case.
|
||||
*/
|
||||
readonly label: string;
|
||||
|
||||
/**
|
||||
* Optional description that appears next to the label.
|
||||
*/
|
||||
readonly description?: string;
|
||||
|
||||
/**
|
||||
* Location of the test item in its `uri`. This is only meaningful if the
|
||||
* `uri` points to a file.
|
||||
*/
|
||||
readonly range?: Range;
|
||||
|
||||
/**
|
||||
* State of the test in each task. In the common case, a test will only
|
||||
* be executed in a single task and the length of this array will be 1.
|
||||
*/
|
||||
readonly taskStates: ReadonlyArray<TestSnapshotTaskState>;
|
||||
|
||||
/**
|
||||
* Optional list of nested tests for this item.
|
||||
*/
|
||||
readonly children: Readonly<TestResultSnapshot>[];
|
||||
}
|
||||
|
||||
export interface TestSnapshotTaskState {
|
||||
/**
|
||||
* Current result of the test.
|
||||
*/
|
||||
readonly state: TestResultState;
|
||||
|
||||
/**
|
||||
* The number of milliseconds the test took to run. This is set once the
|
||||
* `state` is `Passed`, `Failed`, or `Errored`.
|
||||
*/
|
||||
readonly duration?: number;
|
||||
|
||||
/**
|
||||
* Associated test run message. Can, for example, contain assertion
|
||||
* failure information if the test fails.
|
||||
*/
|
||||
readonly messages: ReadonlyArray<TestMessage>;
|
||||
}
|
||||
|
||||
/**
|
||||
* Possible states of tests in a test run.
|
||||
*/
|
||||
export enum TestResultState {
|
||||
// Test will be run, but is not currently running.
|
||||
Queued = 1,
|
||||
// Test is currently running
|
||||
Running = 2,
|
||||
// Test run has passed
|
||||
Passed = 3,
|
||||
// Test run has failed (on an assertion)
|
||||
Failed = 4,
|
||||
// Test run has been skipped
|
||||
Skipped = 5,
|
||||
// Test run failed for some other reason (compilation error, timeout, etc)
|
||||
Errored = 6
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user