@hashgraph/solo
Version:
An opinionated CLI tool to deploy and manage private Hedera Networks.
36 lines • 1.96 kB
JavaScript
// SPDX-License-Identifier: Apache-2.0
import { expect } from 'chai';
import { DefaultCacheHandlerRegistry } from '../../../../src/integration/cache/impl/default-cache-handler-registry.js';
import { CacheArtifactEnum } from '../../../../src/integration/cache/enums/cache-artifact-enum.js';
describe('DefaultCacheHandlerRegistry', () => {
it('should register and retrieve a handler by type', () => {
const registry = new DefaultCacheHandlerRegistry();
const handler = {
getType: () => CacheArtifactEnum.IMAGE,
};
registry.registerHandler(handler);
expect(registry.getHandler(CacheArtifactEnum.IMAGE)).to.equal(handler);
});
it('should throw when handler is not registered', () => {
const registry = new DefaultCacheHandlerRegistry();
expect(() => registry.getHandler(CacheArtifactEnum.IMAGE)).to.throw('No handler registered for type: images');
});
it('should return all registered handlers', () => {
const registry = new DefaultCacheHandlerRegistry();
const imageHandler = { getType: () => CacheArtifactEnum.IMAGE };
const chartHandler = { getType: () => CacheArtifactEnum.HELM_CHART };
registry.registerHandler(imageHandler);
registry.registerHandler(chartHandler);
expect(registry.getAllHandlers()).to.deep.equal([imageHandler, chartHandler]);
});
it('should replace handler for same type', () => {
const registry = new DefaultCacheHandlerRegistry();
const handler1 = { getType: () => CacheArtifactEnum.IMAGE };
const handler2 = { getType: () => CacheArtifactEnum.IMAGE };
registry.registerHandler(handler1);
registry.registerHandler(handler2);
expect(registry.getHandler(CacheArtifactEnum.IMAGE)).to.equal(handler2);
expect(registry.getAllHandlers()).to.deep.equal([handler2]);
});
});
//# sourceMappingURL=default-cache-handler-registry.test.js.map