diff --git a/extension/src/experiments/index.ts b/extension/src/experiments/index.ts index 9f266c9b19..cdaa6839f2 100644 --- a/extension/src/experiments/index.ts +++ b/extension/src/experiments/index.ts @@ -320,6 +320,10 @@ export class Experiments extends BaseRepository { } public getExperiments() { + if (!this.columns.hasColumns()) { + return [] + } + return this.experiments.getExperiments() } @@ -332,6 +336,10 @@ export class Experiments extends BaseRepository { } public getSelectedRevisions() { + if (!this.columns.hasColumns()) { + return [] + } + return this.experiments.getSelectedRevisions() } diff --git a/extension/src/test/suite/experiments/index.test.ts b/extension/src/test/suite/experiments/index.test.ts index 63d84acc3f..0f179d6b05 100644 --- a/extension/src/test/suite/experiments/index.test.ts +++ b/extension/src/test/suite/experiments/index.test.ts @@ -601,6 +601,7 @@ suite('Experiments Test Suite', () => { 'queued experiment cannot be selected' ).to.be.false }) + it('should be able to handle a message to select columns', async () => { const { columnsModel, experiments, messageSpy } = setupExperimentsAndMockCommands() @@ -1150,4 +1151,35 @@ suite('Experiments Test Suite', () => { expect(setContextValueSpy).not.to.be.called }) }) + + describe('Empty repository', () => { + it('should not show any experiments in the experiments tree when there are no columns', async () => { + const { experiments } = buildExperiments(disposable, { + b9f016df00d499f6d2a73e7dc34d1600c78066eb: { + baseline: { + data: { + deps: {} + } + } + }, + workspace: { + baseline: { + data: { + deps: {} + } + } + } + }) + await experiments.isReady() + + expect( + experiments.getExperiments(), + 'should send no experiments to the tree' + ).to.deep.equal([]) + expect( + experiments.getSelectedRevisions(), + 'should show 0 selected experiments as selected in the description' + ).to.deep.equal([]) + }) + }) })