fix(strcuture): refactor responsibilities
This commit is contained in:
@ -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();
|
Reference in New Issue
Block a user