From cba188b4dbeecffee3b15232fcb7bea3e4ba937c Mon Sep 17 00:00:00 2001 From: Elena Tanasoiu Date: Tue, 26 Jul 2022 09:46:10 +0100 Subject: [PATCH] Use named arguments for mock function We'd like to be able to add tests for when the result count exists and when it's missing. Let's change the createMockRemoteQueryInfo method so that we can pass in parameters by name, e.g. ``` createMockRemoteQueryInfo(undefined, 2) ``` becomes ``` createMockRemoteQueryInfo({ repositoryCount: 2 } ``` --- .../history-item-label-provider.test.ts | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/extensions/ql-vscode/src/vscode-tests/no-workspace/history-item-label-provider.test.ts b/extensions/ql-vscode/src/vscode-tests/no-workspace/history-item-label-provider.test.ts index 29831f67d..334f0a9e8 100644 --- a/extensions/ql-vscode/src/vscode-tests/no-workspace/history-item-label-provider.test.ts +++ b/extensions/ql-vscode/src/vscode-tests/no-workspace/history-item-label-provider.test.ts @@ -2,7 +2,7 @@ import { env } from 'vscode'; import { expect } from 'chai'; import { QueryHistoryConfig } from '../../config'; import { HistoryItemLabelProvider } from '../../history-item-label-provider'; -import { CompletedLocalQueryInfo, CompletedQueryInfo, InitialQueryInfo } from '../../query-results'; +import { CompletedLocalQueryInfo, CompletedQueryInfo, InitialQueryInfo, QueryHistoryInfo } from '../../query-results'; import { RemoteQueryHistoryItem } from '../../remote-queries/remote-query-history-item'; @@ -84,7 +84,7 @@ describe('HistoryItemLabelProvider', () => { describe('remote queries', () => { it('should interpolate query when user specified', () => { - const fqi = createMockRemoteQueryInfo('xxx'); + const fqi = createMockRemoteQueryInfo({ userSpecifiedLabel: 'xxx' }); expect(labelProvider.getLabel(fqi)).to.eq('xxx'); @@ -96,7 +96,7 @@ describe('HistoryItemLabelProvider', () => { }); it('should interpolate query when not user-specified', () => { - const fqi = createMockRemoteQueryInfo(); + const fqi = createMockRemoteQueryInfo({}); expect(labelProvider.getLabel(fqi)).to.eq('xxx query-name (javascript) xxx'); @@ -109,14 +109,14 @@ describe('HistoryItemLabelProvider', () => { }); it('should use number of repositories instead of controller repo if available', () => { - const fqi = createMockRemoteQueryInfo(undefined, 2); + const fqi = createMockRemoteQueryInfo({ repositoryCount: 2 }); config.format = '%t %q %d %s %f %r %%'; expect(labelProvider.getLabel(fqi)).to.eq(`${dateStr} query-name (javascript) 2 repositories in progress query-file.ql (16 results) %`); }); it('should get query short label', () => { - const fqi = createMockRemoteQueryInfo('xxx'); + const fqi = createMockRemoteQueryInfo({ userSpecifiedLabel: 'xxx' }); // fall back on user specified if one exists. expect(labelProvider.getShortLabel(fqi)).to.eq('xxx'); @@ -126,7 +126,15 @@ describe('HistoryItemLabelProvider', () => { expect(labelProvider.getShortLabel(fqi)).to.eq('query-name'); }); - function createMockRemoteQueryInfo(userSpecifiedLabel?: string, repositoryCount?: number) { + function createMockRemoteQueryInfo({ + resultCount = 16, + userSpecifiedLabel = undefined, + repositoryCount = 0 + }: { + resultCount?: number; + userSpecifiedLabel?: string; + repositoryCount?: number; + }): QueryHistoryInfo { return { t: 'remote', userSpecifiedLabel, @@ -142,7 +150,7 @@ describe('HistoryItemLabelProvider', () => { repositoryCount, }, status: 'in progress', - resultCount: 16, + resultCount, } as unknown as RemoteQueryHistoryItem; } });