feat: complete tRPC integration and fix platform UI issues

- Implement comprehensive tRPC setup with type-safe API
- Create tRPC routers for dashboard, admin, and auth endpoints
- Migrate frontend components to use tRPC client
- Fix platform dashboard Settings button functionality
- Add platform settings page with profile and security management
- Create OpenAI API mocking infrastructure for cost-safe testing
- Update tests to work with new tRPC architecture
- Sync database schema to fix AIBatchRequest table errors
This commit is contained in:
2025-07-11 15:37:53 +02:00
committed by Kaj Kowalski
parent f2a3d87636
commit fa7e815a3b
38 changed files with 4285 additions and 518 deletions

View File

@ -2,8 +2,8 @@ import { describe, it, expect, beforeEach, vi } from "vitest";
import { parseTranscriptToMessages } from "../../lib/transcriptParser";
describe("Transcript Parser", () => {
const startTime = new Date('2024-01-01T10:00:00Z');
const endTime = new Date('2024-01-01T10:30:00Z');
const startTime = new Date("2024-01-01T10:00:00Z");
const endTime = new Date("2024-01-01T10:30:00Z");
beforeEach(() => {
vi.clearAllMocks();
@ -22,7 +22,9 @@ describe("Transcript Parser", () => {
expect(result.success).toBe(true);
expect(result.messages).toHaveLength(3);
expect(result.messages![0].role).toBe("User");
expect(result.messages![0].content).toBe("Hello, I need help with my account");
expect(result.messages![0].content).toBe(
"Hello, I need help with my account"
);
expect(result.messages![1].role).toBe("Assistant");
expect(result.messages![2].role).toBe("User");
expect(result.messages![2].content).toBe("I can't log in to my account");
@ -42,7 +44,9 @@ User: I need support with my order
expect(result.messages![0].role).toBe("User");
expect(result.messages![0].content).toBe("Hello there");
expect(result.messages![1].role).toBe("Assistant");
expect(result.messages![1].content).toBe("Hello! How can I help you today?");
expect(result.messages![1].content).toBe(
"Hello! How can I help you today?"
);
expect(result.messages![2].role).toBe("User");
expect(result.messages![2].content).toBe("I need support with my order");
});
@ -124,15 +128,17 @@ User: Third
it("should handle empty content", () => {
expect(parseTranscriptToMessages("", startTime, endTime)).toEqual({
success: false,
error: "Empty transcript content"
error: "Empty transcript content",
});
expect(parseTranscriptToMessages(" \n\n ", startTime, endTime)).toEqual({
expect(
parseTranscriptToMessages(" \n\n ", startTime, endTime)
).toEqual({
success: false,
error: "Empty transcript content"
error: "Empty transcript content",
});
expect(parseTranscriptToMessages("\t\r\n", startTime, endTime)).toEqual({
success: false,
error: "Empty transcript content"
error: "Empty transcript content",
});
});
@ -185,4 +191,4 @@ System: Mixed case system
expect(firstTimestamp.getSeconds()).toBe(45);
});
});
});
});