tests
This commit is contained in:
parent
54f37f9521
commit
3a7254708e
19 changed files with 1560 additions and 1237 deletions
|
|
@ -102,12 +102,13 @@ describe('Shutdown Comprehensive Tests', () => {
|
|||
});
|
||||
|
||||
it('should handle negative timeout values', () => {
|
||||
// Should either throw or use default
|
||||
expect(() => setShutdownTimeout(-1000)).not.toThrow();
|
||||
// Should throw for negative values
|
||||
expect(() => setShutdownTimeout(-1000)).toThrow('Shutdown timeout must be positive');
|
||||
});
|
||||
|
||||
it('should handle zero timeout', () => {
|
||||
expect(() => setShutdownTimeout(0)).not.toThrow();
|
||||
// Should throw for zero timeout
|
||||
expect(() => setShutdownTimeout(0)).toThrow('Shutdown timeout must be positive');
|
||||
});
|
||||
});
|
||||
|
||||
|
|
@ -165,9 +166,9 @@ describe('Shutdown Comprehensive Tests', () => {
|
|||
expect(callback1).toHaveBeenCalledTimes(1);
|
||||
expect(callback2).toHaveBeenCalledTimes(1);
|
||||
expect(callback3).toHaveBeenCalledTimes(1);
|
||||
expect(result.total).toBe(3);
|
||||
expect(result.successful).toBe(3);
|
||||
expect(result.failed).toBe(0);
|
||||
expect(result.callbacksExecuted).toBe(3);
|
||||
expect(result.callbacksFailed).toBe(0);
|
||||
expect(result.success).toBe(true);
|
||||
});
|
||||
|
||||
it('should handle errors in callbacks', async () => {
|
||||
|
|
@ -181,11 +182,10 @@ describe('Shutdown Comprehensive Tests', () => {
|
|||
|
||||
const result = await initiateShutdown();
|
||||
|
||||
expect(result.total).toBe(2);
|
||||
expect(result.successful).toBe(1);
|
||||
expect(result.failed).toBe(1);
|
||||
expect(result.errors).toHaveLength(1);
|
||||
expect(result.errors[0]).toContain('error-handler');
|
||||
expect(result.callbacksExecuted).toBe(2);
|
||||
expect(result.callbacksFailed).toBe(1);
|
||||
expect(result.success).toBe(false);
|
||||
expect(result.error).toContain('1 callbacks failed');
|
||||
});
|
||||
|
||||
it('should only execute once', async () => {
|
||||
|
|
@ -231,10 +231,9 @@ describe('Shutdown Comprehensive Tests', () => {
|
|||
|
||||
const result = await shutdown.shutdown();
|
||||
|
||||
expect(result.total).toBe(0);
|
||||
expect(result.successful).toBe(0);
|
||||
expect(result.failed).toBe(0);
|
||||
expect(result.errors).toHaveLength(0);
|
||||
expect(result.callbacksExecuted).toBe(0);
|
||||
expect(result.callbacksFailed).toBe(0);
|
||||
expect(result.success).toBe(true);
|
||||
});
|
||||
|
||||
it('should respect timeout', async () => {
|
||||
|
|
@ -251,7 +250,8 @@ describe('Shutdown Comprehensive Tests', () => {
|
|||
const duration = Date.now() - startTime;
|
||||
|
||||
expect(duration).toBeLessThan(150); // Should timeout before 200ms
|
||||
expect(result.timedOut).toBe(true);
|
||||
expect(result.success).toBe(false);
|
||||
expect(result.error).toContain('Shutdown timeout');
|
||||
});
|
||||
|
||||
it('should handle synchronous callbacks', async () => {
|
||||
|
|
@ -266,7 +266,8 @@ describe('Shutdown Comprehensive Tests', () => {
|
|||
|
||||
const result = await shutdown.shutdown();
|
||||
|
||||
expect(result.successful).toBe(1);
|
||||
expect(result.callbacksExecuted).toBe(1);
|
||||
expect(result.callbacksFailed).toBe(0);
|
||||
expect(syncCallback).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
|
@ -302,8 +303,8 @@ describe('Shutdown Comprehensive Tests', () => {
|
|||
|
||||
const result = await initiateShutdown();
|
||||
|
||||
expect(result.total).toBe(100);
|
||||
expect(result.successful).toBe(100);
|
||||
expect(result.callbacksExecuted).toBe(100);
|
||||
expect(result.callbacksFailed).toBe(0);
|
||||
|
||||
callbacks.forEach(cb => {
|
||||
expect(cb).toHaveBeenCalledTimes(1);
|
||||
|
|
@ -340,8 +341,8 @@ describe('Shutdown Comprehensive Tests', () => {
|
|||
|
||||
const result = await initiateShutdown();
|
||||
|
||||
expect(result.failed).toBe(1);
|
||||
expect(result.errors[0]).toContain('throwing-handler');
|
||||
expect(result.callbacksFailed).toBe(1);
|
||||
expect(result.error).toContain('1 callbacks failed');
|
||||
});
|
||||
|
||||
it('should handle undefined callback name', () => {
|
||||
|
|
@ -372,9 +373,7 @@ describe('Shutdown Comprehensive Tests', () => {
|
|||
|
||||
expect(result.duration).toBeGreaterThan(0);
|
||||
expect(result.duration).toBeLessThanOrEqual(totalTime);
|
||||
expect(result.startTime).toBeInstanceOf(Date);
|
||||
expect(result.endTime).toBeInstanceOf(Date);
|
||||
expect(result.endTime.getTime() - result.startTime.getTime()).toBe(result.duration);
|
||||
expect(result.success).toBe(true);
|
||||
});
|
||||
|
||||
it('should track individual callback execution', async () => {
|
||||
|
|
@ -393,11 +392,10 @@ describe('Shutdown Comprehensive Tests', () => {
|
|||
|
||||
const result = await initiateShutdown();
|
||||
|
||||
expect(result.total).toBe(successCount + errorCount);
|
||||
expect(result.successful).toBe(successCount);
|
||||
expect(result.failed).toBe(errorCount);
|
||||
expect(result.errors).toHaveLength(errorCount);
|
||||
expect(result.timedOut).toBe(false);
|
||||
expect(result.callbacksExecuted).toBe(successCount + errorCount);
|
||||
expect(result.callbacksFailed).toBe(errorCount);
|
||||
expect(result.success).toBe(false);
|
||||
expect(result.error).toContain(`${errorCount} callbacks failed`);
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue