kt-template-admin/test/api/qqbot/plugin-task.spec.ts

78 lines
2.1 KiB
TypeScript

import {
disableQqbotPluginTask,
enableQqbotPluginTask,
getQqbotPluginTaskPage,
getQqbotPluginTaskRunPage,
runQqbotPluginTaskOnce,
updateQqbotPluginTaskCron,
} from '@test-source/apps/web-antdv-next/src/api/qqbot/plugin-task';
import { beforeEach, describe, expect, it, vi } from 'vitest';
import { requestClient } from '#/api/request';
vi.mock('#/api/request', () => ({
requestClient: {
get: vi.fn(),
post: vi.fn(),
},
}));
describe('qqbot plugin task API wrappers', () => {
beforeEach(() => {
vi.clearAllMocks();
});
it('uses plugin-platform task endpoints', async () => {
vi.mocked(requestClient.get).mockResolvedValue({ list: [], total: 0 });
vi.mocked(requestClient.post).mockResolvedValue({});
await getQqbotPluginTaskPage({
enabled: true,
pageNo: 1,
pageSize: 10,
taskKey: 'bangdream.bestdori.sync-main-data',
});
await enableQqbotPluginTask('task-1');
await disableQqbotPluginTask('task-1');
await updateQqbotPluginTaskCron('task-1', '0 */6 * * *');
await runQqbotPluginTaskOnce('task-1', { force: true });
await getQqbotPluginTaskRunPage('task-1', { pageNo: 1, pageSize: 20 });
expect(requestClient.get).toHaveBeenCalledWith(
'/qqbot/plugin-platform/tasks/page',
{
params: {
enabled: true,
pageNo: 1,
pageSize: 10,
taskKey: 'bangdream.bestdori.sync-main-data',
},
},
);
expect(requestClient.post).toHaveBeenCalledWith(
'/qqbot/plugin-platform/tasks/task-1/enable',
);
expect(requestClient.post).toHaveBeenCalledWith(
'/qqbot/plugin-platform/tasks/task-1/disable',
);
expect(requestClient.post).toHaveBeenCalledWith(
'/qqbot/plugin-platform/tasks/task-1/cron',
{
cronExpression: '0 */6 * * *',
},
);
expect(requestClient.post).toHaveBeenCalledWith(
'/qqbot/plugin-platform/tasks/task-1/run',
{
input: { force: true },
},
);
expect(requestClient.get).toHaveBeenCalledWith(
'/qqbot/plugin-platform/tasks/task-1/runs',
{
params: { pageNo: 1, pageSize: 20 },
},
);
});
});