Skip to content

Commit 392e76d

Browse files
committed
Add getChildren tests
1 parent 6e4e89a commit 392e76d

1 file changed

Lines changed: 44 additions & 2 deletions

File tree

extensions/ql-vscode/test/vscode-tests/no-workspace/data-extensions-editor/model-details/model-details-data-provider.test.ts

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
import { CodeQLCliServer } from "../../../../../src/codeql-cli/cli";
2-
import { ExternalApiUsage } from "../../../../../src/data-extensions-editor/external-api-usage";
3-
import { ModelDetailsDataProvider } from "../../../../../src/data-extensions-editor/model-details/model-details-data-provider";
2+
import {
3+
ExternalApiUsage,
4+
Usage,
5+
} from "../../../../../src/data-extensions-editor/external-api-usage";
6+
import {
7+
ModelDetailsDataProvider,
8+
ModelDetailsTreeViewItem,
9+
} from "../../../../../src/data-extensions-editor/model-details/model-details-data-provider";
410
import { DatabaseItem } from "../../../../../src/databases/local-databases";
511
import { mockedObject } from "../../../utils/mocking.helpers";
612

@@ -89,4 +95,40 @@ describe("ModelDetailsDataProvider", () => {
8995
expect(onDidChangeTreeDataListener).toHaveBeenCalledTimes(1);
9096
});
9197
});
98+
99+
describe("getChildren", () => {
100+
const externalApiUsages: ExternalApiUsage[] = [
101+
mockedObject<ExternalApiUsage>({ supported: true }),
102+
mockedObject<ExternalApiUsage>({ supported: false }),
103+
];
104+
const dbItem = mockedObject<DatabaseItem>({
105+
getSourceLocationPrefix: () => "test",
106+
});
107+
108+
it("should return [] if item is a usage", async () => {
109+
const item = { usages: undefined } as unknown as ModelDetailsTreeViewItem;
110+
expect(dataProvider.getChildren(item)).toEqual([]);
111+
});
112+
113+
it("should return usages if item is external api usage", async () => {
114+
const usage = mockedObject<Usage>({});
115+
const item = mockedObject<ExternalApiUsage>({
116+
usages: [usage],
117+
});
118+
119+
expect(dataProvider.getChildren(item)).toEqual([usage]);
120+
});
121+
122+
it("should show all externalApiUsages if hideModeledApis is false and item is undefined", async () => {
123+
const hideModeledApis: boolean = false;
124+
await dataProvider.setState(externalApiUsages, dbItem, hideModeledApis);
125+
expect(dataProvider.getChildren().length).toEqual(2);
126+
});
127+
128+
it("should filter externalApiUsages if hideModeledApis is true and item is undefined", async () => {
129+
const hideModeledApis: boolean = true;
130+
await dataProvider.setState(externalApiUsages, dbItem, hideModeledApis);
131+
expect(dataProvider.getChildren().length).toEqual(1);
132+
});
133+
});
92134
});

0 commit comments

Comments
 (0)