Skip to content
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
6 changes: 3 additions & 3 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@
"cwd": "${workspaceFolder}/extensions/ql-vscode",
"args": [
"--projects",
"src/vscode-tests/no-workspace"
"test/vscode-tests/no-workspace"
],
"sourceMaps": true,
"console": "integratedTerminal",
Expand All @@ -110,7 +110,7 @@
"cwd": "${workspaceFolder}/extensions/ql-vscode",
"args": [
"--projects",
"src/vscode-tests/minimal-workspace"
"test/vscode-tests/minimal-workspace"
],
"sourceMaps": true,
"console": "integratedTerminal",
Expand All @@ -126,7 +126,7 @@
"cwd": "${workspaceFolder}/extensions/ql-vscode",
"args": [
"--projects",
"src/vscode-tests/cli-integration"
"test/vscode-tests/cli-integration"
],
"env": {
// Optionally, set the version to use for the integration tests.
Expand Down
14 changes: 7 additions & 7 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,12 +97,12 @@ We have several types of tests:

* Unit tests: these live in the `tests/pure-tests/` directory
* View tests: these live in `src/view/variant-analysis/__tests__/`
* VSCode integration tests: these live in `src/vscode-tests/no-workspace` and `src/vscode-tests/minimal-workspace`
* CLI integration tests: these live in `src/vscode-tests/cli-integration`
* VSCode integration tests: these live in `test/vscode-tests/no-workspace` and `test/vscode-tests/minimal-workspace`
* CLI integration tests: these live in `test/vscode-tests/cli-integration`

The CLI integration tests require an instance of the CodeQL CLI to run so they will require some extra setup steps. When adding new tests to our test suite, please be mindful of whether they need to be in the cli-integration folder. If the tests don't depend on the CLI, they are better suited to being a VSCode integration test.

Any test data you're using (sample projects, config files, etc.) must go in a `src/vscode-tests/*/data` directory. When you run the tests, the test runner will copy the data directory to `out/vscode-tests/*/data`.
Any test data you're using (sample projects, config files, etc.) must go in a `test/vscode-tests/*/data` directory. When you run the tests, the test runner will copy the data directory to `out/vscode-tests/*/data`.

#### Running the tests

Expand Down Expand Up @@ -155,16 +155,16 @@ The CLI integration tests require the CodeQL standard libraries in order to run
##### 1. From the terminal

The easiest way to run a single test is to change the `it` of the test to `it.only` and then run the test command with some additional options
to only run tests for this specific file. For example, to run the test `src/vscode-tests/cli-integration/run-queries.test.ts`:
to only run tests for this specific file. For example, to run the test `test/vscode-tests/cli-integration/run-queries.test.ts`:

```shell
npm run cli-integration -- --runTestsByPath src/vscode-tests/cli-integration/run-queries.test.ts
npm run cli-integration -- --runTestsByPath test/vscode-tests/cli-integration/run-queries.test.ts
```

You can also use the `--testNamePattern` option to run a specific test within a file. For example, to run the test `src/vscode-tests/cli-integration/run-queries.test.ts`:
You can also use the `--testNamePattern` option to run a specific test within a file. For example, to run the test `test/vscode-tests/cli-integration/run-queries.test.ts`:

```shell
npm run cli-integration -- --runTestsByPath src/vscode-tests/cli-integration/run-queries.test.ts --testNamePattern "should create a QueryEvaluationInfo"
npm run cli-integration -- --runTestsByPath test/vscode-tests/cli-integration/run-queries.test.ts --testNamePattern "should create a QueryEvaluationInfo"
```

##### 2. From VSCode
Expand Down
6 changes: 3 additions & 3 deletions extensions/ql-vscode/gulpfile.ts/tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,17 @@ export function copyTestData() {
}

export function watchTestData() {
return watch(["src/vscode-tests/*/data/**/*"], copyTestData);
return watch(["test/vscode-tests/*/data/**/*"], copyTestData);
}

function copyNoWorkspaceData() {
return src("src/vscode-tests/no-workspace/data/**/*").pipe(
return src("test/vscode-tests/no-workspace/data/**/*").pipe(
dest("out/vscode-tests/no-workspace/data"),
);
}

function copyCliIntegrationData() {
return src("src/vscode-tests/cli-integration/data/**/*").pipe(
return src("test/vscode-tests/cli-integration/data/**/*").pipe(
dest("out/vscode-tests/cli-integration/data"),
);
}
6 changes: 3 additions & 3 deletions extensions/ql-vscode/jest.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ module.exports = {
projects: [
"<rootDir>/src/view",
"<rootDir>/test/unit-tests",
"<rootDir>/src/vscode-tests/cli-integration",
"<rootDir>/src/vscode-tests/no-workspace",
"<rootDir>/src/vscode-tests/minimal-workspace",
"<rootDir>/test/vscode-tests/cli-integration",
"<rootDir>/test/vscode-tests/no-workspace",
"<rootDir>/test/vscode-tests/minimal-workspace",
],
};
6 changes: 3 additions & 3 deletions extensions/ql-vscode/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -1288,9 +1288,9 @@
"test:unit": "cross-env TZ=UTC LANG=en-US jest --projects test/unit-tests",
"test:view": "jest --projects src/view",
"integration": "npm-run-all integration:*",
"integration:no-workspace": "jest --projects src/vscode-tests/no-workspace",
"integration:minimal-workspace": "jest --projects src/vscode-tests/minimal-workspace",
"cli-integration": "jest --projects src/vscode-tests/cli-integration",
"integration:no-workspace": "jest --projects test/vscode-tests/no-workspace",
"integration:minimal-workspace": "jest --projects test/vscode-tests/minimal-workspace",
"cli-integration": "jest --projects test/vscode-tests/cli-integration",
"update-vscode": "node ./node_modules/vscode/bin/install",
"format": "prettier --write **/*.{ts,tsx} && eslint . --ext .ts,.tsx --fix",
"lint": "eslint . --ext .ts,.tsx --max-warnings=0",
Expand Down
2 changes: 1 addition & 1 deletion extensions/ql-vscode/src/stories/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"lib": ["ES2021", "dom"],
"jsx": "react",
"sourceMap": true,
"rootDir": "..",
"rootDir": "../../..",
Comment thread
norascheuch marked this conversation as resolved.
"strict": true,
"noUnusedLocals": true,
"noImplicitReturns": true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import {
AnalysisAlert,
AnalysisRawResults,
} from "../../remote-queries/shared/analysis-result";
import { createMockRepositoryWithMetadata } from "../../vscode-tests/factories/remote-queries/shared/repository";
import { createMockRepositoryWithMetadata } from "../../../test/factories/remote-queries/shared/repository";

import * as analysesResults from "../remote-queries/data/analysesResultsMessage.json";
import * as rawResults from "../remote-queries/data/rawResults.json";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ import {
VariantAnalysisScannedRepositoryState,
VariantAnalysisStatus,
} from "../../remote-queries/shared/variant-analysis";
import { createMockVariantAnalysis } from "../../vscode-tests/factories/remote-queries/shared/variant-analysis";
import { createMockRepositoryWithMetadata } from "../../vscode-tests/factories/remote-queries/shared/repository";
import { createMockVariantAnalysis } from "../../../test/factories/remote-queries/shared/variant-analysis";
import { createMockRepositoryWithMetadata } from "../../../test/factories/remote-queries/shared/repository";

export default {
title: "Variant Analysis/Variant Analysis",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ import {
VariantAnalysisStatus,
} from "../../remote-queries/shared/variant-analysis";
import { AnalysisAlert } from "../../remote-queries/shared/analysis-result";
import { createMockVariantAnalysis } from "../../vscode-tests/factories/remote-queries/shared/variant-analysis";
import { createMockRepositoryWithMetadata } from "../../vscode-tests/factories/remote-queries/shared/repository";
import { createMockScannedRepo } from "../../vscode-tests/factories/remote-queries/shared/scanned-repositories";
import { createMockVariantAnalysis } from "../../../test/factories/remote-queries/shared/variant-analysis";
import { createMockRepositoryWithMetadata } from "../../../test/factories/remote-queries/shared/repository";
import { createMockScannedRepo } from "../../../test/factories/remote-queries/shared/scanned-repositories";

import * as analysesResults from "../remote-queries/data/analysesResultsMessage.json";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ import {
VariantAnalysisRepoStatus,
VariantAnalysisStatus,
} from "../../remote-queries/shared/variant-analysis";
import { createMockVariantAnalysis } from "../../vscode-tests/factories/remote-queries/shared/variant-analysis";
import { createMockScannedRepo } from "../../vscode-tests/factories/remote-queries/shared/scanned-repositories";
import { createMockVariantAnalysis } from "../../../test/factories/remote-queries/shared/variant-analysis";
import { createMockScannedRepo } from "../../../test/factories/remote-queries/shared/scanned-repositories";

export default {
title: "Variant Analysis/Variant Analysis Header",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ import {
VariantAnalysisRepoStatus,
VariantAnalysisStatus,
} from "../../remote-queries/shared/variant-analysis";
import { createMockScannedRepo } from "../../vscode-tests/factories/remote-queries/shared/scanned-repositories";
import { createMockVariantAnalysis } from "../../vscode-tests/factories/remote-queries/shared/variant-analysis";
import { createMockRepositoryWithMetadata } from "../../vscode-tests/factories/remote-queries/shared/repository";
import { createMockScannedRepo } from "../../../test/factories/remote-queries/shared/scanned-repositories";
import { createMockVariantAnalysis } from "../../../test/factories/remote-queries/shared/variant-analysis";
import { createMockRepositoryWithMetadata } from "../../../test/factories/remote-queries/shared/repository";
import {
defaultFilterSortState,
RepositoriesFilterSortState,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { ComponentMeta, ComponentStory } from "@storybook/react";

import { VariantAnalysisContainer } from "../../view/variant-analysis/VariantAnalysisContainer";
import { VariantAnalysisSkippedRepositoriesTab } from "../../view/variant-analysis/VariantAnalysisSkippedRepositoriesTab";
import { createMockRepositoryWithMetadata } from "../../vscode-tests/factories/remote-queries/shared/repository";
import { createMockRepositoryWithMetadata } from "../../../test/factories/remote-queries/shared/repository";

export default {
title: "Variant Analysis/Variant Analysis Skipped Repositories Tab",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import { render as reactRender, screen } from "@testing-library/react";
import userEvent from "@testing-library/user-event";
import { CodePaths, CodePathsProps } from "../CodePaths";

import { createMockCodeFlows } from "../../../../vscode-tests/factories/remote-queries/shared/CodeFlow";
import { createMockAnalysisMessage } from "../../../../vscode-tests/factories/remote-queries/shared/AnalysisMessage";
import { createMockCodeFlows } from "../../../../../test/factories/remote-queries/shared/CodeFlow";
import { createMockAnalysisMessage } from "../../../../../test/factories/remote-queries/shared/AnalysisMessage";

describe(CodePaths.name, () => {
const render = (props?: CodePathsProps) =>
Expand Down
2 changes: 1 addition & 1 deletion extensions/ql-vscode/src/view/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"lib": ["ES2021", "dom"],
"jsx": "react",
"sourceMap": true,
"rootDir": "..",
"rootDir": "../..",
"strict": true,
"noUnusedLocals": true,
"noImplicitReturns": true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {
} from "../../../remote-queries/shared/variant-analysis";
import userEvent from "@testing-library/user-event";
import { RepoRow, RepoRowProps } from "../RepoRow";
import { createMockRepositoryWithMetadata } from "../../../vscode-tests/factories/remote-queries/shared/repository";
import { createMockRepositoryWithMetadata } from "../../../../test/factories/remote-queries/shared/repository";

describe(RepoRow.name, () => {
const render = (props: Partial<RepoRowProps> = {}) => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import {
VariantAnalysisStatus,
} from "../../../remote-queries/shared/variant-analysis";
import { VariantAnalysis, VariantAnalysisProps } from "../VariantAnalysis";
import { createMockVariantAnalysis } from "../../../vscode-tests/factories/remote-queries/shared/variant-analysis";
import { createMockVariantAnalysis } from "../../../../test/factories/remote-queries/shared/variant-analysis";

describe(VariantAnalysis.name, () => {
const render = (props: Partial<VariantAnalysisProps> = {}) =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ import {
VariantAnalysisAnalyzedRepos,
VariantAnalysisAnalyzedReposProps,
} from "../VariantAnalysisAnalyzedRepos";
import { createMockVariantAnalysis } from "../../../vscode-tests/factories/remote-queries/shared/variant-analysis";
import { createMockRepositoryWithMetadata } from "../../../vscode-tests/factories/remote-queries/shared/repository";
import { createMockScannedRepo } from "../../../vscode-tests/factories/remote-queries/shared/scanned-repositories";
import { createMockVariantAnalysis } from "../../../../test/factories/remote-queries/shared/variant-analysis";
import { createMockRepositoryWithMetadata } from "../../../../test/factories/remote-queries/shared/repository";
import { createMockScannedRepo } from "../../../../test/factories/remote-queries/shared/scanned-repositories";
import {
defaultFilterSortState,
SortKey,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ import {
VariantAnalysisOutcomePanelProps,
VariantAnalysisOutcomePanels,
} from "../VariantAnalysisOutcomePanels";
import { createMockVariantAnalysis } from "../../../vscode-tests/factories/remote-queries/shared/variant-analysis";
import { createMockRepositoryWithMetadata } from "../../../vscode-tests/factories/remote-queries/shared/repository";
import { createMockVariantAnalysis } from "../../../../test/factories/remote-queries/shared/variant-analysis";
import { createMockRepositoryWithMetadata } from "../../../../test/factories/remote-queries/shared/repository";
import {
createMockScannedRepo,
createMockScannedRepos,
} from "../../../vscode-tests/factories/remote-queries/shared/scanned-repositories";
} from "../../../../test/factories/remote-queries/shared/scanned-repositories";
import { defaultFilterSortState } from "../../../pure/variant-analysis-filter-sort";

describe(VariantAnalysisOutcomePanels.name, () => {
Expand Down
2 changes: 1 addition & 1 deletion extensions/ql-vscode/test/__mocks__/appMock.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { AppEvent, AppEventEmitter } from "../../src/common/events";
import { Memento } from "../../src/common/memento";
import { Disposable } from "../../src/pure/disposable-object";
import { createMockLogger } from "./loggerMock";
import { createMockMemento } from "../../src/vscode-tests/mock-memento";
import { createMockMemento } from "../mock-memento";

export function createMockApp({
extensionPath = "/mock/extension/path",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import {
LocalList,
RemoteRepositoryList,
SelectedDbItem,
} from "../../databases/config/db-config";
} from "../../src/databases/config/db-config";

export function createDbConfig({
remoteLists = [],
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { faker } from "@faker-js/faker";
import { InitialQueryInfo, LocalQueryInfo } from "../../../query-results";
import { InitialQueryInfo, LocalQueryInfo } from "../../../src/query-results";
import {
QueryEvaluationInfo,
QueryWithResults,
} from "../../../run-queries-shared";
} from "../../../src/run-queries-shared";
import { CancellationTokenSource } from "vscode";
import { QueryResultType } from "../../../pure/legacy-messages";
import { QueryMetadata } from "../../../pure/interface-types";
import { QueryResultType } from "../../../src/pure/legacy-messages";
import { QueryMetadata } from "../../../src/pure/interface-types";

export function createMockLocalQueryInfo({
startTime = new Date(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { faker } from "@faker-js/faker";
import {
Repository,
RepositoryWithMetadata,
} from "../../../../remote-queries/gh-api/repository";
} from "../../../../src/remote-queries/gh-api/repository";

export function createMockRepository(name = faker.random.word()): Repository {
return {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { faker } from "@faker-js/faker";
import {
VariantAnalysisRepoStatus,
VariantAnalysisScannedRepository,
} from "../../../../remote-queries/gh-api/variant-analysis";
} from "../../../../src/remote-queries/gh-api/variant-analysis";
import { createMockRepositoryWithMetadata } from "./repository";

export function createMockScannedRepo(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import {
VariantAnalysisNotFoundRepositoryGroup,
VariantAnalysisSkippedRepositories,
VariantAnalysisSkippedRepositoryGroup,
} from "../../../../remote-queries/gh-api/variant-analysis";
} from "../../../../src/remote-queries/gh-api/variant-analysis";
import { createMockRepositoryWithMetadata } from "./repository";

export function createMockSkippedRepos(): VariantAnalysisSkippedRepositories {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import {
VariantAnalysisScannedRepository,
VariantAnalysisSkippedRepositories,
VariantAnalysisStatus,
} from "../../../../remote-queries/gh-api/variant-analysis";
import { VariantAnalysisQueryLanguage } from "../../../../remote-queries/shared/variant-analysis";
} from "../../../../src/remote-queries/gh-api/variant-analysis";
import { VariantAnalysisQueryLanguage } from "../../../../src/remote-queries/shared/variant-analysis";
import { createMockScannedRepos } from "./scanned-repositories";
import { createMockSkippedRepos } from "./skipped-repositories";
import { createMockRepository } from "./repository";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { faker } from "@faker-js/faker";
import { VariantAnalysisRepoTask } from "../../../../remote-queries/gh-api/variant-analysis";
import { VariantAnalysisRepoStatus } from "../../../../remote-queries/shared/variant-analysis";
import { VariantAnalysisRepoTask } from "../../../../src/remote-queries/gh-api/variant-analysis";
import { VariantAnalysisRepoStatus } from "../../../../src/remote-queries/shared/variant-analysis";
import { createMockRepository } from "./repository";

export function createMockVariantAnalysisRepoTask(): VariantAnalysisRepoTask {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { nanoid } from "nanoid";
import { RemoteQueryHistoryItem } from "../../../remote-queries/remote-query-history-item";
import { QueryStatus } from "../../../query-status";
import { RemoteQueryHistoryItem } from "../../../src/remote-queries/remote-query-history-item";
import { QueryStatus } from "../../../src/query-status";

export function createMockRemoteQueryHistoryItem({
date = new Date("2022-01-01T00:00:00.000Z"),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { AnalysisMessage } from "../../../../remote-queries/shared/analysis-result";
import { AnalysisMessage } from "../../../../src/remote-queries/shared/analysis-result";

export function createMockAnalysisMessage(): AnalysisMessage {
return {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { CodeFlow } from "../../../../remote-queries/shared/analysis-result";
import { CodeFlow } from "../../../../src/remote-queries/shared/analysis-result";
import { createMockAnalysisMessage } from "./AnalysisMessage";

export function createMockCodeFlows(): CodeFlow[] {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { faker } from "@faker-js/faker";
import {
Repository,
RepositoryWithMetadata,
} from "../../../../remote-queries/shared/repository";
} from "../../../../src/remote-queries/shared/repository";

export function createMockRepository(): Repository {
return {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { faker } from "@faker-js/faker";
import {
VariantAnalysisRepoStatus,
VariantAnalysisScannedRepository,
} from "../../../../remote-queries/shared/variant-analysis";
} from "../../../../src/remote-queries/shared/variant-analysis";
import { createMockRepositoryWithMetadata } from "./repository";

export function createMockScannedRepo(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { faker } from "@faker-js/faker";
import {
VariantAnalysisSkippedRepositories,
VariantAnalysisSkippedRepositoryGroup,
} from "../../../../remote-queries/shared/variant-analysis";
} from "../../../../src/remote-queries/shared/variant-analysis";
import { createMockRepositoryWithMetadata } from "./repository";

export function createMockSkippedRepos(): VariantAnalysisSkippedRepositories {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { faker } from "@faker-js/faker";
import {
VariantAnalysisRepositoryTask,
VariantAnalysisRepoStatus,
} from "../../../../remote-queries/shared/variant-analysis";
} from "../../../../src/remote-queries/shared/variant-analysis";
import { createMockRepositoryWithMetadata } from "./repository";

export function createMockVariantAnalysisRepositoryTask(
Expand Down
Loading