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