Skip to content

Commit aaaf799

Browse files
committed
Add test
1 parent ece54b8 commit aaaf799

1 file changed

Lines changed: 34 additions & 22 deletions

File tree

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

Lines changed: 34 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -8,71 +8,83 @@ describe("ModelDetailsDataProvider", () => {
88
const mockCliServer = mockedObject<CodeQLCliServer>({});
99

1010
describe("setState", () => {
11-
it("should not emit onDidChangeTreeData event when state has not changed", async () => {
12-
const externalApiUsages: ExternalApiUsage[] = [];
13-
const dbItem = mockedObject<DatabaseItem>({
14-
getSourceLocationPrefix: () => "test",
15-
});
11+
const hideModeledApis: boolean = false;
12+
const externalApiUsages: ExternalApiUsage[] = [];
13+
const dbItem = mockedObject<DatabaseItem>({
14+
getSourceLocationPrefix: () => "test",
15+
});
1616

17+
it("should not emit onDidChangeTreeData event when state has not changed", async () => {
1718
const dataProvider = new ModelDetailsDataProvider(mockCliServer);
18-
await dataProvider.setState(externalApiUsages, dbItem);
19+
await dataProvider.setState(externalApiUsages, dbItem, hideModeledApis);
1920

2021
const onDidChangeTreeDataListener = jest.fn();
2122
dataProvider.onDidChangeTreeData(onDidChangeTreeDataListener);
2223

23-
await dataProvider.setState(externalApiUsages, dbItem);
24+
await dataProvider.setState(externalApiUsages, dbItem, hideModeledApis);
2425

2526
expect(onDidChangeTreeDataListener).not.toHaveBeenCalled();
2627
});
2728

2829
it("should emit onDidChangeTreeData event when externalApiUsages has changed", async () => {
29-
const externalApiUsages1: ExternalApiUsage[] = [];
3030
const externalApiUsages2: ExternalApiUsage[] = [];
31-
const dbItem = mockedObject<DatabaseItem>({
32-
getSourceLocationPrefix: () => "test",
33-
});
3431

3532
const dataProvider = new ModelDetailsDataProvider(mockCliServer);
36-
await dataProvider.setState(externalApiUsages1, dbItem);
33+
await dataProvider.setState(externalApiUsages, dbItem, hideModeledApis);
3734

3835
const onDidChangeTreeDataListener = jest.fn();
3936
dataProvider.onDidChangeTreeData(onDidChangeTreeDataListener);
4037

41-
await dataProvider.setState(externalApiUsages2, dbItem);
38+
await dataProvider.setState(externalApiUsages2, dbItem, hideModeledApis);
4239

4340
expect(onDidChangeTreeDataListener).toHaveBeenCalledTimes(1);
4441
});
4542

4643
it("should emit onDidChangeTreeData event when dbItem has changed", async () => {
47-
const externalApiUsages: ExternalApiUsage[] = [];
48-
const dbItem1 = mockedObject<DatabaseItem>({
49-
getSourceLocationPrefix: () => "test",
50-
});
5144
const dbItem2 = mockedObject<DatabaseItem>({
5245
getSourceLocationPrefix: () => "test",
5346
});
5447

5548
const dataProvider = new ModelDetailsDataProvider(mockCliServer);
56-
await dataProvider.setState(externalApiUsages, dbItem1);
49+
await dataProvider.setState(externalApiUsages, dbItem, hideModeledApis);
5750

5851
const onDidChangeTreeDataListener = jest.fn();
5952
dataProvider.onDidChangeTreeData(onDidChangeTreeDataListener);
6053

61-
await dataProvider.setState(externalApiUsages, dbItem2);
54+
await dataProvider.setState(externalApiUsages, dbItem2, hideModeledApis);
6255

6356
expect(onDidChangeTreeDataListener).toHaveBeenCalledTimes(1);
6457
});
6558

6659
it("should emit onDidChangeTreeData event when hideModeledApis has changed", async () => {
67-
const hideModeledApis = false;
60+
const dataProvider = new ModelDetailsDataProvider(mockCliServer);
61+
await dataProvider.setState(externalApiUsages, dbItem, hideModeledApis);
62+
63+
const onDidChangeTreeDataListener = jest.fn();
64+
dataProvider.onDidChangeTreeData(onDidChangeTreeDataListener);
65+
66+
await dataProvider.setState(externalApiUsages, dbItem, !hideModeledApis);
67+
68+
expect(onDidChangeTreeDataListener).toHaveBeenCalledTimes(1);
69+
});
70+
71+
it("should emit onDidChangeTreeData event when all entries have changed", async () => {
72+
const dbItem2 = mockedObject<DatabaseItem>({
73+
getSourceLocationPrefix: () => "test",
74+
});
75+
const externalApiUsages2: ExternalApiUsage[] = [];
6876

6977
const dataProvider = new ModelDetailsDataProvider(mockCliServer);
70-
await dataProvider.setState(undefined, undefined, hideModeledApis);
78+
await dataProvider.setState(externalApiUsages, dbItem, hideModeledApis);
7179

7280
const onDidChangeTreeDataListener = jest.fn();
7381
dataProvider.onDidChangeTreeData(onDidChangeTreeDataListener);
7482

75-
await dataProvider.setState(undefined, undefined, !hideModeledApis);
83+
await dataProvider.setState(
84+
externalApiUsages2,
85+
dbItem2,
86+
!hideModeledApis,
87+
);
7688

7789
expect(onDidChangeTreeDataListener).toHaveBeenCalledTimes(1);
7890
});

0 commit comments

Comments
 (0)