|
|
@@ -0,0 +1,26 @@
|
|
|
+import { describe, expect, it } from 'vitest';
|
|
|
+
|
|
|
+import { TunnelInboundSettingsSchema } from '@/schemas/protocols/inbound/tunnel';
|
|
|
+
|
|
|
+// Regression for issue #5516: AntD InputNumber writes null when the Rewrite
|
|
|
+// port field is cleared, which used to crash validation with "Invalid input".
|
|
|
+describe('TunnelInboundSettingsSchema rewritePort', () => {
|
|
|
+ it('accepts null (cleared field) and omits the port', () => {
|
|
|
+ const parsed = TunnelInboundSettingsSchema.parse({ rewritePort: null });
|
|
|
+ expect(parsed.rewritePort).toBeUndefined();
|
|
|
+ });
|
|
|
+
|
|
|
+ it('accepts a missing field', () => {
|
|
|
+ const parsed = TunnelInboundSettingsSchema.parse({});
|
|
|
+ expect(parsed.rewritePort).toBeUndefined();
|
|
|
+ });
|
|
|
+
|
|
|
+ it('preserves a valid port', () => {
|
|
|
+ const parsed = TunnelInboundSettingsSchema.parse({ rewritePort: 8443 });
|
|
|
+ expect(parsed.rewritePort).toBe(8443);
|
|
|
+ });
|
|
|
+
|
|
|
+ it('still rejects out-of-range ports', () => {
|
|
|
+ expect(() => TunnelInboundSettingsSchema.parse({ rewritePort: 70000 })).toThrow();
|
|
|
+ });
|
|
|
+});
|