1/*
2 * Copyright (C) 2022 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16jest.mock('../../../../src/trace/component/SpSystemTrace', () => {
17  return {};
18});
19import { SpAbilityMonitorChart } from '../../../../src/trace/component/chart/SpAbilityMonitorChart';
20import '../../../../src/trace/component/chart/SpAbilityMonitorChart';
21const sqlit = require('../../../../src/trace/database/sql/Ability.sql');
22jest.mock('../../../../src/trace/database/sql/Ability.sql');
23const MemorySqlite = require('../../../../src/trace/database/sql/Memory.sql');
24jest.mock('../../../../src/trace/database/sql/Memory.sql');
25const sqlite = require('../../../../src/trace/database/sql/SqlLite.sql');
26jest.mock('../../../../src/trace/database/sql/SqlLite.sql');
27jest.mock('../../../../src/trace/component/chart/SpNativeMemoryChart', () => {
28  return {};
29});
30const intersectionObserverMock = () => ({
31  observe: () => null,
32});
33jest.mock('../../../../src/js-heap/model/DatabaseStruct');
34jest.mock('../../../../src/trace/component/trace/base/TraceSheet', () => {
35  return true;
36});
37window.IntersectionObserver = jest.fn().mockImplementation(intersectionObserverMock);
38// @ts-ignore
39window.ResizeObserver = window.ResizeObserver ||
40  jest.fn().mockImplementation(() => ({
41    observe: jest.fn(),
42    unobserve: jest.fn(),
43    disconnect: jest.fn(),
44  }));
45describe('SpAbilityMonitorChart Test', () => {
46  let MockqueryAbilityExits = sqlit.queryAbilityExits;
47  MockqueryAbilityExits.mockResolvedValue([
48    {
49      event_name: 'trace_cpu_usage',
50      stat_type: 'received',
51      count: 1,
52    },
53    {
54      event_name: 'sys_memory',
55      stat_type: 'received',
56      count: 1,
57    },
58    {
59      event_name: 'trace_diskio',
60      stat_type: 'received',
61      count: 1,
62    },
63    {
64      event_name: 'trace_diskio',
65      stat_type: 'received',
66      count: 1,
67    },
68  ]);
69  let cpudata = sqlit.queryCPuAbilityMaxData;
70  cpudata.mockResolvedValue([
71    {
72      totalLoad: 1,
73      userLoad: 1,
74      systemLoad: 1,
75    },
76  ]);
77  let memorydata = MemorySqlite.queryMemoryMaxData;
78  memorydata.mockResolvedValue([
79    {
80      maxValue: 1,
81      filter_id: 1,
82    },
83  ]);
84  let queryDiskIo = sqlite.queryDiskIoMaxData;
85  queryDiskIo.mockResolvedValue([
86    {
87      bytesRead: 1,
88      bytesWrite: 1,
89      readOps: 1,
90      writeOps: 1,
91    },
92  ]);
93
94  let netWorkDiskIo = sqlite.queryNetWorkMaxData;
95  netWorkDiskIo.mockResolvedValue([
96    {
97      maxIn: 1,
98      maxOut: 1,
99      maxPacketIn: 1,
100      maxPacketOut: 1,
101    },
102  ]);
103  let queryDmaAbilityData = sqlit.queryDmaAbilityData;
104  queryDmaAbilityData.mockResolvedValue([
105    {
106      startNs: 1,
107      value: 1,
108      flag: 1,
109      ipid: 1,
110      expTaskComm: '',
111    },
112  ]);
113  let queryGpuMemoryAbilityData = sqlit.queryGpuMemoryAbilityData;
114  queryGpuMemoryAbilityData.mockResolvedValue([
115    {
116      startNs: 1,
117      value: 1,
118    },
119  ]);
120  let queryPurgeableSysData = sqlit.queryPurgeableSysData;
121  queryPurgeableSysData.mockResolvedValue([
122    {
123      startNs: 1,
124      value: 1,
125    },
126  ]);
127
128  let purgeableSysData = sqlit.queryPurgeableSysData;
129  purgeableSysData.mockResolvedValue([
130    {
131      name: 'test',
132      startNs: 15255,
133      value: 0,
134    },
135  ]);
136
137  let dmaAbilityData = sqlit.queryDmaAbilityData;
138  dmaAbilityData.mockResolvedValue([
139    {
140      startNs: 15255,
141      value: 2,
142      expTaskComm: 'allocator_host',
143      flag: 0,
144      name: 'test',
145    },
146  ]);
147
148  let gpuMemoryAbilityData = sqlit.queryGpuMemoryAbilityData;
149  gpuMemoryAbilityData.mockResolvedValue([
150    {
151      name: 'test',
152      startNs: 15255,
153      value: 0,
154    },
155  ]);
156  it('SpAbilityMonitorChart01', function () {
157    let htmlElement: any = document.createElement('sp-system-trace');
158    let spAbilityMonitor = new SpAbilityMonitorChart(htmlElement);
159    spAbilityMonitor.init();
160    expect(spAbilityMonitor).toBeDefined();
161  });
162});
163