61 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			61 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|  | import { expect, tap } from '@git.zone/tstest/tapbundle'; | ||
|  | import { webrequest } from '../ts/index.js'; | ||
|  | 
 | ||
|  | // Simple smoke tests for v4 API
 | ||
|  | 
 | ||
|  | // Test 1: Basic fetch-compatible API
 | ||
|  | tap.test('should work as fetch replacement', async () => { | ||
|  |   const response = await webrequest('https://httpbin.org/get', { | ||
|  |     method: 'GET', | ||
|  |   }); | ||
|  |   expect(response).toBeInstanceOf(Response); | ||
|  |   expect(response.ok).toEqual(true); | ||
|  |   console.log('API response status:', response.status); | ||
|  | }); | ||
|  | 
 | ||
|  | // Test 2: JSON convenience method
 | ||
|  | tap.test('should support getJson convenience method', async () => { | ||
|  |   interface HttpBinResponse { | ||
|  |     url: string; | ||
|  |     headers: Record<string, string>; | ||
|  |   } | ||
|  | 
 | ||
|  |   const data = await webrequest.getJson<HttpBinResponse>('https://httpbin.org/get'); | ||
|  |   console.log('getJson url:', data.url); | ||
|  |   expect(data).toHaveProperty('url'); | ||
|  |   expect(data).toHaveProperty('headers'); | ||
|  | }); | ||
|  | 
 | ||
|  | // Test 3: POST with JSON
 | ||
|  | tap.test('should support postJson', async () => { | ||
|  |   interface PostResponse { | ||
|  |     json: any; | ||
|  |     url: string; | ||
|  |   } | ||
|  | 
 | ||
|  |   const data = await webrequest.postJson<PostResponse>( | ||
|  |     'https://httpbin.org/post', | ||
|  |     { test: 'data' } | ||
|  |   ); | ||
|  |   expect(data).toHaveProperty('url'); | ||
|  |   expect(data).toHaveProperty('json'); | ||
|  |   console.log('postJson works'); | ||
|  | }); | ||
|  | 
 | ||
|  | // Test 4: Caching
 | ||
|  | tap.test('should support caching', async () => { | ||
|  |   const data1 = await webrequest.getJson('https://httpbin.org/get', { | ||
|  |     cacheStrategy: 'cache-first' | ||
|  |   }); | ||
|  | 
 | ||
|  |   const data2 = await webrequest.getJson('https://httpbin.org/get', { | ||
|  |     cacheStrategy: 'cache-first' | ||
|  |   }); | ||
|  | 
 | ||
|  |   expect(data1).toHaveProperty('url'); | ||
|  |   expect(data2).toHaveProperty('url'); | ||
|  |   console.log('Caching works'); | ||
|  | }); | ||
|  | 
 | ||
|  | export default tap.start(); |