diff options
| author | Bertrand Yuan <noreply@bertyuan.com> | 2026-03-26 00:02:16 +0800 |
|---|---|---|
| committer | Bertrand Yuan <noreply@bertyuan.com> | 2026-03-26 00:02:16 +0800 |
| commit | 8a6a6712e7554f110b5ef951f270d88fd010e040 (patch) | |
| tree | 12cb86b1ede55e15600ef7f139ef7ec91b9fa8a1 /src/lib/safe-action.test.ts | |
| parent | f7a02fe0e112cf108fc5f22872f1efc077e99fe8 (diff) | |
add more tests
Diffstat (limited to 'src/lib/safe-action.test.ts')
| -rw-r--r-- | src/lib/safe-action.test.ts | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/lib/safe-action.test.ts b/src/lib/safe-action.test.ts new file mode 100644 index 0000000..eee5679 --- /dev/null +++ b/src/lib/safe-action.test.ts @@ -0,0 +1,42 @@ +import { afterEach, describe, expect, test, vi } from 'vitest'; + +vi.mock('next-safe-action', () => ({ + DEFAULT_SERVER_ERROR_MESSAGE: 'Internal server error', + createSafeActionClient: vi.fn((options: unknown) => options), +})); + +describe('safe-action', () => { + afterEach(() => { + vi.restoreAllMocks(); + vi.resetModules(); + }); + + test('returns custom message for ActionError', async () => { + const errorSpy = vi.spyOn(console, 'error').mockImplementation(() => {}); + const { ActionError, actionClient } = await import('./safe-action'); + const client = actionClient as unknown as { + handleServerError: (e: Error) => string; + }; + + const message = client.handleServerError(new ActionError('Custom error')); + + expect(message).toBe('Custom error'); + expect(errorSpy).toHaveBeenCalledWith( + 'Failed to execute action:', + 'Custom error', + ); + }); + + test('returns default message for unknown errors', async () => { + const errorSpy = vi.spyOn(console, 'error').mockImplementation(() => {}); + const { actionClient } = await import('./safe-action'); + const client = actionClient as unknown as { + handleServerError: (e: Error) => string; + }; + + const message = client.handleServerError(new Error('Unexpected')); + + expect(message).toBe('Internal server error'); + expect(errorSpy).toHaveBeenCalledWith('Failed to execute action:', 'Unexpected'); + }); +}); |
