fix(strcuture): refactor responsibilities

This commit is contained in:
2025-05-19 17:28:05 +00:00
parent 8fb67922a5
commit 465148d553
62 changed files with 1414 additions and 2066 deletions

View File

@ -19,20 +19,20 @@ tap.test('AcmeStateManager should track challenge routes correctly', async (tool
};
// Initially no challenge routes
tools.expect(stateManager.isChallengeRouteActive()).toBeFalse();
tools.expect(stateManager.getActiveChallengeRoutes()).toHaveLength(0);
expect(stateManager.isChallengeRouteActive()).toBeFalse();
expect(stateManager.getActiveChallengeRoutes()).toEqual([]);
// Add challenge route
stateManager.addChallengeRoute(challengeRoute);
tools.expect(stateManager.isChallengeRouteActive()).toBeTrue();
tools.expect(stateManager.getActiveChallengeRoutes()).toHaveLength(1);
tools.expect(stateManager.getPrimaryChallengeRoute()).toEqual(challengeRoute);
expect(stateManager.isChallengeRouteActive()).toBeTrue();
expect(stateManager.getActiveChallengeRoutes()).toHaveProperty("length", 1);
expect(stateManager.getPrimaryChallengeRoute()).toEqual(challengeRoute);
// Remove challenge route
stateManager.removeChallengeRoute('acme-challenge');
tools.expect(stateManager.isChallengeRouteActive()).toBeFalse();
tools.expect(stateManager.getActiveChallengeRoutes()).toHaveLength(0);
tools.expect(stateManager.getPrimaryChallengeRoute()).toBeNull();
expect(stateManager.isChallengeRouteActive()).toBeFalse();
expect(stateManager.getActiveChallengeRoutes()).toEqual([]);
expect(stateManager.getPrimaryChallengeRoute()).toBeNull();
});
tap.test('AcmeStateManager should track port allocations', async (tools) => {
@ -64,27 +64,27 @@ tap.test('AcmeStateManager should track port allocations', async (tools) => {
// Add first route
stateManager.addChallengeRoute(challengeRoute1);
tools.expect(stateManager.isPortAllocatedForAcme(80)).toBeTrue();
tools.expect(stateManager.isPortAllocatedForAcme(8080)).toBeFalse();
tools.expect(stateManager.getAcmePorts()).toEqual([80]);
expect(stateManager.isPortAllocatedForAcme(80)).toBeTrue();
expect(stateManager.isPortAllocatedForAcme(8080)).toBeFalse();
expect(stateManager.getAcmePorts()).toEqual([80]);
// Add second route
stateManager.addChallengeRoute(challengeRoute2);
tools.expect(stateManager.isPortAllocatedForAcme(80)).toBeTrue();
tools.expect(stateManager.isPortAllocatedForAcme(8080)).toBeTrue();
tools.expect(stateManager.getAcmePorts()).toContain(80);
tools.expect(stateManager.getAcmePorts()).toContain(8080);
expect(stateManager.isPortAllocatedForAcme(80)).toBeTrue();
expect(stateManager.isPortAllocatedForAcme(8080)).toBeTrue();
expect(stateManager.getAcmePorts()).toContain(80);
expect(stateManager.getAcmePorts()).toContain(8080);
// Remove first route - port 80 should still be allocated
stateManager.removeChallengeRoute('acme-challenge-1');
tools.expect(stateManager.isPortAllocatedForAcme(80)).toBeTrue();
tools.expect(stateManager.isPortAllocatedForAcme(8080)).toBeTrue();
expect(stateManager.isPortAllocatedForAcme(80)).toBeTrue();
expect(stateManager.isPortAllocatedForAcme(8080)).toBeTrue();
// Remove second route - all ports should be deallocated
stateManager.removeChallengeRoute('acme-challenge-2');
tools.expect(stateManager.isPortAllocatedForAcme(80)).toBeFalse();
tools.expect(stateManager.isPortAllocatedForAcme(8080)).toBeFalse();
tools.expect(stateManager.getAcmePorts()).toHaveLength(0);
expect(stateManager.isPortAllocatedForAcme(80)).toBeFalse();
expect(stateManager.isPortAllocatedForAcme(8080)).toBeFalse();
expect(stateManager.getAcmePorts()).toEqual([]);
});
tap.test('AcmeStateManager should select primary route by priority', async (tools) => {
@ -125,19 +125,19 @@ tap.test('AcmeStateManager should select primary route by priority', async (tool
// Add low priority first
stateManager.addChallengeRoute(lowPriorityRoute);
tools.expect(stateManager.getPrimaryChallengeRoute()?.name).toEqual('low-priority');
expect(stateManager.getPrimaryChallengeRoute()?.name).toEqual('low-priority');
// Add high priority - should become primary
stateManager.addChallengeRoute(highPriorityRoute);
tools.expect(stateManager.getPrimaryChallengeRoute()?.name).toEqual('high-priority');
expect(stateManager.getPrimaryChallengeRoute()?.name).toEqual('high-priority');
// Add default priority - primary should remain high priority
stateManager.addChallengeRoute(defaultPriorityRoute);
tools.expect(stateManager.getPrimaryChallengeRoute()?.name).toEqual('high-priority');
expect(stateManager.getPrimaryChallengeRoute()?.name).toEqual('high-priority');
// Remove high priority - primary should fall back to low priority
stateManager.removeChallengeRoute('high-priority');
tools.expect(stateManager.getPrimaryChallengeRoute()?.name).toEqual('low-priority');
expect(stateManager.getPrimaryChallengeRoute()?.name).toEqual('low-priority');
});
tap.test('AcmeStateManager should handle clear operation', async (tools) => {
@ -168,18 +168,18 @@ tap.test('AcmeStateManager should handle clear operation', async (tools) => {
stateManager.addChallengeRoute(challengeRoute2);
// Verify state before clear
tools.expect(stateManager.isChallengeRouteActive()).toBeTrue();
tools.expect(stateManager.getActiveChallengeRoutes()).toHaveLength(2);
tools.expect(stateManager.getAcmePorts()).toHaveLength(3);
expect(stateManager.isChallengeRouteActive()).toBeTrue();
expect(stateManager.getActiveChallengeRoutes()).toHaveProperty("length", 2);
expect(stateManager.getAcmePorts()).toHaveProperty("length", 3);
// Clear all state
stateManager.clear();
// Verify state after clear
tools.expect(stateManager.isChallengeRouteActive()).toBeFalse();
tools.expect(stateManager.getActiveChallengeRoutes()).toHaveLength(0);
tools.expect(stateManager.getAcmePorts()).toHaveLength(0);
tools.expect(stateManager.getPrimaryChallengeRoute()).toBeNull();
expect(stateManager.isChallengeRouteActive()).toBeFalse();
expect(stateManager.getActiveChallengeRoutes()).toEqual([]);
expect(stateManager.getAcmePorts()).toEqual([]);
expect(stateManager.getPrimaryChallengeRoute()).toBeNull();
});
export default tap;
export default tap.start();