2022-09-09 15:08:55 +00:00
|
|
|
import { expect } from 'chai';
|
|
|
|
import * as path from 'path';
|
|
|
|
|
|
|
|
import * as updateLock from '~/lib/update-lock';
|
|
|
|
|
|
|
|
describe('lib/update-lock: unit tests', () => {
|
|
|
|
describe('lockPath', () => {
|
|
|
|
it('should return path prefix of service lockfiles on host', () => {
|
|
|
|
expect(updateLock.lockPath(123)).to.equal(
|
|
|
|
path.join(updateLock.BASE_LOCK_DIR, '123'),
|
|
|
|
);
|
|
|
|
expect(updateLock.lockPath(123, 'main')).to.equal(
|
|
|
|
path.join(updateLock.BASE_LOCK_DIR, '123', 'main'),
|
|
|
|
);
|
|
|
|
});
|
|
|
|
});
|
2024-01-09 21:34:55 +00:00
|
|
|
|
|
|
|
describe('LocksTakenMap', () => {
|
|
|
|
it('should be an instance of Map<number, Set<string>>', () => {
|
|
|
|
const map = new updateLock.LocksTakenMap();
|
|
|
|
expect(map).to.be.an.instanceof(Map);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('should add services while ignoring duplicates', () => {
|
|
|
|
const map = new updateLock.LocksTakenMap();
|
|
|
|
map.add(123, 'main');
|
|
|
|
expect(map.getServices(123)).to.deep.include.members(['main']);
|
|
|
|
|
|
|
|
map.add(123, 'main');
|
|
|
|
expect(map.getServices(123)).to.deep.include.members(['main']);
|
|
|
|
|
|
|
|
map.add(123, ['main', 'aux']);
|
|
|
|
expect(map.getServices(123)).to.deep.include.members(['main', 'aux']);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('should track any number of appIds', () => {
|
|
|
|
const map = new updateLock.LocksTakenMap();
|
|
|
|
map.add(123, 'main');
|
|
|
|
map.add(456, ['aux', 'dep']);
|
|
|
|
expect(map.getServices(123)).to.deep.include.members(['main']);
|
|
|
|
expect(map.getServices(456)).to.deep.include.members(['aux', 'dep']);
|
|
|
|
expect(map.size).to.equal(2);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('should return empty array for non-existent appIds', () => {
|
|
|
|
const map = new updateLock.LocksTakenMap();
|
|
|
|
expect(map.getServices(123)).to.deep.equal([]);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('should return whether a service is locked under an appId', () => {
|
|
|
|
const map = new updateLock.LocksTakenMap();
|
|
|
|
map.add(123, 'main');
|
|
|
|
expect(map.isLocked(123, 'main')).to.be.true;
|
|
|
|
expect(map.isLocked(123, 'aux')).to.be.false;
|
|
|
|
expect(map.isLocked(456, 'main')).to.be.false;
|
|
|
|
});
|
|
|
|
});
|
2022-09-09 15:08:55 +00:00
|
|
|
});
|