131 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
			
		
		
	
	
			131 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
| /*
 | |
|  * Copyright 2025 coze-dev Authors
 | |
|  *
 | |
|  * Licensed under the Apache License, Version 2.0 (the "License");
 | |
|  * you may not use this file except in compliance with the License.
 | |
|  * You may obtain a copy of the License at
 | |
|  *
 | |
|  *     http://www.apache.org/licenses/LICENSE-2.0
 | |
|  *
 | |
|  * Unless required by applicable law or agreed to in writing, software
 | |
|  * distributed under the License is distributed on an "AS IS" BASIS,
 | |
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
|  * See the License for the specific language governing permissions and
 | |
|  * limitations under the License.
 | |
|  */
 | |
| 
 | |
| import { renderHook } from '@testing-library/react-hooks';
 | |
| import {
 | |
|   type BizCtx,
 | |
|   ComponentType,
 | |
|   TrafficScene,
 | |
| } from '@coze-arch/bot-api/debugger_api';
 | |
| 
 | |
| import { type BasicMockSetInfo } from '@/interface';
 | |
| import { useInitialGetEnabledMockSet } from '@/hooks/use-get-mockset';
 | |
| 
 | |
| vi.mock('@/const', () => ({
 | |
|   IS_OVERSEA: true,
 | |
|   MockTrafficEnabled: {
 | |
|     DISABLE: 0,
 | |
|     ENABLE: 1,
 | |
|   },
 | |
| }));
 | |
| 
 | |
| vi.mock('@coze-arch/bot-utils', () => ({
 | |
|   safeJSONParse: JSON.parse,
 | |
| }));
 | |
| 
 | |
| vi.mock('@coze-arch/logger', () => ({
 | |
|   logger: {
 | |
|     createLoggerWith: vi.fn(),
 | |
|     error: vi.fn(),
 | |
|     info: vi.fn(),
 | |
|   },
 | |
|   reporter: {
 | |
|     createReporterWithPreset: vi.fn(),
 | |
|   },
 | |
| }));
 | |
| 
 | |
| vi.mock('@coze-arch/bot-api', () => ({
 | |
|   debuggerApi: {
 | |
|     MGetMockSetBinding: vi.fn().mockResolvedValue({
 | |
|       code: 0,
 | |
|       msg: '',
 | |
|       mockSetBindings: [
 | |
|         {
 | |
|           mockSetID: '1',
 | |
|           mockSubject: {
 | |
|             componentID: 'tool1',
 | |
|             componentType: ComponentType.CozeTool,
 | |
|             parentComponentID: 'plugin1',
 | |
|             parentComponentType: ComponentType.CozePlugin,
 | |
|           },
 | |
|           bizCtx: {
 | |
|             bizSpaceID: '1',
 | |
|             trafficCallerID: '1',
 | |
|             trafficScene: TrafficScene.CozeSingleAgentDebug,
 | |
|             connectorID: '1',
 | |
|             connectorUID: '2',
 | |
|           },
 | |
|         },
 | |
|       ],
 | |
|       mockSetDetails: {
 | |
|         '1': {
 | |
|           id: '1',
 | |
|           name: 'test-detail',
 | |
|           mockSubject: {
 | |
|             componentID: 'tool1',
 | |
|             componentType: ComponentType.CozeTool,
 | |
|             parentComponentID: 'plugin1',
 | |
|             parentComponentType: ComponentType.CozePlugin,
 | |
|           },
 | |
|         },
 | |
|       },
 | |
|     }),
 | |
|   },
 | |
| }));
 | |
| 
 | |
| describe('mock-set-hooks', () => {
 | |
|   it('fetch-mock-list', async () => {
 | |
|     const TEST_COMMON_BIZ = {
 | |
|       connectorID: '1',
 | |
|       connectorUID: '2',
 | |
|     };
 | |
| 
 | |
|     const TEST_BIZ_CTX1: BizCtx = {
 | |
|       bizSpaceID: '1',
 | |
|       trafficCallerID: '1',
 | |
|       trafficScene: TrafficScene.CozeSingleAgentDebug,
 | |
|     };
 | |
| 
 | |
|     const TEST_MOCK_SUBJECT = {
 | |
|       componentID: 'tool1',
 | |
|       componentType: ComponentType.CozeTool,
 | |
|       parentComponentID: 'plugin1',
 | |
|       parentComponentType: ComponentType.CozePlugin,
 | |
|     };
 | |
| 
 | |
|     const singleAgentToolItem: BasicMockSetInfo = {
 | |
|       bindSubjectInfo: TEST_MOCK_SUBJECT,
 | |
|       bizCtx: {
 | |
|         ...TEST_COMMON_BIZ,
 | |
|         ...TEST_BIZ_CTX1,
 | |
|       },
 | |
|     };
 | |
|     const { result } = renderHook(() =>
 | |
|       useInitialGetEnabledMockSet({
 | |
|         bizCtx: singleAgentToolItem.bizCtx,
 | |
|         pollingInterval: 0,
 | |
|       }),
 | |
|     );
 | |
| 
 | |
|     const { start } = result.current;
 | |
| 
 | |
|     await start();
 | |
|     const { data } = result.current;
 | |
|     expect(data[0]?.mockSetBinding.mockSetID).toEqual('1');
 | |
|     expect(data[0]?.mockSetDetail?.id).toEqual('1');
 | |
|   });
 | |
| });
 |