kopia lustrzana https://github.com/cloudflare/wildebeest
				
				
				
			
		
			
				
	
	
		
			56 wiersze
		
	
	
		
			1.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			56 wiersze
		
	
	
		
			1.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
| import { makeDB, assertCache } from './utils'
 | |
| import { strict as assert } from 'node:assert/strict'
 | |
| 
 | |
| import * as webfinger from 'wildebeest/functions/.well-known/webfinger'
 | |
| 
 | |
| describe('WebFinger', () => {
 | |
| 	test('no resource queried', async () => {
 | |
| 		const db = await makeDB()
 | |
| 
 | |
| 		const req = new Request('https://example.com/.well-known/webfinger')
 | |
| 		const res = await webfinger.handleRequest(req, db)
 | |
| 		assert.equal(res.status, 400)
 | |
| 	})
 | |
| 
 | |
| 	test('invalid resource', async () => {
 | |
| 		const db = await makeDB()
 | |
| 
 | |
| 		const req = new Request('https://example.com/.well-known/webfinger?resource=hein:a')
 | |
| 		const res = await webfinger.handleRequest(req, db)
 | |
| 		assert.equal(res.status, 400)
 | |
| 	})
 | |
| 
 | |
| 	test('query local account', async () => {
 | |
| 		const db = await makeDB()
 | |
| 
 | |
| 		const req = new Request('https://example.com/.well-known/webfinger?resource=acct:sven')
 | |
| 		const res = await webfinger.handleRequest(req, db)
 | |
| 		assert.equal(res.status, 400)
 | |
| 	})
 | |
| 
 | |
| 	test('query remote non-existing account', async () => {
 | |
| 		const db = await makeDB()
 | |
| 
 | |
| 		const req = new Request('https://example.com/.well-known/webfinger?resource=acct:sven@example.com')
 | |
| 		const res = await webfinger.handleRequest(req, db)
 | |
| 		assert.equal(res.status, 404)
 | |
| 	})
 | |
| 
 | |
| 	test('query remote existing account', async () => {
 | |
| 		const db = await makeDB()
 | |
| 		await db
 | |
| 			.prepare('INSERT INTO actors (id, email, type) VALUES (?, ?, ?)')
 | |
| 			.bind('https://example.com/ap/users/sven', 'sven@cloudflare.com', 'Person')
 | |
| 			.run()
 | |
| 
 | |
| 		const req = new Request('https://example.com/.well-known/webfinger?resource=acct:sven@example.com')
 | |
| 		const res = await webfinger.handleRequest(req, db)
 | |
| 		assert.equal(res.status, 200)
 | |
| 		assert.equal(res.headers.get('content-type'), 'application/jrd+json')
 | |
| 		assertCache(res, 3600)
 | |
| 
 | |
| 		const data = await res.json<any>()
 | |
| 		assert.equal(data.links.length, 1)
 | |
| 	})
 | |
| })
 |