Squash extra whitespace for Query History labels

We'd like to remove duplicate whitespace in these labels in order
to make it less likely that we introduce extra space.

We initially also tried trimming whitespaces at the start and end
of these labels but that had no effect.
This commit is contained in:
Elena Tanasoiu
2022-07-25 18:23:21 +01:00
parent 52484f1211
commit 895ac6ae26
2 changed files with 28 additions and 2 deletions

View File

@@ -46,10 +46,12 @@ export class HistoryItemLabelProvider {
private interpolate(rawLabel: string, replacements: InterpolateReplacements): string {
return rawLabel.replace(/%(.)/g, (match, key: keyof InterpolateReplacements) => {
const label = rawLabel.replace(/%(.)/g, (match, key: keyof InterpolateReplacements) => {
const replacement = replacements[key];
return replacement !== undefined ? replacement : match;
});
return label.replace(/\s+/g, ' ');
}
private getLocalInterpolateReplacements(item: LocalQueryInfo): InterpolateReplacements {

View File

@@ -138,7 +138,31 @@ describe('HistoryItemLabelProvider', () => {
it('should skip displaying them', () => {
const fqi = createMockRemoteQueryInfo({ resultCount: 0, 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 %`);
expect(labelProvider.getLabel(fqi)).to.eq(`${dateStr} query-name (javascript) 2 repositories in progress query-file.ql %`);
});
});
describe('when extra whitespace is present in the middle of the label', () => {
it('should squash it down to a single whitespace', () => {
const fqi = createMockRemoteQueryInfo({ resultCount: 0, 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 %`);
});
});
describe('when extra whitespace is present at the start of the label', () => {
it('should squash it down to a single whitespace', () => {
const fqi = createMockRemoteQueryInfo({ resultCount: 0, 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 %`);
});
});
describe('when extra whitespace is present at the end of the label', () => {
it('should squash it down to a single whitespace', () => {
const fqi = createMockRemoteQueryInfo({ resultCount: 0, 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 % `);
});
});