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