fix tests

This commit is contained in:
Nate Kelley 2025-07-23 22:53:54 -06:00
parent e6d4062847
commit af090d467e
No known key found for this signature in database
GPG Key ID: FD90372AB8D98B4F
2 changed files with 14 additions and 38 deletions

View File

@ -6,8 +6,7 @@ vi.mock('@buster/database/connection', () => ({
import { Hono } from 'hono';
import '../../../types/hono.types';
import { ChatError, ChatErrorCode } from '@buster/server-shared/chats';
import type { ChatWithMessages } from '@buster/server-shared/chats';
import { ChatError, ChatErrorCode, type ChatWithMessages } from '@buster/server-shared/chats';
import chatRoutes from './index';
// Mock dependencies
@ -121,12 +120,12 @@ describe('POST /chats', () => {
it('should create asset-based chat', async () => {
const response = await makeRequest(app, {
asset_id: '123e4567-e89b-12d3-a456-426614174004',
asset_type: 'metric_file',
asset_type: 'metric',
});
expect(response.status).toBe(200);
expect(createChatHandler).toHaveBeenCalledWith(
{ asset_id: '123e4567-e89b-12d3-a456-426614174004', asset_type: 'metric_file' },
{ asset_id: '123e4567-e89b-12d3-a456-426614174004', asset_type: 'metric' },
mockUser
);
});

View File

@ -2,7 +2,9 @@ import { describe, expect, it } from 'vitest';
import { ShareIndividualSchema } from '../share';
import {
AssetPermissionRoleSchema,
type ChatCreateHandlerRequest,
ChatCreateHandlerRequestSchema,
type ChatCreateRequest,
ChatCreateRequestSchema,
ChatWithMessagesSchema,
} from './chat.types';
@ -249,12 +251,12 @@ describe('ChatWithMessagesSchema', () => {
describe('ChatCreateRequestSchema', () => {
it('should parse valid complete request', () => {
const validRequest = {
const validRequest: ChatCreateRequest = {
prompt: 'Analyze revenue trends',
chat_id: 'chat-123',
message_id: 'msg-456',
asset_id: 'asset-789',
asset_type: 'metric_file',
asset_type: 'metric',
metric_id: 'legacy-metric-123',
dashboard_id: 'legacy-dashboard-456',
};
@ -265,7 +267,7 @@ describe('ChatCreateRequestSchema', () => {
if (result.success) {
expect(result.data.prompt).toBe('Analyze revenue trends');
expect(result.data.asset_id).toBe('asset-789');
expect(result.data.asset_type).toBe('metric_file');
expect(result.data.asset_type).toBe('metric');
}
});
@ -310,7 +312,7 @@ describe('ChatCreateRequestSchema', () => {
it('should allow asset_type without asset_id', () => {
const requestWithTypeButNoId = {
prompt: 'Test prompt',
asset_type: 'dashboard_file',
asset_type: 'dashboard',
// asset_id is missing - should be fine
};
@ -318,36 +320,11 @@ describe('ChatCreateRequestSchema', () => {
expect(result.success).toBe(true);
if (result.success) {
expect(result.data.asset_type).toBe('dashboard_file');
expect(result.data.asset_type).toBe('dashboard');
expect(result.data.asset_id).toBeUndefined();
}
});
it('should validate asset_type enum values', () => {
const validAssetTypes = ['metric_file', 'dashboard_file'];
const invalidAssetTypes = ['metric', 'dashboard', 'file', 'document'];
for (const assetType of validAssetTypes) {
const request = {
asset_id: 'test-id',
asset_type: assetType,
};
const result = ChatCreateRequestSchema.safeParse(request);
expect(result.success).toBe(true);
}
for (const assetType of invalidAssetTypes) {
const request = {
asset_id: 'test-id',
asset_type: assetType,
};
const result = ChatCreateRequestSchema.safeParse(request);
expect(result.success).toBe(false);
}
});
it('should handle legacy fields', () => {
const requestWithLegacyFields = {
prompt: 'Legacy test',
@ -367,12 +344,12 @@ describe('ChatCreateRequestSchema', () => {
describe('ChatCreateHandlerRequestSchema', () => {
it('should parse valid handler request', () => {
const validHandlerRequest = {
const validHandlerRequest: ChatCreateHandlerRequest = {
prompt: 'Handler test prompt',
chat_id: 'chat-handler-123',
message_id: 'msg-handler-456',
asset_id: 'asset-handler-789',
asset_type: 'metric_file',
asset_type: 'metric',
};
const result = ChatCreateHandlerRequestSchema.safeParse(validHandlerRequest);
@ -381,7 +358,7 @@ describe('ChatCreateHandlerRequestSchema', () => {
if (result.success) {
expect(result.data.prompt).toBe('Handler test prompt');
expect(result.data.asset_id).toBe('asset-handler-789');
expect(result.data.asset_type).toBe('metric_file');
expect(result.data.asset_type).toBe('metric');
}
});
@ -415,7 +392,7 @@ describe('ChatCreateHandlerRequestSchema', () => {
});
it('should validate asset_type enum values for handler', () => {
const validAssetTypes = ['metric_file', 'dashboard_file'];
const validAssetTypes = ['metric', 'dashboard'];
for (const assetType of validAssetTypes) {
const request = {