Skip to content

Commit afb400a

Browse files
authored
Move remaining data update watchers to RelativePatterns (#2451)
1 parent 0ba2763 commit afb400a

File tree

4 files changed

+42
-29
lines changed

4 files changed

+42
-29
lines changed

extension/src/data/index.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
import { join } from 'path'
22
import { EventEmitter, Event } from 'vscode'
33
import { Disposable } from '@hediet/std/disposable'
4-
import { createFileSystemWatcher } from '../fileSystem/watcher'
4+
import {
5+
createFileSystemWatcher,
6+
getRelativePattern
7+
} from '../fileSystem/watcher'
58
import { ProcessManager } from '../processManager'
69
import { InternalCommands } from '../commands/internal'
710
import { ExperimentsOutput, PlotsOutput } from '../cli/dvc/reader'
@@ -94,7 +97,7 @@ export abstract class BaseData<
9497

9598
return this.dispose.track(
9699
createFileSystemWatcher(
97-
join(this.dvcRoot, '**', `{${files.join(',')}}`),
100+
getRelativePattern(this.dvcRoot, join('**', `{${files.join(',')}}`)),
98101
path => {
99102
if (!path) {
100103
return

extension/src/fileSystem/data/index.ts

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { join } from 'path'
22
import { Event, EventEmitter } from 'vscode'
33
import { isSameOrChild, loadYaml, PartialDvcYaml } from '..'
44
import { findFiles } from '../workspace'
5-
import { createFileSystemWatcher } from '../watcher'
5+
import { createFileSystemWatcher, getRelativePattern } from '../watcher'
66
import { DeferredDisposable } from '../../class/deferred'
77

88
export class FileSystemData extends DeferredDisposable {
@@ -40,15 +40,18 @@ export class FileSystemData extends DeferredDisposable {
4040

4141
private watchDvcYaml() {
4242
this.dispose.track(
43-
createFileSystemWatcher(join(this.dvcRoot, '**', 'dvc.yaml'), path => {
44-
if (!path) {
45-
return
43+
createFileSystemWatcher(
44+
getRelativePattern(this.dvcRoot, join('**', 'dvc.yaml')),
45+
path => {
46+
if (!path) {
47+
return
48+
}
49+
const yaml = loadYaml<PartialDvcYaml>(path)
50+
if (yaml) {
51+
this.updated.fire({ path, yaml })
52+
}
4653
}
47-
const yaml = loadYaml<PartialDvcYaml>(path)
48-
if (yaml) {
49-
this.updated.fire({ path, yaml })
50-
}
51-
})
54+
)
5255
)
5356
}
5457
}

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

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { join, resolve, sep } from 'path'
22
import { afterEach, beforeEach, describe, it, suite } from 'mocha'
3-
import { EventEmitter, FileSystemWatcher } from 'vscode'
3+
import { EventEmitter, FileSystemWatcher, RelativePattern, Uri } from 'vscode'
44
import { expect } from 'chai'
55
import { stub, restore, spy } from 'sinon'
66
import { Disposable } from '../../../../extension'
@@ -63,11 +63,13 @@ suite('Experiments Data Test Suite', () => {
6363
expect(mockExperimentShow).to.be.calledOnce
6464
expect(mockCreateFileSystemWatcher).to.be.calledOnce
6565

66-
expect(getFirstArgOfCall(mockCreateFileSystemWatcher, 0)).to.equal(
67-
join(
68-
dvcDemoPath,
69-
'**',
70-
`{dvc.lock,dvc.yaml,params.yaml,*.dvc,nested${sep}params.yaml,summary.json}`
66+
expect(getFirstArgOfCall(mockCreateFileSystemWatcher, 0)).to.deep.equal(
67+
new RelativePattern(
68+
Uri.file(dvcDemoPath),
69+
join(
70+
'**',
71+
`{dvc.lock,dvc.yaml,params.yaml,*.dvc,nested${sep}params.yaml,summary.json}`
72+
)
7173
)
7274
)
7375
})
@@ -135,18 +137,22 @@ suite('Experiments Data Test Suite', () => {
135137

136138
expect(mockCreateFileSystemWatcher).to.be.calledTwice
137139
expect(mockDispose).to.be.calledOnce
138-
expect(getFirstArgOfCall(mockCreateFileSystemWatcher, 0)).to.equal(
139-
join(
140-
dvcDemoPath,
141-
'**',
142-
`{dvc.lock,dvc.yaml,params.yaml,*.dvc,nested${sep}params.yaml,summary.json}`
140+
expect(getFirstArgOfCall(mockCreateFileSystemWatcher, 0)).to.deep.equal(
141+
new RelativePattern(
142+
Uri.file(dvcDemoPath),
143+
join(
144+
'**',
145+
`{dvc.lock,dvc.yaml,params.yaml,*.dvc,nested${sep}params.yaml,summary.json}`
146+
)
143147
)
144148
)
145-
expect(getFirstArgOfCall(mockCreateFileSystemWatcher, 1)).to.equal(
146-
join(
147-
dvcDemoPath,
148-
'**',
149-
`{dvc.lock,dvc.yaml,params.yaml,*.dvc,nested${sep}params.yaml,new_params.yml,new_summary.json,summary.json}`
149+
expect(getFirstArgOfCall(mockCreateFileSystemWatcher, 1)).to.deep.equal(
150+
new RelativePattern(
151+
Uri.file(dvcDemoPath),
152+
join(
153+
'**',
154+
`{dvc.lock,dvc.yaml,params.yaml,*.dvc,nested${sep}params.yaml,new_params.yml,new_summary.json,summary.json}`
155+
)
150156
)
151157
)
152158
})

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { afterEach, beforeEach, describe, it, suite } from 'mocha'
22
import { stub, restore } from 'sinon'
33
import { expect } from 'chai'
4+
import { RelativePattern, Uri } from 'vscode'
45
import { Disposable } from '../../../../extension'
56
import { FileSystemData } from '../../../../fileSystem/data'
67
import { dvcDemoPath } from '../../../util'
@@ -46,8 +47,8 @@ suite('File System Data Test Suite', () => {
4647
const data = disposable.track(new FileSystemData(dvcDemoPath))
4748

4849
expect(mockCreateFileSystemWatcher).to.be.calledOnce
49-
expect(getFirstArgOfCall(mockCreateFileSystemWatcher, 0)).to.equal(
50-
join(dvcDemoPath, '**', 'dvc.yaml')
50+
expect(getFirstArgOfCall(mockCreateFileSystemWatcher, 0)).to.deep.equal(
51+
new RelativePattern(Uri.file(dvcDemoPath), join('**', 'dvc.yaml'))
5152
)
5253

5354
await data.isReady()

0 commit comments

Comments
 (0)