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 }
```
This commit is contained in:
Elena Tanasoiu
2022-07-26 09:46:10 +01:00
parent 123b1fc085
commit cba188b4db

View File

@@ -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;
}
});