test: Migrate test suite to Bun's native testing framework

- Update test files to use Bun's native test and mocking utilities
- Replace Jest-specific imports and mocking techniques with Bun equivalents
- Refactor test setup to use Bun's mock module and testing conventions
- Add new `test/setup.ts` for global test configuration and mocks
- Improve test reliability and simplify mocking approach
- Update TypeScript configuration to support Bun testing ecosystem
This commit is contained in:
jango-blockchained
2025-02-06 13:02:02 +01:00
parent c83e9a859b
commit db53f27a1a
9 changed files with 312 additions and 277 deletions

View File

@@ -1,35 +1,32 @@
import { describe, expect, test } from "bun:test";
import { jest, describe, it, expect, beforeEach, afterEach } from '@jest/globals';
import { describe, expect, test, mock, beforeEach, afterEach } from "bun:test";
import express from 'express';
import request from 'supertest';
import router from '../../../src/ai/endpoints/ai-router.js';
import type { AIResponse, AIError } from '../../../src/ai/types/index.js';
// Mock NLPProcessor
// // jest.mock('../../../src/ai/nlp/processor.js', () => {
return {
NLPProcessor: mock().mockImplementation(() => ({
processCommand: mock().mockImplementation(async () => ({
intent: {
action: 'turn_on',
target: 'light.living_room',
parameters: {}
},
confidence: {
overall: 0.9,
intent: 0.95,
entities: 0.85,
context: 0.9
}
})),
validateIntent: mock().mockImplementation(async () => true),
suggestCorrections: mock().mockImplementation(async () => [
'Try using simpler commands',
'Specify the device name clearly'
])
}))
};
});
mock.module('../../../src/ai/nlp/processor.js', () => ({
NLPProcessor: mock(() => ({
processCommand: mock(async () => ({
intent: {
action: 'turn_on',
target: 'light.living_room',
parameters: {}
},
confidence: {
overall: 0.9,
intent: 0.95,
entities: 0.85,
context: 0.9
}
})),
validateIntent: mock(async () => true),
suggestCorrections: mock(async () => [
'Try using simpler commands',
'Specify the device name clearly'
])
}))
}));
describe('AI Router', () => {
let app: express.Application;
@@ -41,7 +38,7 @@ describe('AI Router', () => {
});
afterEach(() => {
jest.clearAllMocks();
mock.clearAllMocks();
});
describe('POST /ai/interpret', () => {