UNPKG

@lobehub/chat

Version:

Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.

61 lines (54 loc) 1.88 kB
import { describe, expect, it } from 'vitest'; interface User { name: string; id: string; type: 'normal-user' | 'admin' | 'super-admin'; displayName: string; firstName: string; lastName: string; avatar: string; email: string; emailVerified: boolean; } interface UserDataUpdatedEvent { user: string; // 用户名 action: 'update-user'; extendedUser: User; // 扩展用户信息 } const userDataUpdatedEvent: UserDataUpdatedEvent = { user: 'admin', action: 'update-user', extendedUser: { name: 'admin', id: '35edace3-00c6-41e1-895e-97c519b1d8cc', type: 'normal-user', displayName: 'Admin', firstName: '', lastName: '', avatar: 'https://cdn.casbin.org/img/casbin.svg', email: 'admin@example.cn', emailVerified: false, }, }; const AUTH_CASDOOR_WEBHOOK_SECRET = 'casdoor-secret'; // Test Casdoor Webhooks in Local dev, here is some tips: // - Replace the var `AUTH_CASDOOR_WETHOOK_SECRET` with the actual value in your `.env` file // - Start web request: If you want to run the test, replace `describe.skip` with `describe` below // - Run this test with command: // pnpm vitest --run --testNamePattern='^ ?Test Casdoor Webhooks in Local dev' src/app/api/webhooks/casdoor/__tests__/route.test.ts describe.skip('Test Casdoor Webhooks in Local dev', () => { // describe('Test Casdoor Webhooks in Local dev', () => { it('should send a POST request with casdoor headers', async () => { const url = 'http://localhost:3010/api/webhooks/casdoor'; // 替换为目标URL const data = userDataUpdatedEvent; const response = await fetch(url, { method: 'POST', headers: { 'Content-Type': 'application/json', 'casdoor-secret': AUTH_CASDOOR_WEBHOOK_SECRET, }, body: JSON.stringify(data), }); expect(response.status).toBe(200); // 检查响应状态 }); });