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_ciimport { SpHiSysEnergyChart } from '../../../../src/trace/component/chart/SpHiSysEnergyChart'; 17fb726d48Sopenharmony_ciimport { LitPopover } from '../../../../src/base-ui/popover/LitPopoverV'; 18fb726d48Sopenharmony_cijest.mock('../../../../src/trace/component/SpSystemTrace', () => { 19fb726d48Sopenharmony_ci return {}; 20fb726d48Sopenharmony_ci}); 21fb726d48Sopenharmony_cijest.mock('../../../../src/js-heap/model/DatabaseStruct', () => { 22fb726d48Sopenharmony_ci return {}; 23fb726d48Sopenharmony_ci}); 24fb726d48Sopenharmony_cijest.mock('../../../../src/trace/database/ui-worker/ProcedureWorkerSnapshot', () => { 25fb726d48Sopenharmony_ci return {}; 26fb726d48Sopenharmony_ci}); 27fb726d48Sopenharmony_cijest.mock('../../../../src/trace/database/ui-worker/ProcedureWorker', () => { 28fb726d48Sopenharmony_ci return {}; 29fb726d48Sopenharmony_ci}); 30fb726d48Sopenharmony_ciconst intersectionObserverMock = () => ({ 31fb726d48Sopenharmony_ci observe: () => null, 32fb726d48Sopenharmony_ci}); 33fb726d48Sopenharmony_ciwindow.IntersectionObserver = jest.fn().mockImplementation(intersectionObserverMock); 34fb726d48Sopenharmony_ciwindow.ResizeObserver = 35fb726d48Sopenharmony_ci window.ResizeObserver || 36fb726d48Sopenharmony_ci jest.fn().mockImplementation(() => ({ 37fb726d48Sopenharmony_ci disconnect: jest.fn(), 38fb726d48Sopenharmony_ci observe: jest.fn(), 39fb726d48Sopenharmony_ci unobserve: jest.fn(), 40fb726d48Sopenharmony_ci })); 41fb726d48Sopenharmony_ci 42fb726d48Sopenharmony_ciconst sqlite = require('../../../../src/trace/database/sql/SqlLite.sql'); 43fb726d48Sopenharmony_cijest.mock('../../../../src/trace/database/sql/SqlLite.sql'); 44fb726d48Sopenharmony_ciconst processSqlite = require('../../../../src/trace/database/sql/ProcessThread.sql'); 45fb726d48Sopenharmony_cijest.mock('../../../../src/trace/database/sql/ProcessThread.sql'); 46fb726d48Sopenharmony_cidescribe('SpHiSysEnergyChart Test', () => { 47fb726d48Sopenharmony_ci let htmlElement: any = document.createElement('sp-system-trace'); 48fb726d48Sopenharmony_ci let spHiSysEnergyChart = new SpHiSysEnergyChart(htmlElement); 49fb726d48Sopenharmony_ci 50fb726d48Sopenharmony_ci let htmlDivElement = document.createElement<LitPopover>('div'); 51fb726d48Sopenharmony_ci htmlDivElement.setAttribute('id', 'appNameList'); 52fb726d48Sopenharmony_ci 53fb726d48Sopenharmony_ci let anomalyData = sqlite.queryAnomalyData; 54fb726d48Sopenharmony_ci anomalyData.mockResolvedValue([]); 55fb726d48Sopenharmony_ci 56fb726d48Sopenharmony_ci let maxStateValue = sqlite.queryMaxStateValue; 57fb726d48Sopenharmony_ci let max = [ 58fb726d48Sopenharmony_ci { 59fb726d48Sopenharmony_ci maxValue: 200, 60fb726d48Sopenharmony_ci type: 'state', 61fb726d48Sopenharmony_ci }, 62fb726d48Sopenharmony_ci { 63fb726d48Sopenharmony_ci maxValue: 300, 64fb726d48Sopenharmony_ci type: 'sensor', 65fb726d48Sopenharmony_ci }, 66fb726d48Sopenharmony_ci ]; 67fb726d48Sopenharmony_ci maxStateValue.mockResolvedValue(max); 68fb726d48Sopenharmony_ci 69fb726d48Sopenharmony_ci let stateInitData = sqlite.queryStateInitValue; 70fb726d48Sopenharmony_ci let stateInitInit = [{ 71fb726d48Sopenharmony_ci eventName: '', 72fb726d48Sopenharmony_ci keyName: '', 73fb726d48Sopenharmony_ci }]; 74fb726d48Sopenharmony_ci stateInitData.mockResolvedValue(stateInitInit); 75fb726d48Sopenharmony_ci 76fb726d48Sopenharmony_ci let MockExits = sqlite.queryEnergyEventExits; 77fb726d48Sopenharmony_ci MockExits.mockResolvedValue(['trace_hisys_event']); 78fb726d48Sopenharmony_ci let powerData = processSqlite.queryPowerData; 79fb726d48Sopenharmony_ci let power = [ 80fb726d48Sopenharmony_ci { 81fb726d48Sopenharmony_ci startNS: 5999127351, 82fb726d48Sopenharmony_ci eventName: 'POWER_IDE_AUDIO', 83fb726d48Sopenharmony_ci appKey: 'APPNAME', 84fb726d48Sopenharmony_ci eventValue: 'com.example.himusicdemo,com.example.himusicdemo_js,com.example.himusicdemo_app', 85fb726d48Sopenharmony_ci }, 86fb726d48Sopenharmony_ci { 87fb726d48Sopenharmony_ci startNS: 1291120516, 88fb726d48Sopenharmony_ci eventName: 'POWER_IDE_AUDIO', 89fb726d48Sopenharmony_ci appKey: 'BACKGROUND_ENERGY', 90fb726d48Sopenharmony_ci eventValue: '854,258,141', 91fb726d48Sopenharmony_ci }, 92fb726d48Sopenharmony_ci ]; 93fb726d48Sopenharmony_ci powerData.mockResolvedValue(power); 94fb726d48Sopenharmony_ci 95fb726d48Sopenharmony_ci let stateData = sqlite.queryStateData; 96fb726d48Sopenharmony_ci stateData.mockResolvedValue([]); 97fb726d48Sopenharmony_ci 98fb726d48Sopenharmony_ci let sysEventAppName = sqlite.queryEnergyAppName; 99fb726d48Sopenharmony_ci let appName = [ 100fb726d48Sopenharmony_ci { 101fb726d48Sopenharmony_ci string_value: 'app_name', 102fb726d48Sopenharmony_ci }, 103fb726d48Sopenharmony_ci ]; 104fb726d48Sopenharmony_ci sysEventAppName.mockResolvedValue(appName); 105fb726d48Sopenharmony_ci 106fb726d48Sopenharmony_ci 107fb726d48Sopenharmony_ci let querySystemLocationData = sqlite.querySystemLocationData; 108fb726d48Sopenharmony_ci let querySystemLockData = sqlite.querySystemLockData; 109fb726d48Sopenharmony_ci let querySystemSchedulerData = sqlite.querySystemSchedulerData; 110fb726d48Sopenharmony_ci let queryConfigSysEventAppName = sqlite.queryConfigEnergyAppName; 111fb726d48Sopenharmony_ci let location = [ 112fb726d48Sopenharmony_ci { 113fb726d48Sopenharmony_ci ts: 100652222, 114fb726d48Sopenharmony_ci eventName: 'GNSS_STATE', 115fb726d48Sopenharmony_ci appKey: 'TYPE', 116fb726d48Sopenharmony_ci Value: '1', 117fb726d48Sopenharmony_ci }, 118fb726d48Sopenharmony_ci { 119fb726d48Sopenharmony_ci ts: 3333332224, 120fb726d48Sopenharmony_ci eventName: 'GNSS_STATE', 121fb726d48Sopenharmony_ci appKey: 'TAG', 122fb726d48Sopenharmony_ci Value: '2', 123fb726d48Sopenharmony_ci }, 124fb726d48Sopenharmony_ci ]; 125fb726d48Sopenharmony_ci 126fb726d48Sopenharmony_ci let lock = [ 127fb726d48Sopenharmony_ci { 128fb726d48Sopenharmony_ci ts: 96555551, 129fb726d48Sopenharmony_ci eventName: 'POWER_RUNNINGLOCK', 130fb726d48Sopenharmony_ci appKey: 'TYPE', 131fb726d48Sopenharmony_ci Value: '1', 132fb726d48Sopenharmony_ci }, 133fb726d48Sopenharmony_ci { 134fb726d48Sopenharmony_ci ts: 333234222, 135fb726d48Sopenharmony_ci eventName: 'POWER_RUNNINGLOCK', 136fb726d48Sopenharmony_ci appKey: 'TAG', 137fb726d48Sopenharmony_ci Value: '2', 138fb726d48Sopenharmony_ci }, 139fb726d48Sopenharmony_ci ]; 140fb726d48Sopenharmony_ci 141fb726d48Sopenharmony_ci let work = [ 142fb726d48Sopenharmony_ci { 143fb726d48Sopenharmony_ci ts: 100593835619, 144fb726d48Sopenharmony_ci eventName: 'WORK_ADD', 145fb726d48Sopenharmony_ci appKey: 'TYPE', 146fb726d48Sopenharmony_ci Value: '1', 147fb726d48Sopenharmony_ci }, 148fb726d48Sopenharmony_ci { 149fb726d48Sopenharmony_ci ts: 2315652241, 150fb726d48Sopenharmony_ci eventName: 'WORK_STOP', 151fb726d48Sopenharmony_ci appKey: 'TAG', 152fb726d48Sopenharmony_ci Value: '2', 153fb726d48Sopenharmony_ci }, 154fb726d48Sopenharmony_ci ]; 155fb726d48Sopenharmony_ci 156fb726d48Sopenharmony_ci let process = [ 157fb726d48Sopenharmony_ci { 158fb726d48Sopenharmony_ci process_name: 'process1', 159fb726d48Sopenharmony_ci }, 160fb726d48Sopenharmony_ci ]; 161fb726d48Sopenharmony_ci querySystemLocationData.mockResolvedValue(location); 162fb726d48Sopenharmony_ci querySystemLockData.mockResolvedValue(lock); 163fb726d48Sopenharmony_ci querySystemSchedulerData.mockResolvedValue(work); 164fb726d48Sopenharmony_ci queryConfigSysEventAppName.mockResolvedValue(process); 165fb726d48Sopenharmony_ci 166fb726d48Sopenharmony_ci it('SpHiSysEnergyChartTest01', function () { 167fb726d48Sopenharmony_ci spHiSysEnergyChart.init(); 168fb726d48Sopenharmony_ci expect(SpHiSysEnergyChart.app_name).toBeUndefined(); 169fb726d48Sopenharmony_ci }); 170fb726d48Sopenharmony_ci 171fb726d48Sopenharmony_ci it('SpHiSysEnergyChartTest04', function () { 172fb726d48Sopenharmony_ci let result = [ 173fb726d48Sopenharmony_ci { 174fb726d48Sopenharmony_ci startNS: 33255112, 175fb726d48Sopenharmony_ci eventName: 'POWER_IDE_AUDIO', 176fb726d48Sopenharmony_ci appKey: 'APPNAME', 177fb726d48Sopenharmony_ci eventValue: 'com.example.himusicdemo,com.example.himusicdemo_js,com.example.himusicdemo_app', 178fb726d48Sopenharmony_ci }, 179fb726d48Sopenharmony_ci { 180fb726d48Sopenharmony_ci startNS: 5999127352, 181fb726d48Sopenharmony_ci eventName: 'POWER_IDE_AUDIO', 182fb726d48Sopenharmony_ci appKey: 'BACKGROUND_ENERGY', 183fb726d48Sopenharmony_ci eventValue: '854,258,141', 184fb726d48Sopenharmony_ci }, 185fb726d48Sopenharmony_ci { 186fb726d48Sopenharmony_ci startNS: 223224352, 187fb726d48Sopenharmony_ci eventName: 'POWER_IDE_BLUETOOTH', 188fb726d48Sopenharmony_ci appKey: 'APPNAME', 189fb726d48Sopenharmony_ci eventValue: 'com.ohos.settings,bt_switch,bt_switch_js,bt_switch_app', 190fb726d48Sopenharmony_ci }, 191fb726d48Sopenharmony_ci { 192fb726d48Sopenharmony_ci startNS: 86222222, 193fb726d48Sopenharmony_ci eventName: 'POWER_IDE_BLUETOOTH', 194fb726d48Sopenharmony_ci appKey: 'BACKGROUND_ENERGY', 195fb726d48Sopenharmony_ci eventValue: '76,12,43,431', 196fb726d48Sopenharmony_ci }, 197fb726d48Sopenharmony_ci { 198fb726d48Sopenharmony_ci startNS: 5999127382, 199fb726d48Sopenharmony_ci eventName: 'POWER_IDE_CAMERA', 200fb726d48Sopenharmony_ci appKey: 'APPNAME', 201fb726d48Sopenharmony_ci eventValue: 'com.ohos.camera,com.ohos.camera_app,com.ohos.camera_js,com.ohos.camera_ts', 202fb726d48Sopenharmony_ci }, 203fb726d48Sopenharmony_ci { 204fb726d48Sopenharmony_ci startNS: 264166822, 205fb726d48Sopenharmony_ci eventName: 'POWER_IDE_CAMERA', 206fb726d48Sopenharmony_ci appKey: 'BACKGROUND_ENERGY', 207fb726d48Sopenharmony_ci eventValue: '375,475,255,963', 208fb726d48Sopenharmony_ci }, 209fb726d48Sopenharmony_ci ]; 210fb726d48Sopenharmony_ci expect(spHiSysEnergyChart.getPowerData(result)).toBeTruthy(); 211fb726d48Sopenharmony_ci }); 212fb726d48Sopenharmony_ci 213fb726d48Sopenharmony_ci it('SpHiSysEnergyChartTest05', function () { 214fb726d48Sopenharmony_ci expect(spHiSysEnergyChart.getPowerData([])).toBeTruthy(); 215fb726d48Sopenharmony_ci }); 216fb726d48Sopenharmony_ci 217fb726d48Sopenharmony_ci it('SpHiSysEnergyChartTest06', function () { 218fb726d48Sopenharmony_ci expect(htmlDivElement.onclick).toBe(null); 219fb726d48Sopenharmony_ci }); 220fb726d48Sopenharmony_ci}); 221