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