88 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			2.4 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 { LogAction, LogLevel } from '../src/types';
 | |
| import { SlardarReportClient } from '../src/slardar';
 | |
| vi.mock('@slardar/web');
 | |
| 
 | |
| const captureException = vi.fn();
 | |
| const sendEvent = vi.fn();
 | |
| const sendLog = vi.fn();
 | |
| const mockSlardarInstance = function (type) {
 | |
|   if (type === 'captureException') {
 | |
|     captureException();
 | |
|   }
 | |
| 
 | |
|   if (type === 'sendEvent') {
 | |
|     sendEvent();
 | |
|   }
 | |
| 
 | |
|   if (type === 'sendLog') {
 | |
|     sendLog();
 | |
|   }
 | |
| };
 | |
| describe('slardar reporter client test cases', () => {
 | |
|   afterEach(() => {
 | |
|     vi.clearAllMocks();
 | |
|   });
 | |
|   test('slardar init fail', () => {
 | |
|     const consoleSpy = vi.spyOn(console, 'warn');
 | |
|     new SlardarReportClient(null);
 | |
|     expect(consoleSpy).toHaveBeenCalled();
 | |
|   });
 | |
| 
 | |
|   test('slardar just report persist log', () => {
 | |
|     const slardarReportClient = new SlardarReportClient(mockSlardarInstance);
 | |
|     expect(
 | |
|       slardarReportClient.send({
 | |
|         action: [LogAction.CONSOLE],
 | |
|       }),
 | |
|     ).toBeUndefined();
 | |
|   });
 | |
| 
 | |
|   test('slardar report error', () => {
 | |
|     const slardarReportClient = new SlardarReportClient(mockSlardarInstance);
 | |
|     slardarReportClient.send({
 | |
|       action: [LogAction.PERSIST],
 | |
|       level: LogLevel.ERROR,
 | |
|       meta: {
 | |
|         reportJsError: true,
 | |
|       },
 | |
|     });
 | |
|     expect(captureException).toHaveBeenCalled();
 | |
|   });
 | |
| 
 | |
|   test('slardar report event', () => {
 | |
|     const slardarReportClient = new SlardarReportClient(mockSlardarInstance);
 | |
|     slardarReportClient.send({
 | |
|       action: [LogAction.PERSIST],
 | |
|       level: LogLevel.INFO,
 | |
|       eventName: 'test-event',
 | |
|     });
 | |
|     expect(sendEvent).toHaveBeenCalled();
 | |
|   });
 | |
| 
 | |
|   test('slardar report log', () => {
 | |
|     const slardarReportClient = new SlardarReportClient(mockSlardarInstance);
 | |
|     slardarReportClient.send({
 | |
|       action: [LogAction.PERSIST],
 | |
|       level: LogLevel.INFO,
 | |
|       message: 'test message',
 | |
|     });
 | |
|     expect(sendLog).toHaveBeenCalled();
 | |
|   });
 | |
| });
 |