1/* 2 * Copyright (C) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16import { SpAbilityMonitorChart } from '../../../../src/trace/component/chart/SpAbilityMonitorChart'; 17import '../../../../src/trace/component/chart/SpAbilityMonitorChart'; 18import { SpChartManager } from '../../../../src/trace/component/chart/SpChartManager'; 19jest.mock('../../../../src/trace/database/ui-worker/ProcedureWorker', () => { 20 return {}; 21}); 22const sqlit = require('../../../../src/trace/database/SqlLite'); 23jest.mock('../../../../src/trace/database/SqlLite'); 24import { TraceRow } from '../../../../src/trace/component/trace/base/TraceRow'; 25const intersectionObserverMock = () => ({ 26 observe: () => null, 27}); 28jest.mock('../../../../src/trace/database/SqlLite'); 29window.IntersectionObserver = jest.fn().mockImplementation(intersectionObserverMock); 30// @ts-ignore 31window.ResizeObserver = window.ResizeObserver || 32 jest.fn().mockImplementation(() => ({ 33 observe: jest.fn(), 34 unobserve: jest.fn(), 35 disconnect: jest.fn(), 36 })); 37describe('SpAbilityMonitorChart Test', () => { 38 let MockqueryAbilityExits = sqlit.queryAbilityExits; 39 MockqueryAbilityExits.mockResolvedValue([ 40 { 41 event_name: 'trace_cpu_usage', 42 stat_type: 'received', 43 count: 1, 44 }, 45 { 46 event_name: 'sys_memory', 47 stat_type: 'received', 48 count: 1, 49 }, 50 { 51 event_name: 'trace_diskio', 52 stat_type: 'received', 53 count: 1, 54 }, 55 { 56 event_name: 'trace_diskio', 57 stat_type: 'received', 58 count: 1, 59 }, 60 ]); 61 let cpudata = sqlit.queryCPuAbilityMaxData; 62 cpudata.mockResolvedValue([ 63 { 64 totalLoad: 1, 65 userLoad: 1, 66 systemLoad: 1, 67 }, 68 ]); 69 let memorydata = sqlit.queryMemoryMaxData; 70 memorydata.mockResolvedValue([ 71 { 72 maxValue: 1, 73 filter_id: 1, 74 }, 75 ]); 76 77 let queryDiskIo = sqlit.queryDiskIoMaxData; 78 queryDiskIo.mockResolvedValue([ 79 { 80 bytesRead: 1, 81 bytesWrite: 1, 82 readOps: 1, 83 writeOps: 1, 84 }, 85 ]); 86 87 let netWorkDiskIo = sqlit.queryNetWorkMaxData; 88 netWorkDiskIo.mockResolvedValue([ 89 { 90 maxIn: 1, 91 maxOut: 1, 92 maxPacketIn: 1, 93 maxPacketOut: 1, 94 }, 95 ]); 96 let queryDmaAbilityData = sqlit.queryDmaAbilityData; 97 queryDmaAbilityData.mockResolvedValue([ 98 { 99 startNs: 1, 100 value: 1, 101 flag: 1, 102 ipid: 1, 103 expTaskComm: '', 104 }, 105 ]); 106 let queryGpuMemoryAbilityData = sqlit.queryGpuMemoryAbilityData; 107 queryGpuMemoryAbilityData.mockResolvedValue([ 108 { 109 startNs: 1, 110 value: 1, 111 }, 112 ]); 113 let queryPurgeableSysData = sqlit.queryPurgeableSysData; 114 queryPurgeableSysData.mockResolvedValue([ 115 { 116 startNs: 1, 117 value: 1, 118 }, 119 ]); 120 121 let purgeableSysData = sqlit.queryPurgeableSysData; 122 purgeableSysData.mockResolvedValue([ 123 { 124 name: 'test', 125 startNs: 15255, 126 value: 0, 127 }, 128 ]); 129 130 let dmaAbilityData = sqlit.queryDmaAbilityData; 131 dmaAbilityData.mockResolvedValue([ 132 { 133 startNs: 15255, 134 value: 2, 135 expTaskComm: 'allocator_host', 136 flag: 0, 137 name: 'test', 138 }, 139 ]); 140 141 let gpuMemoryAbilityData = sqlit.queryGpuMemoryAbilityData; 142 gpuMemoryAbilityData.mockResolvedValue([ 143 { 144 name: 'test', 145 startNs: 15255, 146 value: 0, 147 }, 148 ]); 149 let manager = new SpChartManager(); 150 let trace = new SpAbilityMonitorChart(manager); 151 it('SpAbilityMonitorChart01', function () { 152 trace.init(); 153 expect(trace).toBeDefined(); 154 }); 155 it('SpAbilityMonitorChart02', function () { 156 let traceRow = new TraceRow(); 157 expect(trace.initNetworkAbility(traceRow)).toBeDefined(); 158 }); 159}); 160