alsatian-test/alsatian

View on GitHub
packages/vscode-extension/src/commands/treeview-run-test-command.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { AlsatianCommand } from "./alsatian-command";
import { ExtensionContext } from "vscode";
import { AlsatianTestTreeViewItem } from "../tree-view/alsatian-test-tree-view-item";
import { TestRunner } from "../running/test-runner";
import { AlsatianTestFixtureTreeViewItem } from "../tree-view/alsatian-test-fixture-tree-view-item";
import { TestSetTreeViewItem } from "../tree-view/test-set-tree-view-item";

export class TreeviewRunTestCommand extends AlsatianCommand {
    protected static commandName = "treeviewRunTest";
    public static title = "$(play) Run";
    private static testRunner: TestRunner;

    public static setup(context: ExtensionContext, testRunner: TestRunner) {
        super.setup(context);

        TreeviewRunTestCommand.testRunner = testRunner;
    }

    public static async execute(view: AlsatianTestTreeViewItem | AlsatianTestFixtureTreeViewItem | TestSetTreeViewItem) {
        if (view instanceof AlsatianTestTreeViewItem) {
            await TreeviewRunTestCommand.testRunner.runTest(view.fixture.filePath!, view.fixture.fixture.constructor.name, view.test.key);
            return;
        }

        if (view instanceof AlsatianTestFixtureTreeViewItem) {
            await TreeviewRunTestCommand.testRunner.runTest(view.fixture.filePath!, view.fixture.fixture.constructor.name);
            return;
        }

        for (const fixture of view.testSet.testFixtures) {
            await TreeviewRunTestCommand.testRunner.runTest(fixture.filePath!, fixture.fixture.constructor.name);
        }
    }
}