|
1 | 1 | import { describe, it, expect, vi, beforeEach } from 'vitest'; |
2 | | -import { checkRemoteIp, checkOrigin, isLocalIp } from '../../src/http/security'; |
| 2 | +import { checkRemoteIp, isLocalIp } from '../../src/http/security'; |
3 | 3 | import type { Request, Response } from '../../src/http'; |
4 | 4 | import type { TidewaveConfig } from '../../src/core'; |
5 | 5 |
|
6 | 6 | // Mock request/response helpers |
7 | | -const createMockRequest = ( |
8 | | - remoteAddress = '127.0.0.1', |
9 | | - origin?: string, |
10 | | - url = '/', |
11 | | -): Partial<Request> => ({ |
| 7 | +const createMockRequest = (remoteAddress = '127.0.0.1'): Partial<Request> => ({ |
12 | 8 | socket: { remoteAddress } as any, |
13 | | - headers: origin ? { origin } : {}, |
14 | | - url, |
| 9 | + headers: {}, |
15 | 10 | }); |
16 | 11 |
|
17 | 12 | const createMockResponse = () => { |
@@ -104,58 +99,4 @@ describe('HTTP Security', () => { |
104 | 99 | expect(res.statusCode).toBe(200); |
105 | 100 | }); |
106 | 101 | }); |
107 | | - |
108 | | - describe('checkOrigin', () => { |
109 | | - it('/mcp and /config refuse requests with origin header', () => { |
110 | | - // /mcp should refuse any request with origin header |
111 | | - const req1 = createMockRequest('127.0.0.1', 'http://localhost:4001', '/mcp'); |
112 | | - const { res: res1, mockEnd: mockEnd1 } = createMockResponse(); |
113 | | - const config: TidewaveConfig = {}; |
114 | | - |
115 | | - const result1 = checkOrigin(req1 as Request, res1 as Response, config); |
116 | | - |
117 | | - expect(result1).toBe(false); |
118 | | - expect(res1.statusCode).toBe(403); |
119 | | - |
120 | | - // /config should refuse any request with origin header |
121 | | - const req2 = createMockRequest('127.0.0.1', 'http://localhost:4000', '/config'); |
122 | | - const { res: res2, mockEnd: mockEnd2 } = createMockResponse(); |
123 | | - |
124 | | - const result2 = checkOrigin(req2 as Request, res2 as Response, config); |
125 | | - |
126 | | - expect(result2).toBe(false); |
127 | | - expect(res2.statusCode).toBe(403); |
128 | | - }); |
129 | | - |
130 | | - it('/ (root) allows any origin', () => { |
131 | | - // / should allow any origin |
132 | | - const req1 = createMockRequest('127.0.0.1', 'http://example.com', '/'); |
133 | | - const { res: res1 } = createMockResponse(); |
134 | | - const config: TidewaveConfig = {}; |
135 | | - |
136 | | - const result1 = checkOrigin(req1 as Request, res1 as Response, config); |
137 | | - |
138 | | - expect(result1).toBe(true); |
139 | | - expect(res1.statusCode).toBe(200); |
140 | | - |
141 | | - const req2 = createMockRequest('127.0.0.1', 'http://localhost:4000', '/'); |
142 | | - const { res: res2 } = createMockResponse(); |
143 | | - |
144 | | - const result2 = checkOrigin(req2 as Request, res2 as Response, config); |
145 | | - |
146 | | - expect(result2).toBe(true); |
147 | | - expect(res2.statusCode).toBe(200); |
148 | | - }); |
149 | | - |
150 | | - it('should allow requests without origin header', () => { |
151 | | - const req = createMockRequest('127.0.0.1', undefined, '/mcp'); |
152 | | - const { res } = createMockResponse(); |
153 | | - const config: TidewaveConfig = {}; |
154 | | - |
155 | | - const result = checkOrigin(req as Request, res as Response, config); |
156 | | - |
157 | | - expect(result).toBe(true); |
158 | | - expect(res.statusCode).toBe(200); |
159 | | - }); |
160 | | - }); |
161 | 102 | }); |
0 commit comments