lion/packages/singleton-manager/test-suites/runSingletonManagerClassSuite.suite.js
2023-11-21 11:01:26 +01:00

39 lines
1.6 KiB
JavaScript

import { SingletonManagerClass } from 'singleton-manager';
/**
* @param {{expect: function}} config
*/
export function runSingletonManagerClassSuite({ expect }) {
describe('SingletonManagerClass', () => {
it('returns undefined and has false if not set', async () => {
const mngr = new SingletonManagerClass();
expect(mngr.get('overlays/overlays.js::0.13.x')).to.be.undefined;
expect(mngr.has('overlays/overlays.js::0.13.x')).to.be.false;
});
it('return value and has true if set', () => {
const mngr = new SingletonManagerClass();
mngr.set('overlays/overlays.js::0.13.x', 'is-set');
expect(mngr.get('overlays/overlays.js::0.13.x')).to.equal('is-set');
expect(mngr.has('overlays/overlays.js::0.13.x')).to.be.true;
// make sure non set values are still correct
expect(mngr.get('overlays/overlays.js::0.14.x')).to.be.undefined;
expect(mngr.has('overlays/overlays.js::0.14.x')).to.be.false;
});
it('does not override existing keys (e.g. subsequential calls for the same keys are ignored)', () => {
const mngr = new SingletonManagerClass();
mngr.set('overlays/overlays.js::0.14.x', 'is-set');
mngr.set('overlays/overlays.js::0.14.x', 'new-set');
expect(mngr.get('overlays/overlays.js::0.14.x')).to.equal('is-set');
});
it('should return the same value with two SingletonManager instances', () => {
const mngr1 = new SingletonManagerClass();
const mngr2 = new SingletonManagerClass();
mngr1.set('overlays/overlays.js::0.15.x', 'is-set');
expect(mngr2.get('overlays/overlays.js::0.15.x')).to.equal('is-set');
});
});
}