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_ci jest.mock('../../../../src/trace/component/SpSystemTrace', () => { 17fb726d48Sopenharmony_ci return {}; 18fb726d48Sopenharmony_ci }); 19fb726d48Sopenharmony_ciimport { SpFreqChart } from '../../../../src/trace/component/chart/SpFreqChart'; 20fb726d48Sopenharmony_cijest.mock('../../../../src/js-heap/model/DatabaseStruct'); 21fb726d48Sopenharmony_ciconst sqlit = require('../../../../src/trace/database/sql/Cpu.sql'); 22fb726d48Sopenharmony_cijest.mock('../../../../src/trace/database/sql/Cpu.sql'); 23fb726d48Sopenharmony_ci const intersectionObserverMock = () => ({ 24fb726d48Sopenharmony_ci observe: () => null, 25fb726d48Sopenharmony_ci }); 26fb726d48Sopenharmony_ci window.IntersectionObserver = jest.fn().mockImplementation(intersectionObserverMock); 27fb726d48Sopenharmony_ci window.ResizeObserver = window.ResizeObserver || 28fb726d48Sopenharmony_ci jest.fn().mockImplementation(() => ({ 29fb726d48Sopenharmony_ci disconnect: jest.fn(), 30fb726d48Sopenharmony_ci observe: jest.fn(), 31fb726d48Sopenharmony_ci unobserve: jest.fn(), 32fb726d48Sopenharmony_ci })); 33fb726d48Sopenharmony_cidescribe('spFpsChart Test', () => { 34fb726d48Sopenharmony_ci let htmlElement: any = document.createElement('sp-system-trace'); 35fb726d48Sopenharmony_ci let spFpsChart = new SpFreqChart(htmlElement); 36fb726d48Sopenharmony_ci 37fb726d48Sopenharmony_ci let mockGetCpuLimitFreq = sqlit.getCpuLimitFreq; 38fb726d48Sopenharmony_ci mockGetCpuLimitFreq.mockResolvedValue([ 39fb726d48Sopenharmony_ci { 40fb726d48Sopenharmony_ci startNs: 1000, 41fb726d48Sopenharmony_ci max: 100, 42fb726d48Sopenharmony_ci min: 20, 43fb726d48Sopenharmony_ci cpu: 0, 44fb726d48Sopenharmony_ci }, 45fb726d48Sopenharmony_ci { 46fb726d48Sopenharmony_ci startNs: 2000, 47fb726d48Sopenharmony_ci max: 300, 48fb726d48Sopenharmony_ci min: 100, 49fb726d48Sopenharmony_ci cpu: 1, 50fb726d48Sopenharmony_ci }, 51fb726d48Sopenharmony_ci ]); 52fb726d48Sopenharmony_ci 53fb726d48Sopenharmony_ci let mockCpuLimitFreqId = sqlit.getCpuLimitFreqId; 54fb726d48Sopenharmony_ci mockCpuLimitFreqId.mockResolvedValue([ 55fb726d48Sopenharmony_ci { 56fb726d48Sopenharmony_ci cpu: 0, 57fb726d48Sopenharmony_ci maxFilterId: 2, 58fb726d48Sopenharmony_ci minFilterId: 1, 59fb726d48Sopenharmony_ci }, 60fb726d48Sopenharmony_ci { 61fb726d48Sopenharmony_ci cpu: 1, 62fb726d48Sopenharmony_ci maxFilterId: 2, 63fb726d48Sopenharmony_ci minFilterId: 1, 64fb726d48Sopenharmony_ci }, 65fb726d48Sopenharmony_ci ]); 66fb726d48Sopenharmony_ci 67fb726d48Sopenharmony_ci let mockCpuFreqData = sqlit.queryCpuFreqData; 68fb726d48Sopenharmony_ci mockCpuFreqData.mockResolvedValue([ 69fb726d48Sopenharmony_ci { 70fb726d48Sopenharmony_ci cpu: 0, 71fb726d48Sopenharmony_ci value: 100, 72fb726d48Sopenharmony_ci startNS: 2000, 73fb726d48Sopenharmony_ci }, 74fb726d48Sopenharmony_ci { 75fb726d48Sopenharmony_ci cpu: 1, 76fb726d48Sopenharmony_ci value: 100, 77fb726d48Sopenharmony_ci startNS: 3000, 78fb726d48Sopenharmony_ci }, 79fb726d48Sopenharmony_ci ]); 80fb726d48Sopenharmony_ci 81fb726d48Sopenharmony_ci let mockCpuState = sqlit.queryCpuState; 82fb726d48Sopenharmony_ci mockCpuState.mockResolvedValue([ 83fb726d48Sopenharmony_ci { 84fb726d48Sopenharmony_ci startTs: 1000, 85fb726d48Sopenharmony_ci value: 100, 86fb726d48Sopenharmony_ci }, 87fb726d48Sopenharmony_ci { 88fb726d48Sopenharmony_ci startTs: 2000, 89fb726d48Sopenharmony_ci value: 10, 90fb726d48Sopenharmony_ci }, 91fb726d48Sopenharmony_ci ]); 92fb726d48Sopenharmony_ci 93fb726d48Sopenharmony_ci let queryCpuFreqMock = sqlit.queryCpuFreq; 94fb726d48Sopenharmony_ci queryCpuFreqMock.mockResolvedValue([ 95fb726d48Sopenharmony_ci { 96fb726d48Sopenharmony_ci cpu: 0, 97fb726d48Sopenharmony_ci filterId: 1, 98fb726d48Sopenharmony_ci }, 99fb726d48Sopenharmony_ci { 100fb726d48Sopenharmony_ci cpu: 1, 101fb726d48Sopenharmony_ci filterId: 2, 102fb726d48Sopenharmony_ci }, 103fb726d48Sopenharmony_ci ]); 104fb726d48Sopenharmony_ci 105fb726d48Sopenharmony_ci let queryCpuStateFilter = sqlit.queryCpuStateFilter; 106fb726d48Sopenharmony_ci queryCpuStateFilter.mockResolvedValue([ 107fb726d48Sopenharmony_ci { 108fb726d48Sopenharmony_ci cpu: 0, 109fb726d48Sopenharmony_ci filterId: 1, 110fb726d48Sopenharmony_ci }, 111fb726d48Sopenharmony_ci { 112fb726d48Sopenharmony_ci cpu: 1, 113fb726d48Sopenharmony_ci filterId: 2, 114fb726d48Sopenharmony_ci }, 115fb726d48Sopenharmony_ci ]); 116fb726d48Sopenharmony_ci 117fb726d48Sopenharmony_ci let queryCpuMaxFreqMock = sqlit.queryCpuMaxFreq; 118fb726d48Sopenharmony_ci queryCpuMaxFreqMock.mockResolvedValue([{ maxFreq: 100 }]); 119fb726d48Sopenharmony_ci 120fb726d48Sopenharmony_ci let MockgetCpuLimitFreqId = sqlit.getCpuLimitFreqId; 121fb726d48Sopenharmony_ci MockgetCpuLimitFreqId.mockResolvedValue([{ cpu: 1, maxFilterId: 9, minFilterId: 1 }]); 122fb726d48Sopenharmony_ci 123fb726d48Sopenharmony_ci let MockgetCpuLimitFreqMax = sqlit.getCpuLimitFreqMax; 124fb726d48Sopenharmony_ci MockgetCpuLimitFreqMax.mockResolvedValue([{ maxValue: 100, filterId: 9 }]); 125fb726d48Sopenharmony_ci 126fb726d48Sopenharmony_ci let MockgetCpuCount = sqlit.queryCpuCount; 127fb726d48Sopenharmony_ci MockgetCpuCount.mockResolvedValue([{ maxCount: 100, filterId: 9 }]); 128fb726d48Sopenharmony_ci it('spFpsChart01', function () { 129fb726d48Sopenharmony_ci expect(spFpsChart.init()).toBeDefined(); 130fb726d48Sopenharmony_ci }); 131fb726d48Sopenharmony_ci}); 132