mirror of https://github.com/buster-so/buster.git
fix tests
This commit is contained in:
parent
e6d4062847
commit
af090d467e
|
@ -6,8 +6,7 @@ vi.mock('@buster/database/connection', () => ({
|
||||||
|
|
||||||
import { Hono } from 'hono';
|
import { Hono } from 'hono';
|
||||||
import '../../../types/hono.types';
|
import '../../../types/hono.types';
|
||||||
import { ChatError, ChatErrorCode } from '@buster/server-shared/chats';
|
import { ChatError, ChatErrorCode, type ChatWithMessages } from '@buster/server-shared/chats';
|
||||||
import type { ChatWithMessages } from '@buster/server-shared/chats';
|
|
||||||
import chatRoutes from './index';
|
import chatRoutes from './index';
|
||||||
|
|
||||||
// Mock dependencies
|
// Mock dependencies
|
||||||
|
@ -121,12 +120,12 @@ describe('POST /chats', () => {
|
||||||
it('should create asset-based chat', async () => {
|
it('should create asset-based chat', async () => {
|
||||||
const response = await makeRequest(app, {
|
const response = await makeRequest(app, {
|
||||||
asset_id: '123e4567-e89b-12d3-a456-426614174004',
|
asset_id: '123e4567-e89b-12d3-a456-426614174004',
|
||||||
asset_type: 'metric_file',
|
asset_type: 'metric',
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(response.status).toBe(200);
|
expect(response.status).toBe(200);
|
||||||
expect(createChatHandler).toHaveBeenCalledWith(
|
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
|
mockUser
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
|
@ -2,7 +2,9 @@ import { describe, expect, it } from 'vitest';
|
||||||
import { ShareIndividualSchema } from '../share';
|
import { ShareIndividualSchema } from '../share';
|
||||||
import {
|
import {
|
||||||
AssetPermissionRoleSchema,
|
AssetPermissionRoleSchema,
|
||||||
|
type ChatCreateHandlerRequest,
|
||||||
ChatCreateHandlerRequestSchema,
|
ChatCreateHandlerRequestSchema,
|
||||||
|
type ChatCreateRequest,
|
||||||
ChatCreateRequestSchema,
|
ChatCreateRequestSchema,
|
||||||
ChatWithMessagesSchema,
|
ChatWithMessagesSchema,
|
||||||
} from './chat.types';
|
} from './chat.types';
|
||||||
|
@ -249,12 +251,12 @@ describe('ChatWithMessagesSchema', () => {
|
||||||
|
|
||||||
describe('ChatCreateRequestSchema', () => {
|
describe('ChatCreateRequestSchema', () => {
|
||||||
it('should parse valid complete request', () => {
|
it('should parse valid complete request', () => {
|
||||||
const validRequest = {
|
const validRequest: ChatCreateRequest = {
|
||||||
prompt: 'Analyze revenue trends',
|
prompt: 'Analyze revenue trends',
|
||||||
chat_id: 'chat-123',
|
chat_id: 'chat-123',
|
||||||
message_id: 'msg-456',
|
message_id: 'msg-456',
|
||||||
asset_id: 'asset-789',
|
asset_id: 'asset-789',
|
||||||
asset_type: 'metric_file',
|
asset_type: 'metric',
|
||||||
metric_id: 'legacy-metric-123',
|
metric_id: 'legacy-metric-123',
|
||||||
dashboard_id: 'legacy-dashboard-456',
|
dashboard_id: 'legacy-dashboard-456',
|
||||||
};
|
};
|
||||||
|
@ -265,7 +267,7 @@ describe('ChatCreateRequestSchema', () => {
|
||||||
if (result.success) {
|
if (result.success) {
|
||||||
expect(result.data.prompt).toBe('Analyze revenue trends');
|
expect(result.data.prompt).toBe('Analyze revenue trends');
|
||||||
expect(result.data.asset_id).toBe('asset-789');
|
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', () => {
|
it('should allow asset_type without asset_id', () => {
|
||||||
const requestWithTypeButNoId = {
|
const requestWithTypeButNoId = {
|
||||||
prompt: 'Test prompt',
|
prompt: 'Test prompt',
|
||||||
asset_type: 'dashboard_file',
|
asset_type: 'dashboard',
|
||||||
// asset_id is missing - should be fine
|
// asset_id is missing - should be fine
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -318,36 +320,11 @@ describe('ChatCreateRequestSchema', () => {
|
||||||
expect(result.success).toBe(true);
|
expect(result.success).toBe(true);
|
||||||
|
|
||||||
if (result.success) {
|
if (result.success) {
|
||||||
expect(result.data.asset_type).toBe('dashboard_file');
|
expect(result.data.asset_type).toBe('dashboard');
|
||||||
expect(result.data.asset_id).toBeUndefined();
|
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', () => {
|
it('should handle legacy fields', () => {
|
||||||
const requestWithLegacyFields = {
|
const requestWithLegacyFields = {
|
||||||
prompt: 'Legacy test',
|
prompt: 'Legacy test',
|
||||||
|
@ -367,12 +344,12 @@ describe('ChatCreateRequestSchema', () => {
|
||||||
|
|
||||||
describe('ChatCreateHandlerRequestSchema', () => {
|
describe('ChatCreateHandlerRequestSchema', () => {
|
||||||
it('should parse valid handler request', () => {
|
it('should parse valid handler request', () => {
|
||||||
const validHandlerRequest = {
|
const validHandlerRequest: ChatCreateHandlerRequest = {
|
||||||
prompt: 'Handler test prompt',
|
prompt: 'Handler test prompt',
|
||||||
chat_id: 'chat-handler-123',
|
chat_id: 'chat-handler-123',
|
||||||
message_id: 'msg-handler-456',
|
message_id: 'msg-handler-456',
|
||||||
asset_id: 'asset-handler-789',
|
asset_id: 'asset-handler-789',
|
||||||
asset_type: 'metric_file',
|
asset_type: 'metric',
|
||||||
};
|
};
|
||||||
|
|
||||||
const result = ChatCreateHandlerRequestSchema.safeParse(validHandlerRequest);
|
const result = ChatCreateHandlerRequestSchema.safeParse(validHandlerRequest);
|
||||||
|
@ -381,7 +358,7 @@ describe('ChatCreateHandlerRequestSchema', () => {
|
||||||
if (result.success) {
|
if (result.success) {
|
||||||
expect(result.data.prompt).toBe('Handler test prompt');
|
expect(result.data.prompt).toBe('Handler test prompt');
|
||||||
expect(result.data.asset_id).toBe('asset-handler-789');
|
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', () => {
|
it('should validate asset_type enum values for handler', () => {
|
||||||
const validAssetTypes = ['metric_file', 'dashboard_file'];
|
const validAssetTypes = ['metric', 'dashboard'];
|
||||||
|
|
||||||
for (const assetType of validAssetTypes) {
|
for (const assetType of validAssetTypes) {
|
||||||
const request = {
|
const request = {
|
||||||
|
|
Loading…
Reference in New Issue