Add getChildren tests
This commit is contained in:
@@ -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);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user