kt-template-online-api/test/modules/qqbot/core/qqbot-core-status-contract.spec.ts

59 lines
1.9 KiB
TypeScript

jest.mock('@/qqbot/qqbot.module', () => ({
QqbotModule: class QqbotModule {},
}));
jest.mock('@/qqbot/plugin/qqbot-event-plugin-registry.service', () => ({
QqbotEventPluginRegistryService: class QqbotEventPluginRegistryService {},
}));
jest.mock(
'../../../../src/qqbot/plugin/qqbot-event-plugin-registry.service',
() => ({
QqbotEventPluginRegistryService: class QqbotEventPluginRegistryService {},
}),
);
jest.mock('@/qqbot/plugin/qqbot-plugin-registry.service', () => ({
QqbotPluginRegistryService: class QqbotPluginRegistryService {},
}));
jest.mock('../../../../src/qqbot/plugin/qqbot-plugin-registry.service', () => ({
QqbotPluginRegistryService: class QqbotPluginRegistryService {},
}));
import { QQBOT_CORE_DOMAIN_CONTRACT } from '../../../../src/modules/qqbot/core/qqbot-core.contract';
import { readRefactorV3SqlSchema } from '../../../helpers/sql-schema.helper';
describe('QQBot core status contract', () => {
const schema = readRefactorV3SqlSchema();
it('keeps OneBot connection, container, WebUI and QQ login status as separate account fields', () => {
expect(QQBOT_CORE_DOMAIN_CONTRACT.status).toEqual({
accountTable: 'qqbot_account',
oneBotField: 'onebot_status',
containerField: 'container_status',
webuiField: 'webui_status',
qqLoginField: 'qq_login_status',
lastErrorField: 'last_error',
connectionSessionTable: 'qqbot_connection_session',
sessionStatusField: 'status',
closeReasonField: 'close_reason',
});
schema.expectTableColumns('qqbot_account', [
'id',
'self_id',
'onebot_status',
'container_status',
'webui_status',
'qq_login_status',
'last_error',
]);
schema.expectTableColumns('qqbot_connection_session', [
'id',
'account_id',
'session_key',
'status',
'connected_at',
'disconnected_at',
'close_reason',
]);
});
});