@theia/filesystem 1.71.0 → 1.72.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -50,9 +50,11 @@ describe('parcel-filesystem-watcher', function () {
50
50
  });
51
51
  it('Should receive file changes events from in the workspace by default.', async function () {
52
52
  const actualUris = new Set();
53
+ const changeListeners = [];
53
54
  const watcherClient = {
54
55
  onDidFilesChanged(event) {
55
56
  event.changes.forEach(c => actualUris.add(c.uri.toString()));
57
+ changeListeners.forEach(l => l());
56
58
  },
57
59
  onError() {
58
60
  }
@@ -65,13 +67,13 @@ describe('parcel-filesystem-watcher', function () {
65
67
  ];
66
68
  fs.mkdirSync(node_1.FileUri.fsPath(root.resolve('foo')));
67
69
  expect(fs.statSync(node_1.FileUri.fsPath(root.resolve('foo'))).isDirectory()).to.be.true;
68
- await sleep(2000);
70
+ await waitForChange(actualUris, changeListeners, expectedUris[0]);
69
71
  fs.mkdirSync(node_1.FileUri.fsPath(root.resolve('foo').resolve('bar')));
70
72
  expect(fs.statSync(node_1.FileUri.fsPath(root.resolve('foo').resolve('bar'))).isDirectory()).to.be.true;
71
- await sleep(2000);
73
+ await waitForChange(actualUris, changeListeners, expectedUris[1]);
72
74
  fs.writeFileSync(node_1.FileUri.fsPath(root.resolve('foo').resolve('bar').resolve('baz.txt')), 'baz');
73
75
  expect(fs.readFileSync(node_1.FileUri.fsPath(root.resolve('foo').resolve('bar').resolve('baz.txt')), 'utf8')).to.be.equal('baz');
74
- await sleep(2000);
76
+ await waitForChange(actualUris, changeListeners, expectedUris[2]);
75
77
  assert.deepStrictEqual([...actualUris], expectedUris);
76
78
  });
77
79
  it('Should not receive file changes events from in the workspace by default if unwatched', async function () {
@@ -138,6 +140,35 @@ describe('parcel-filesystem-watcher', function () {
138
140
  function sleep(time) {
139
141
  return new Promise(resolve => setTimeout(resolve, time));
140
142
  }
143
+ /**
144
+ * Wait for a specific URI to appear in the change set, driven by watcher events.
145
+ * Resolves immediately if the URI is already present.
146
+ */
147
+ function waitForChange(receivedUris, listeners, expectedUri, timeoutMs = 10000) {
148
+ if (receivedUris.has(expectedUri)) {
149
+ return Promise.resolve();
150
+ }
151
+ return new Promise((resolve, reject) => {
152
+ const timer = setTimeout(() => {
153
+ const idx = listeners.indexOf(check);
154
+ if (idx >= 0) {
155
+ listeners.splice(idx, 1);
156
+ }
157
+ reject(new Error(`Timed out after ${timeoutMs}ms waiting for change event: ${expectedUri}`));
158
+ }, timeoutMs);
159
+ function check() {
160
+ if (receivedUris.has(expectedUri)) {
161
+ clearTimeout(timer);
162
+ const idx = listeners.indexOf(check);
163
+ if (idx >= 0) {
164
+ listeners.splice(idx, 1);
165
+ }
166
+ resolve();
167
+ }
168
+ }
169
+ listeners.push(check);
170
+ });
171
+ }
141
172
  });
142
173
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
143
174
  process.on('unhandledRejection', (reason) => {
@@ -1 +1 @@
1
- {"version":3,"file":"parcel-filesystem-watcher.spec.js","sourceRoot":"","sources":["../../../src/node/parcel-watcher/parcel-filesystem-watcher.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parcel-filesystem-watcher.spec.js","sourceRoot":"","sources":["../../../src/node/parcel-watcher/parcel-filesystem-watcher.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@theia/filesystem",
3
- "version": "1.71.0",
3
+ "version": "1.72.0-next.2+c6615252d",
4
4
  "description": "Theia - FileSystem Extension",
5
5
  "dependencies": {
6
- "@theia/core": "1.71.0",
6
+ "@theia/core": "1.72.0-next.2+c6615252d",
7
7
  "@types/body-parser": "^1.19.6",
8
8
  "@types/multer": "^1.4.13",
9
9
  "@types/tar-fs": "^1.16.3",
@@ -82,5 +82,5 @@
82
82
  "nyc": {
83
83
  "extends": "../../configs/nyc.json"
84
84
  },
85
- "gitHead": "d8a596fc99f0a8e68b466828ed162569d79e3a71"
85
+ "gitHead": "c6615252d35303058e0bde98e8a3ca56b5efcd82"
86
86
  }
@@ -58,10 +58,12 @@ describe('parcel-filesystem-watcher', function (): void {
58
58
 
59
59
  it('Should receive file changes events from in the workspace by default.', async function (): Promise<void> {
60
60
  const actualUris = new Set<string>();
61
+ const changeListeners: Array<() => void> = [];
61
62
 
62
63
  const watcherClient = {
63
64
  onDidFilesChanged(event: DidFilesChangedParams): void {
64
65
  event.changes.forEach(c => actualUris.add(c.uri.toString()));
66
+ changeListeners.forEach(l => l());
65
67
  },
66
68
  onError(): void {
67
69
  }
@@ -76,15 +78,15 @@ describe('parcel-filesystem-watcher', function (): void {
76
78
 
77
79
  fs.mkdirSync(FileUri.fsPath(root.resolve('foo')));
78
80
  expect(fs.statSync(FileUri.fsPath(root.resolve('foo'))).isDirectory()).to.be.true;
79
- await sleep(2000);
81
+ await waitForChange(actualUris, changeListeners, expectedUris[0]);
80
82
 
81
83
  fs.mkdirSync(FileUri.fsPath(root.resolve('foo').resolve('bar')));
82
84
  expect(fs.statSync(FileUri.fsPath(root.resolve('foo').resolve('bar'))).isDirectory()).to.be.true;
83
- await sleep(2000);
85
+ await waitForChange(actualUris, changeListeners, expectedUris[1]);
84
86
 
85
87
  fs.writeFileSync(FileUri.fsPath(root.resolve('foo').resolve('bar').resolve('baz.txt')), 'baz');
86
88
  expect(fs.readFileSync(FileUri.fsPath(root.resolve('foo').resolve('bar').resolve('baz.txt')), 'utf8')).to.be.equal('baz');
87
- await sleep(2000);
89
+ await waitForChange(actualUris, changeListeners, expectedUris[2]);
88
90
 
89
91
  assert.deepStrictEqual([...actualUris], expectedUris);
90
92
  });
@@ -168,6 +170,41 @@ describe('parcel-filesystem-watcher', function (): void {
168
170
  return new Promise(resolve => setTimeout(resolve, time));
169
171
  }
170
172
 
173
+ /**
174
+ * Wait for a specific URI to appear in the change set, driven by watcher events.
175
+ * Resolves immediately if the URI is already present.
176
+ */
177
+ function waitForChange(
178
+ receivedUris: Set<string>,
179
+ listeners: Array<() => void>,
180
+ expectedUri: string,
181
+ timeoutMs = 10000
182
+ ): Promise<void> {
183
+ if (receivedUris.has(expectedUri)) {
184
+ return Promise.resolve();
185
+ }
186
+ return new Promise<void>((resolve, reject) => {
187
+ const timer = setTimeout(() => {
188
+ const idx = listeners.indexOf(check);
189
+ if (idx >= 0) {
190
+ listeners.splice(idx, 1);
191
+ }
192
+ reject(new Error(`Timed out after ${timeoutMs}ms waiting for change event: ${expectedUri}`));
193
+ }, timeoutMs);
194
+ function check(): void {
195
+ if (receivedUris.has(expectedUri)) {
196
+ clearTimeout(timer);
197
+ const idx = listeners.indexOf(check);
198
+ if (idx >= 0) {
199
+ listeners.splice(idx, 1);
200
+ }
201
+ resolve();
202
+ }
203
+ }
204
+ listeners.push(check);
205
+ });
206
+ }
207
+
171
208
  });
172
209
 
173
210
  // eslint-disable-next-line @typescript-eslint/no-explicit-any