Skip to content
This repository was archived by the owner on Dec 15, 2022. It is now read-only.

Commit 2ae9d8e

Browse files
committed
Test for cross-instance cache invalidation
1 parent 9adff71 commit 2ae9d8e

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

test/models/workdir-context-pool.test.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -368,4 +368,32 @@ describe('WorkdirContextPool', function() {
368368
});
369369
});
370370
});
371+
372+
describe('cross-instance cache invalidation', function() {
373+
it('invalidates a config cache key in different instances when a global setting is changed', async function() {
374+
const value = String(Date.now());
375+
376+
const repo0 = pool.add(await cloneRepository('three-files')).getRepository();
377+
const repo1 = pool.add(await cloneRepository('three-files')).getRepository();
378+
const repo2 = pool.add(temp.mkdirSync()).getRepository();
379+
380+
await Promise.all([repo0, repo1, repo2].map(repo => repo.getLoadPromise()));
381+
382+
const [before0, before1, before2] = await Promise.all(
383+
[repo0, repo1, repo2].map(repo => repo.getConfig('atomGithub.test')),
384+
);
385+
386+
assert.notInclude([before0, before1, before2], value);
387+
388+
await repo2.setConfig('atomGithub.test', value, {global: true});
389+
390+
const [after0, after1, after2] = await Promise.all(
391+
[repo0, repo1, repo2].map(repo => repo.getConfig('atomGithub.test')),
392+
);
393+
394+
assert.strictEqual(after0, value);
395+
assert.strictEqual(after1, value);
396+
assert.strictEqual(after2, value);
397+
});
398+
});
371399
});

0 commit comments

Comments
 (0)