Skip to content

Commit 42d1e4f

Browse files
authored
Move integration test webview message spies towards instance spies (#4417)
1 parent b69b025 commit 42d1e4f

File tree

13 files changed

+108
-170
lines changed

13 files changed

+108
-170
lines changed

extension/src/test/suite/experiments/columns/tree.test.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -356,9 +356,8 @@ suite('Experiments Columns Tree Test Suite', () => {
356356
})
357357

358358
it('should be able to display selected columns first with dvc.views.experiments.selectFirstColumns', async () => {
359-
const { experiments, columnsModel } =
360-
stubWorkspaceExperimentsGetters(disposable)
361-
await experiments.isReady()
359+
const { columnsModel, experiments } =
360+
await stubWorkspaceExperimentsGetters(disposable)
362361

363362
const columnsOrder = columnsModel.getColumnOrder()
364363

extension/src/test/suite/experiments/index.test.ts

Lines changed: 22 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -469,11 +469,10 @@ suite('Experiments Test Suite', () => {
469469
}).timeout(WEBVIEW_TEST_TIMEOUT)
470470

471471
it('should be able to handle a message to apply an experiment', async () => {
472-
const { experiments } = stubWorkspaceExperimentsGetters(disposable)
473-
await experiments.isReady()
472+
const { mockMessageReceived } = await stubWorkspaceExperimentsGetters(
473+
disposable
474+
)
474475

475-
const webview = await experiments.showWebview()
476-
const mockMessageReceived = getMessageReceivedEmitter(webview)
477476
const mockExperimentId = 'exp-e7a67'
478477

479478
const mockExperimentApply = stub(
@@ -494,8 +493,9 @@ suite('Experiments Test Suite', () => {
494493
}).timeout(WEBVIEW_TEST_TIMEOUT)
495494

496495
it('should be able to handle a message to create a branch from an experiment', async () => {
497-
const { experiments } = stubWorkspaceExperimentsGetters(disposable)
498-
await experiments.isReady()
496+
const { mockMessageReceived } = await stubWorkspaceExperimentsGetters(
497+
disposable
498+
)
499499

500500
const mockBranch = 'mock-branch-input'
501501
const inputEvent = getInputBoxEvent(mockBranch)
@@ -505,8 +505,6 @@ suite('Experiments Test Suite', () => {
505505
'expBranch'
506506
).resolves('undefined')
507507

508-
const webview = await experiments.showWebview()
509-
const mockMessageReceived = getMessageReceivedEmitter(webview)
510508
const mockExperimentId = 'exp-e7a67'
511509

512510
mockMessageReceived.fire({
@@ -557,14 +555,11 @@ suite('Experiments Test Suite', () => {
557555
}).timeout(WEBVIEW_TEST_TIMEOUT)
558556

559557
it('should handle a message to push an experiment', async () => {
560-
const { experiments } = stubWorkspaceExperimentsGetters(disposable)
561-
await experiments.isReady()
558+
const { experiments, mockMessageReceived } =
559+
await stubWorkspaceExperimentsGetters(disposable)
562560

563561
const mockExpId = 'exp-e7a67'
564562

565-
const webview = await experiments.showWebview()
566-
const mockMessageReceived = getMessageReceivedEmitter(webview)
567-
568563
const executeCommandSpy = spy(commands, 'executeCommand')
569564
const mockExpPush = stub(DvcExecutor.prototype, 'expPush')
570565
stub(experiments, 'update').resolves(undefined)
@@ -647,8 +642,8 @@ suite('Experiments Test Suite', () => {
647642
}).timeout(WEBVIEW_TEST_TIMEOUT)
648643

649644
it('should be able to handle a message to modify the workspace params and queue an experiment', async () => {
650-
const { experiments, dvcExecutor } =
651-
stubWorkspaceExperimentsGetters(disposable)
645+
const { experiments, dvcExecutor, mockMessageReceived } =
646+
await stubWorkspaceExperimentsGetters(disposable)
652647

653648
const mockModifiedParams = [
654649
'-S',
@@ -661,9 +656,6 @@ suite('Experiments Test Suite', () => {
661656
const mockQueueExperiment = stub(dvcExecutor, 'expRunQueue').resolves(
662657
undefined
663658
)
664-
665-
const webview = await experiments.showWebview()
666-
const mockMessageReceived = getMessageReceivedEmitter(webview)
667659
const tableChangePromise = experimentsUpdatedEvent(experiments)
668660

669661
mockMessageReceived.fire({
@@ -679,8 +671,8 @@ suite('Experiments Test Suite', () => {
679671
}).timeout(WEBVIEW_TEST_TIMEOUT)
680672

681673
it('should be able to handle a message to modify the workspace params and run a new experiment', async () => {
682-
const { experiments, dvcRunner } =
683-
stubWorkspaceExperimentsGetters(disposable)
674+
const { experiments, dvcRunner, mockMessageReceived } =
675+
await stubWorkspaceExperimentsGetters(disposable)
684676

685677
const mockModifiedParams = [
686678
'-S',
@@ -694,10 +686,6 @@ suite('Experiments Test Suite', () => {
694686
undefined
695687
)
696688

697-
const webview = await experiments.showWebview()
698-
699-
const mockMessageReceived = getMessageReceivedEmitter(webview)
700-
701689
const tableChangePromise = experimentsUpdatedEvent(experiments)
702690

703691
mockMessageReceived.fire({
@@ -713,8 +701,8 @@ suite('Experiments Test Suite', () => {
713701
}).timeout(WEBVIEW_TEST_TIMEOUT)
714702

715703
it('should be able to handle a message to modify the workspace params, reset and run a new experiment', async () => {
716-
const { experiments, dvcRunner } =
717-
stubWorkspaceExperimentsGetters(disposable)
704+
const { experiments, dvcRunner, mockMessageReceived } =
705+
await stubWorkspaceExperimentsGetters(disposable)
718706

719707
const mockModifiedParams = [
720708
'-S',
@@ -725,8 +713,6 @@ suite('Experiments Test Suite', () => {
725713

726714
stub(experiments, 'pickAndModifyParams').resolves(mockModifiedParams)
727715

728-
const webview = await experiments.showWebview()
729-
const mockMessageReceived = getMessageReceivedEmitter(webview)
730716
const mockRunExperiment = stub(dvcRunner, 'runExperiment').resolves(
731717
undefined
732718
)
@@ -772,9 +758,7 @@ suite('Experiments Test Suite', () => {
772758

773759
it("should be able to handle a message to toggle an experiment's status", async () => {
774760
const { experiments, experimentsModel } =
775-
stubWorkspaceExperimentsGetters(disposable)
776-
777-
await experiments.isReady()
761+
await stubWorkspaceExperimentsGetters(disposable)
778762

779763
const idToToggle = 'test-branch'
780764
const runningInQueueId = 'exp-e7a67'
@@ -1193,12 +1177,9 @@ suite('Experiments Test Suite', () => {
11931177
}).timeout(WEBVIEW_TEST_TIMEOUT)
11941178

11951179
it('should be able to handle a message to select experiments for plotting', async () => {
1196-
const { experiments, experimentsModel } =
1197-
stubWorkspaceExperimentsGetters(disposable)
1198-
await experiments.isReady()
1180+
const { experiments, experimentsModel, mockMessageReceived } =
1181+
await stubWorkspaceExperimentsGetters(disposable)
11991182

1200-
const webview = await experiments.showWebview()
1201-
const mockMessageReceived = getMessageReceivedEmitter(webview)
12021183
const queuedId = '90aea7f'
12031184
const runningInQueueId = 'exp-e7a67'
12041185
const expectedIds = ['main', 'test-branch', runningInQueueId]
@@ -1230,7 +1211,7 @@ suite('Experiments Test Suite', () => {
12301211
experiments: true
12311212
})
12321213
const { experiments, experimentsModel } =
1233-
stubWorkspaceExperimentsGetters(disposable)
1214+
await stubWorkspaceExperimentsGetters(disposable)
12341215
const mockShowPlots = stub(WorkspacePlots.prototype, 'showWebview')
12351216

12361217
const dataSent = new Promise(resolve =>
@@ -1240,8 +1221,6 @@ suite('Experiments Test Suite', () => {
12401221
})
12411222
)
12421223

1243-
await experiments.isReady()
1244-
12451224
const webview = await experiments.showWebview()
12461225
const mockMessageReceived = getMessageReceivedEmitter(webview)
12471226
const runningInQueueId = 'exp-e7a67'
@@ -1313,8 +1292,8 @@ suite('Experiments Test Suite', () => {
13131292
}).timeout(WEBVIEW_TEST_TIMEOUT)
13141293

13151294
it('should handle a message to stop experiments running', async () => {
1316-
const { experiments, dvcExecutor } =
1317-
stubWorkspaceExperimentsGetters(disposable)
1295+
const { dvcExecutor, mockMessageReceived } =
1296+
await stubWorkspaceExperimentsGetters(disposable)
13181297

13191298
const mockQueueKill = stub(dvcExecutor, 'queueKill')
13201299
const mockStopProcesses = stub(ProcessExecution, 'stopProcesses')
@@ -1333,10 +1312,6 @@ suite('Experiments Test Suite', () => {
13331312
})
13341313
)
13351314

1336-
await experiments.isReady()
1337-
1338-
const webview = await experiments.showWebview()
1339-
const mockMessageReceived = getMessageReceivedEmitter(webview)
13401315
const mockExperimentIds = ['exp-e7a67', 'exp-83425']
13411316

13421317
const mockPid = 1234
@@ -1648,7 +1623,7 @@ suite('Experiments Test Suite', () => {
16481623

16491624
const { rows, sorts: noSorts } = messageSpy.lastCall.args[0]
16501625

1651-
expect(getIds(rows as Commit[])).to.deep.equal([
1626+
expect(getIds(rows)).to.deep.equal([
16521627
{ id: EXPERIMENT_WORKSPACE_ID },
16531628
{
16541629
id: '2d879497587b80b2d9e61f072d9dbe9c07a65357',
@@ -1685,7 +1660,7 @@ suite('Experiments Test Suite', () => {
16851660

16861661
const { rows: sortedRows, sorts } = messageSpy.lastCall.args[0]
16871662

1688-
expect(getIds(sortedRows as Commit[])).to.deep.equal([
1663+
expect(getIds(sortedRows)).to.deep.equal([
16891664
{ id: EXPERIMENT_WORKSPACE_ID },
16901665
{
16911666
id: '2d879497587b80b2d9e61f072d9dbe9c07a65357',

extension/src/test/suite/experiments/model/filterBy/tree.test.ts

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,9 @@ suite('Experiments Filter By Tree Test Suite', () => {
6161
})
6262

6363
it('should be able to update the table data by adding and removing a filter', async () => {
64-
const { experiments, messageSpy } =
65-
stubWorkspaceExperimentsGetters(disposable)
66-
await experiments.isReady()
67-
await experiments.showWebview()
64+
const { experiments, messageSpy } = await stubWorkspaceExperimentsGetters(
65+
disposable
66+
)
6867

6968
const accuracyPath = buildMetricOrParamPath(
7069
ColumnType.METRICS,
@@ -132,8 +131,7 @@ suite('Experiments Filter By Tree Test Suite', () => {
132131
}).timeout(WEBVIEW_TEST_TIMEOUT)
133132

134133
it('should be able to remove all filters with dvc.views.experimentsFilterByTree.removeAllFilters', async () => {
135-
const { experiments } = stubWorkspaceExperimentsGetters(disposable)
136-
await experiments.isReady()
134+
const { experiments } = await stubWorkspaceExperimentsGetters(disposable)
137135

138136
const mockShowQuickPick = stub(window, 'showQuickPick')
139137
const mockShowInputBox = stub(window, 'showInputBox')
@@ -338,9 +336,7 @@ suite('Experiments Filter By Tree Test Suite', () => {
338336

339337
it('should be able to filter to starred experiments', async () => {
340338
const { experiments, experimentsModel, messageSpy } =
341-
stubWorkspaceExperimentsGetters(disposable)
342-
await experiments.isReady()
343-
await experiments.showWebview()
339+
await stubWorkspaceExperimentsGetters(disposable)
344340

345341
experimentsModel.toggleStars(['main'])
346342

@@ -368,9 +364,9 @@ suite('Experiments Filter By Tree Test Suite', () => {
368364
}).timeout(WEBVIEW_TEST_TIMEOUT)
369365

370366
it('should provide a shortcut to filter to starred experiments', async () => {
371-
const { experiments, experimentsModel } =
372-
stubWorkspaceExperimentsGetters(disposable)
373-
await experiments.isReady()
367+
const { experimentsModel } = await stubWorkspaceExperimentsGetters(
368+
disposable
369+
)
374370

375371
const mockAddFilter = stub(experimentsModel, 'addFilter')
376372

extension/src/test/suite/experiments/model/sortBy/tree.test.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,10 @@ import {
1111
ColumnType
1212
} from '../../../../../experiments/webview/contract'
1313
import { QuickPickItemWithValue } from '../../../../../vscode/quickPick'
14-
import { buildExperiments, stubWorkspaceExperimentsGetters } from '../../util'
14+
import {
15+
buildExperimentsWebview,
16+
stubWorkspaceExperimentsGetters
17+
} from '../../util'
1518
import { experimentsUpdatedEvent } from '../../../util'
1619
import { dvcDemoPath } from '../../../../util'
1720
import { generateTestExpShowOutput } from '../../../../util/experiments'
@@ -104,7 +107,7 @@ suite('Experiments Sort By Tree Test Suite', () => {
104107
it('should be able to properly add and remove sorts with a variety of commands', async () => {
105108
const mockShowQuickPick = stub(window, 'showQuickPick')
106109

107-
const { experiments, messageSpy } = buildExperiments({
110+
const { experiments, messageSpy } = await buildExperimentsWebview({
108111
disposer: disposable,
109112
dvcRoot: dvcDemoPath,
110113
expShow: data,
@@ -114,9 +117,6 @@ suite('Experiments Sort By Tree Test Suite', () => {
114117
]
115118
})
116119

117-
await experiments.isReady()
118-
await experiments.showWebview()
119-
120120
const mockSortQuickPicks = (paramPath: string, descending: boolean) => {
121121
mockShowQuickPick.onFirstCall().resolves({
122122
value: {
@@ -287,9 +287,9 @@ suite('Experiments Sort By Tree Test Suite', () => {
287287
}).timeout(WEBVIEW_TEST_TIMEOUT)
288288

289289
it('should provide a shortcut to sort by starred experiments', async () => {
290-
const { experiments, experimentsModel } =
291-
stubWorkspaceExperimentsGetters(disposable)
292-
await experiments.isReady()
290+
const { experimentsModel } = await stubWorkspaceExperimentsGetters(
291+
disposable
292+
)
293293

294294
const mockAddSort = stub(experimentsModel, 'addSort')
295295

extension/src/test/suite/experiments/model/tree.test.ts

Lines changed: 9 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -331,8 +331,7 @@ suite('Experiments Tree Test Suite', () => {
331331

332332
it('should be able to push an experiment with dvc.views.experimentsTree.pushExperiment', async () => {
333333
bypassProgressCloseDelay()
334-
const { experiments } = stubWorkspaceExperimentsGetters(disposable)
335-
await experiments.isReady()
334+
const { experiments } = await stubWorkspaceExperimentsGetters(disposable)
336335

337336
const mockUpdate = stub(experiments, 'update').resolves(undefined)
338337

@@ -363,8 +362,7 @@ suite('Experiments Tree Test Suite', () => {
363362
bypassProgressCloseDelay()
364363
const mockExperiment = 'exp-to-push'
365364

366-
const { experiments } = stubWorkspaceExperimentsGetters(disposable)
367-
await experiments.isReady()
365+
const { experiments } = await stubWorkspaceExperimentsGetters(disposable)
368366

369367
const mockUpdate = stub(experiments, 'update').resolves(undefined)
370368

@@ -394,8 +392,7 @@ suite('Experiments Tree Test Suite', () => {
394392
const mockSecondExperimentId = 'second-exp-pushed'
395393
const mockQueuedExperimentLabel = 'queued-excluded'
396394

397-
const { experiments } = stubWorkspaceExperimentsGetters(disposable)
398-
await experiments.isReady()
395+
const { experiments } = await stubWorkspaceExperimentsGetters(disposable)
399396

400397
const mockUpdate = stub(experiments, 'update').resolves(undefined)
401398

@@ -573,14 +570,8 @@ suite('Experiments Tree Test Suite', () => {
573570
})
574571

575572
it('should be able to queue an experiment from an existing one with dvc.views.experiments.queueExperiment', async () => {
576-
const {
577-
dvcExecutor,
578-
experiments,
579-
experimentsModel,
580-
mockGetOnlyOrPickProject
581-
} = stubWorkspaceExperimentsGetters(disposable)
582-
583-
await experiments.isReady()
573+
const { dvcExecutor, experimentsModel, mockGetOnlyOrPickProject } =
574+
await stubWorkspaceExperimentsGetters(disposable)
584575

585576
const mockExperimentRunQueue = stub(dvcExecutor, 'expRunQueue').resolves(
586577
'true'
@@ -630,14 +621,8 @@ suite('Experiments Tree Test Suite', () => {
630621
})
631622

632623
it('should be able to run a new experiment from an existing one with dvc.views.experiments.runExperiment', async () => {
633-
const {
634-
dvcRunner,
635-
experiments,
636-
experimentsModel,
637-
mockGetOnlyOrPickProject
638-
} = stubWorkspaceExperimentsGetters(disposable)
639-
640-
await experiments.isReady()
624+
const { dvcRunner, experimentsModel, mockGetOnlyOrPickProject } =
625+
await stubWorkspaceExperimentsGetters(disposable)
641626

642627
const mockRunExperiment = stub(dvcRunner, 'runExperiment').resolves(
643628
undefined
@@ -684,13 +669,8 @@ suite('Experiments Tree Test Suite', () => {
684669
})
685670

686671
it('should be able to reset and run a new checkpoint experiment from an existing one with dvc.views.experiments.resetAndRunCheckpointExperiment', async () => {
687-
const {
688-
dvcRunner,
689-
experiments,
690-
experimentsModel,
691-
mockGetOnlyOrPickProject
692-
} = stubWorkspaceExperimentsGetters(disposable)
693-
await experiments.isReady()
672+
const { dvcRunner, experimentsModel, mockGetOnlyOrPickProject } =
673+
await stubWorkspaceExperimentsGetters(disposable)
694674

695675
const mockRunExperimentReset = stub(
696676
dvcRunner,

0 commit comments

Comments
 (0)