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