Skip to content

Commit f4517ab

Browse files
authored
Update filesystem watcher integration tests (#5195)
1 parent 63305c1 commit f4517ab

File tree

4 files changed

+34
-20
lines changed

4 files changed

+34
-20
lines changed

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

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212
} from '../../util'
1313
import { dvcDemoPath, getTestWorkspaceFolder } from '../../../util'
1414
import { ExperimentsData } from '../../../../experiments/data'
15-
import * as Watcher from '../../../../fileSystem/watcher'
15+
import { fireWatcher } from '../../../../fileSystem/watcher'
1616
import {
1717
AvailableCommands,
1818
CommandId,
@@ -26,7 +26,7 @@ import {
2626
import { gitPath } from '../../../../cli/git/constants'
2727
import * as FileSystem from '../../../../fileSystem'
2828
import { ExperimentsModel } from '../../../../experiments/model'
29-
import { EXPERIMENT_WORKSPACE_ID } from '../../../../cli/dvc/contract'
29+
import { DEFAULT_EXP_SHOW_OUTPUT } from '../../../../cli/dvc/contract'
3030
import expShowFixture from '../../../fixtures/expShow/base/output'
3131
import gitLogFixture from '../../../fixtures/expShow/base/gitLog'
3232
import {
@@ -35,6 +35,7 @@ import {
3535
} from '../../../../data'
3636
import { Studio } from '../../../../experiments/studio'
3737
import { DEFAULT_STUDIO_URL } from '../../../../setup/webview/contract'
38+
import { WATCHER_TEST_TIMEOUT } from '../../timeouts'
3839

3940
const MOCK_WORKSPACE_GIT_FOLDER = join(dvcDemoPath, '.mock-git')
4041

@@ -119,7 +120,7 @@ suite('Experiments Data Test Suite', () => {
119120
return Promise.resolve('')
120121
}
121122
if (command === AvailableCommands.EXP_SHOW) {
122-
return Promise.resolve([{ rev: EXPERIMENT_WORKSPACE_ID }])
123+
return Promise.resolve(DEFAULT_EXP_SHOW_OUTPUT)
123124
}
124125
if (
125126
command === AvailableCommands.GIT_GET_REMOTE_EXPERIMENT_REFS
@@ -145,31 +146,36 @@ suite('Experiments Data Test Suite', () => {
145146
)
146147
)
147148

148-
await data.isReady()
149+
await new Promise(resolve =>
150+
data.onDidUpdate(data => {
151+
if (isRemoteExperimentsOutput(data)) {
152+
resolve(undefined)
153+
}
154+
})
155+
)
149156
bypassProcessManagerDebounce(mockNow)
150157

151158
const managedUpdateSpy = spy(data, 'managedUpdate')
152159
const dataUpdatedEvent = getDataUpdatedEvent(data)
153160

154-
await Watcher.fireWatcher(
155-
FileSystem.getGitPath(gitRoot, gitPath.DOT_GIT_HEAD)
156-
)
157-
await dataUpdatedEvent
161+
await Promise.all([
162+
dataUpdatedEvent,
163+
fireWatcher(FileSystem.getGitPath(gitRoot, gitPath.DOT_GIT_HEAD))
164+
])
158165

159166
expect(managedUpdateSpy).to.be.called
160-
}).timeout(10000)
167+
}).timeout(WATCHER_TEST_TIMEOUT)
161168

162169
it('should watch the .git directory for updates when the directory is inside workspace', async () => {
163170
const mockNow = getMockNow()
171+
stub(FileSystem, 'getGitPath').returns(MOCK_WORKSPACE_GIT_FOLDER)
164172
const gitRoot = dvcDemoPath
165173
const mockDotGitFilePath = join(
166174
MOCK_WORKSPACE_GIT_FOLDER,
167175
gitPath.DOT_GIT_HEAD
168176
)
169177
ensureFileSync(mockDotGitFilePath)
170178

171-
stub(FileSystem, 'getGitPath').returns(MOCK_WORKSPACE_GIT_FOLDER)
172-
173179
const data = disposable.track(
174180
new ExperimentsData(
175181
dvcDemoPath,
@@ -186,7 +192,7 @@ suite('Experiments Data Test Suite', () => {
186192
return Promise.resolve('')
187193
}
188194
if (command === AvailableCommands.EXP_SHOW) {
189-
return Promise.resolve([{ rev: EXPERIMENT_WORKSPACE_ID }])
195+
return Promise.resolve(DEFAULT_EXP_SHOW_OUTPUT)
190196
}
191197
if (
192198
command === AvailableCommands.GIT_GET_REMOTE_EXPERIMENT_REFS
@@ -212,18 +218,22 @@ suite('Experiments Data Test Suite', () => {
212218
)
213219
)
214220

215-
await data.isReady()
221+
await new Promise(resolve =>
222+
data.onDidUpdate(data => {
223+
if (isRemoteExperimentsOutput(data)) {
224+
resolve(undefined)
225+
}
226+
})
227+
)
216228
bypassProcessManagerDebounce(mockNow)
217229

218-
const managedUpdateSpy = spy(data, 'managedUpdate')
219-
220230
const dataUpdatedEvent = getDataUpdatedEvent(data)
231+
const managedUpdateSpy = spy(data, 'managedUpdate')
221232

222-
await Watcher.fireWatcher(mockDotGitFilePath)
223-
await dataUpdatedEvent
233+
await Promise.all([dataUpdatedEvent, fireWatcher(mockDotGitFilePath)])
224234

225235
expect(managedUpdateSpy).to.be.called
226-
}).timeout(20000)
236+
}).timeout(WATCHER_TEST_TIMEOUT)
227237

228238
it('should prune any old branches to show before calling exp show on them', async () => {
229239
stub(ExperimentsData.prototype, 'managedUpdate').resolves()

extension/src/test/suite/plots/data/index.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import {
2323
EXPERIMENT_WORKSPACE_ID,
2424
PLOT_ANCHORS
2525
} from '../../../../cli/dvc/contract'
26+
import { WATCHER_TEST_TIMEOUT } from '../../timeouts'
2627

2728
suite('Plots Data Test Suite', () => {
2829
const disposable = getTimeSafeDisposer()
@@ -166,6 +167,6 @@ suite('Plots Data Test Suite', () => {
166167
managedUpdateSpy,
167168
'should update data when an event is fired for a parent directory'
168169
).to.be.called
169-
})
170+
}).timeout(WATCHER_TEST_TIMEOUT)
170171
})
171172
})

extension/src/test/suite/repository/data/index.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import {
1313
import { gitPath } from '../../../../cli/git/constants'
1414
import { getGitPath } from '../../../../fileSystem'
1515
import { getTimeSafeDisposer } from '../../util'
16+
import { WATCHER_TEST_TIMEOUT } from '../../timeouts'
1617

1718
suite('Repository Data Test Suite', () => {
1819
const disposable = getTimeSafeDisposer()
@@ -70,6 +71,6 @@ suite('Repository Data Test Suite', () => {
7071
await dataUpdatedEvent
7172

7273
expect(managedUpdateSpy).to.be.called
73-
})
74+
}).timeout(WATCHER_TEST_TIMEOUT)
7475
})
7576
})
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
11
export const WEBVIEW_TEST_TIMEOUT = 16000
2+
3+
export const WATCHER_TEST_TIMEOUT = 20000

0 commit comments

Comments
 (0)