1
0
mirror of https://github.com/laurent22/joplin.git synced 2025-07-03 23:50:33 +02:00
Files
joplin/packages/utils/fs.test.ts

49 lines
1017 B
TypeScript

/* eslint-disable import/prefer-default-export */
import { mkdirp } from 'fs-extra';
import { FileLocker } from './fs';
import { msleep, Second } from './time';
const baseTempDir = `${__dirname}/../app-cli/tests/tmp`;
export const createTempDir = async () => {
const p = `${baseTempDir}/${Date.now()}`;
await mkdirp(p);
return p;
};
describe('fs', () => {
it('should lock files', async () => {
const dirPath = await createTempDir();
const filePath = `${dirPath}/test.lock`;
const locker1 = new FileLocker(filePath, {
interval: 10 * Second,
});
expect(await locker1.lock()).toBe(true);
expect(await locker1.lock()).toBe(false);
locker1.unlockSync();
const locker2 = new FileLocker(filePath, {
interval: 1.5 * Second,
});
expect(await locker2.lock()).toBe(true);
locker2.stopMonitoring_();
const locker3 = new FileLocker(filePath, {
interval: 1.5 * Second,
});
await msleep(2 * Second);
expect(await locker3.lock()).toBe(true);
locker3.unlockSync();
});
});