Files
MyGoNavi/frontend/src/components/WorkbenchTabContent.nacos-services.test.tsx
Syngnat 4d42ce746c feat(nacos): 完善分组服务发现交互
- 在服务发现树中按 Group 展示入口并向工作台传递初始筛选
- 统一解析分组服务名并在列表中展示服务与所属 Group
- 防止快速切换服务时旧实例响应覆盖当前选择
- 服务增删后刷新对应命名空间的侧栏分组并保护强制刷新顺序
- 补充服务路由、分组菜单、侧栏刷新和实例竞态测试
2026-07-28 19:23:07 +08:00

49 lines
1.6 KiB
TypeScript

import React from 'react';
import TestRenderer, { act } from 'react-test-renderer';
import { describe, expect, it, vi } from 'vitest';
import type { TabData } from '../types';
import WorkbenchTabContent from './WorkbenchTabContent';
vi.mock('antd', () => ({
Spin: () => <span data-spin="true" />,
}));
vi.mock('./NacosServiceViewer', () => ({
default: (props: Record<string, unknown>) => (
<div
data-nacos-services-viewer="true"
data-connection-id={props.connectionId}
data-namespace-id={props.namespaceId}
data-initial-group={props.initialGroup}
/>
),
}));
describe('WorkbenchTabContent Nacos service routing', () => {
it('passes the tab group to the service viewer as its initial filter', async () => {
const tab: TabData = {
id: 'nacos-services-nacos-1-ns-mkefu-dev-g-MKEFU_SERVICE',
title: 'mkefu development · MKEFU_SERVICE',
type: 'nacos-services',
connectionId: 'nacos-1',
nacosNamespaceId: 'mkefu-dev',
nacosNamespaceName: 'mkefu development',
nacosGroup: 'MKEFU_SERVICE',
};
let renderer: TestRenderer.ReactTestRenderer;
await act(async () => {
renderer = TestRenderer.create(<WorkbenchTabContent tab={tab} isActive />);
await Promise.resolve();
await Promise.resolve();
});
const viewer = renderer!.root.findByProps({ 'data-nacos-services-viewer': 'true' });
expect(viewer.props['data-connection-id']).toBe('nacos-1');
expect(viewer.props['data-namespace-id']).toBe('mkefu-dev');
expect(viewer.props['data-initial-group']).toBe('MKEFU_SERVICE');
act(() => renderer!.unmount());
});
});