Add test
This commit is contained in:
@@ -8,71 +8,83 @@ describe("ModelDetailsDataProvider", () => {
|
||||
const mockCliServer = mockedObject<CodeQLCliServer>({});
|
||||
|
||||
describe("setState", () => {
|
||||
it("should not emit onDidChangeTreeData event when state has not changed", async () => {
|
||||
const externalApiUsages: ExternalApiUsage[] = [];
|
||||
const dbItem = mockedObject<DatabaseItem>({
|
||||
getSourceLocationPrefix: () => "test",
|
||||
});
|
||||
const hideModeledApis: boolean = false;
|
||||
const externalApiUsages: ExternalApiUsage[] = [];
|
||||
const dbItem = mockedObject<DatabaseItem>({
|
||||
getSourceLocationPrefix: () => "test",
|
||||
});
|
||||
|
||||
it("should not emit onDidChangeTreeData event when state has not changed", async () => {
|
||||
const dataProvider = new ModelDetailsDataProvider(mockCliServer);
|
||||
await dataProvider.setState(externalApiUsages, dbItem);
|
||||
await dataProvider.setState(externalApiUsages, dbItem, hideModeledApis);
|
||||
|
||||
const onDidChangeTreeDataListener = jest.fn();
|
||||
dataProvider.onDidChangeTreeData(onDidChangeTreeDataListener);
|
||||
|
||||
await dataProvider.setState(externalApiUsages, dbItem);
|
||||
await dataProvider.setState(externalApiUsages, dbItem, hideModeledApis);
|
||||
|
||||
expect(onDidChangeTreeDataListener).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it("should emit onDidChangeTreeData event when externalApiUsages has changed", async () => {
|
||||
const externalApiUsages1: ExternalApiUsage[] = [];
|
||||
const externalApiUsages2: ExternalApiUsage[] = [];
|
||||
const dbItem = mockedObject<DatabaseItem>({
|
||||
getSourceLocationPrefix: () => "test",
|
||||
});
|
||||
|
||||
const dataProvider = new ModelDetailsDataProvider(mockCliServer);
|
||||
await dataProvider.setState(externalApiUsages1, dbItem);
|
||||
await dataProvider.setState(externalApiUsages, dbItem, hideModeledApis);
|
||||
|
||||
const onDidChangeTreeDataListener = jest.fn();
|
||||
dataProvider.onDidChangeTreeData(onDidChangeTreeDataListener);
|
||||
|
||||
await dataProvider.setState(externalApiUsages2, dbItem);
|
||||
await dataProvider.setState(externalApiUsages2, dbItem, hideModeledApis);
|
||||
|
||||
expect(onDidChangeTreeDataListener).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
|
||||
it("should emit onDidChangeTreeData event when dbItem has changed", async () => {
|
||||
const externalApiUsages: ExternalApiUsage[] = [];
|
||||
const dbItem1 = mockedObject<DatabaseItem>({
|
||||
getSourceLocationPrefix: () => "test",
|
||||
});
|
||||
const dbItem2 = mockedObject<DatabaseItem>({
|
||||
getSourceLocationPrefix: () => "test",
|
||||
});
|
||||
|
||||
const dataProvider = new ModelDetailsDataProvider(mockCliServer);
|
||||
await dataProvider.setState(externalApiUsages, dbItem1);
|
||||
await dataProvider.setState(externalApiUsages, dbItem, hideModeledApis);
|
||||
|
||||
const onDidChangeTreeDataListener = jest.fn();
|
||||
dataProvider.onDidChangeTreeData(onDidChangeTreeDataListener);
|
||||
|
||||
await dataProvider.setState(externalApiUsages, dbItem2);
|
||||
await dataProvider.setState(externalApiUsages, dbItem2, hideModeledApis);
|
||||
|
||||
expect(onDidChangeTreeDataListener).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
|
||||
it("should emit onDidChangeTreeData event when hideModeledApis has changed", async () => {
|
||||
const hideModeledApis = false;
|
||||
|
||||
const dataProvider = new ModelDetailsDataProvider(mockCliServer);
|
||||
await dataProvider.setState(undefined, undefined, hideModeledApis);
|
||||
await dataProvider.setState(externalApiUsages, dbItem, hideModeledApis);
|
||||
|
||||
const onDidChangeTreeDataListener = jest.fn();
|
||||
dataProvider.onDidChangeTreeData(onDidChangeTreeDataListener);
|
||||
|
||||
await dataProvider.setState(undefined, undefined, !hideModeledApis);
|
||||
await dataProvider.setState(externalApiUsages, dbItem, !hideModeledApis);
|
||||
|
||||
expect(onDidChangeTreeDataListener).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
|
||||
it("should emit onDidChangeTreeData event when all entries have changed", async () => {
|
||||
const dbItem2 = mockedObject<DatabaseItem>({
|
||||
getSourceLocationPrefix: () => "test",
|
||||
});
|
||||
const externalApiUsages2: ExternalApiUsage[] = [];
|
||||
|
||||
const dataProvider = new ModelDetailsDataProvider(mockCliServer);
|
||||
await dataProvider.setState(externalApiUsages, dbItem, hideModeledApis);
|
||||
|
||||
const onDidChangeTreeDataListener = jest.fn();
|
||||
dataProvider.onDidChangeTreeData(onDidChangeTreeDataListener);
|
||||
|
||||
await dataProvider.setState(
|
||||
externalApiUsages2,
|
||||
dbItem2,
|
||||
!hideModeledApis,
|
||||
);
|
||||
|
||||
expect(onDidChangeTreeDataListener).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user