|
1 | 1 | 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"; |
4 | 10 | import { DatabaseItem } from "../../../../../src/databases/local-databases"; |
5 | 11 | import { mockedObject } from "../../../utils/mocking.helpers"; |
6 | 12 |
|
@@ -89,4 +95,40 @@ describe("ModelDetailsDataProvider", () => { |
89 | 95 | expect(onDidChangeTreeDataListener).toHaveBeenCalledTimes(1); |
90 | 96 | }); |
91 | 97 | }); |
| 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 | + }); |
92 | 134 | }); |
0 commit comments