Add getChildren tests

This commit is contained in:
Nora
2023-08-22 08:56:42 +00:00
parent 6e4e89a006
commit 392e76d8f2

View File

@@ -1,6 +1,12 @@
import { CodeQLCliServer } from "../../../../../src/codeql-cli/cli";
import { ExternalApiUsage } from "../../../../../src/data-extensions-editor/external-api-usage";
import { ModelDetailsDataProvider } from "../../../../../src/data-extensions-editor/model-details/model-details-data-provider";
import {
ExternalApiUsage,
Usage,
} from "../../../../../src/data-extensions-editor/external-api-usage";
import {
ModelDetailsDataProvider,
ModelDetailsTreeViewItem,
} from "../../../../../src/data-extensions-editor/model-details/model-details-data-provider";
import { DatabaseItem } from "../../../../../src/databases/local-databases";
import { mockedObject } from "../../../utils/mocking.helpers";
@@ -89,4 +95,40 @@ describe("ModelDetailsDataProvider", () => {
expect(onDidChangeTreeDataListener).toHaveBeenCalledTimes(1);
});
});
describe("getChildren", () => {
const externalApiUsages: ExternalApiUsage[] = [
mockedObject<ExternalApiUsage>({ supported: true }),
mockedObject<ExternalApiUsage>({ supported: false }),
];
const dbItem = mockedObject<DatabaseItem>({
getSourceLocationPrefix: () => "test",
});
it("should return [] if item is a usage", async () => {
const item = { usages: undefined } as unknown as ModelDetailsTreeViewItem;
expect(dataProvider.getChildren(item)).toEqual([]);
});
it("should return usages if item is external api usage", async () => {
const usage = mockedObject<Usage>({});
const item = mockedObject<ExternalApiUsage>({
usages: [usage],
});
expect(dataProvider.getChildren(item)).toEqual([usage]);
});
it("should show all externalApiUsages if hideModeledApis is false and item is undefined", async () => {
const hideModeledApis: boolean = false;
await dataProvider.setState(externalApiUsages, dbItem, hideModeledApis);
expect(dataProvider.getChildren().length).toEqual(2);
});
it("should filter externalApiUsages if hideModeledApis is true and item is undefined", async () => {
const hideModeledApis: boolean = true;
await dataProvider.setState(externalApiUsages, dbItem, hideModeledApis);
expect(dataProvider.getChildren().length).toEqual(1);
});
});
});