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 */ 15import { TabPaneHisysEvents } from '../../../../../../src/trace/component/trace/sheet/hisysevent/TabPaneHisysEvents'; 16 17jest.mock('../../../../../../src/trace/component/trace/base/TraceRow', () => { 18 return {}; 19}); 20const sqlite = require('../../../../../../src/trace/database/SqlLite'); 21jest.mock('../../../../../../src/trace/database/SqlLite'); 22window.ResizeObserver = 23 window.ResizeObserver || 24 jest.fn().mockImplementation(() => ({ 25 disconnect: jest.fn(), 26 observe: jest.fn(), 27 unobserve: jest.fn(), 28 })); 29 30describe('TabPaneHisysEvents Test', () => { 31 let hiSysEvent = sqlite.queryHiSysEventTabData; 32 let eventTabData = [ 33 { 34 id: 1, 35 domain: "domain", 36 eventName: "eventName", 37 eventType: "eventType", 38 tz: "", 39 pid: 567, 40 tid: 45, 41 uid: 98, 42 info: "", 43 level: "MINOR", 44 seq: 92803, 45 contents: "{'LEVEL':126}", 46 startTs: 2588, 47 dur: 2584, 48 depth: 0 49 }, 50 ]; 51 hiSysEvent.mockResolvedValue(eventTabData); 52 53 it('TabPaneHisysEvents01 ', function () { 54 let tabPaneHisysEvents = new TabPaneHisysEvents(); 55 let MockRealTime = sqlite.queryRealTime; 56 let Realtime = [{ 57 ts: 1000, 58 clock_name: '', 59 }]; 60 let tabData = { 61 hiSysEvents: [{ 62 id: 1, 63 domain: 'DISPLAY', 64 eventName: 'AMBIENT_LIGHT', 65 eventType: 2, 66 ts: 2797000000, 67 tz: '23925', 68 pid: 23925, 69 tid: 24086, 70 uid: 5523, 71 info: '', 72 level: 'MINOR', 73 seq: '92839', 74 contents: '{"LEVEL":126}', 75 dur: 0, 76 depth: 0, 77 }] 78 }; 79 MockRealTime.mockResolvedValue(Realtime); 80 tabPaneHisysEvents.data = tabData.hiSysEvents; 81 expect(tabPaneHisysEvents.data).toBeUndefined(); 82 }); 83 it('TabPaneHisysEvents02 ', function () { 84 let tabPaneHisysEvents = new TabPaneHisysEvents(); 85 const domainValue = 'DISPLAY'; 86 const tagElement = tabPaneHisysEvents.buildTag(domainValue); 87 expect(tagElement.className).toBe('tagElement'); 88 expect(tagElement.id).toBe(domainValue); 89 const tag = tagElement.querySelector('.tag'); 90 expect(tag.innerHTML).toBe(domainValue); 91 const closeButton = tagElement.querySelector('lit-icon'); 92 expect(closeButton.getAttribute('name')).toBe('close-light'); 93 expect(closeButton.style.color).toBe('rgb(255, 255, 255)'); 94 }); 95 it('TabPaneHisysEvents03', () => { 96 let tabPaneHisysEvents = new TabPaneHisysEvents(); 97 tabPaneHisysEvents.refreshEventsTitle = jest.fn(); 98 expect(tabPaneHisysEvents.updateData()).toBeUndefined(); 99 }); 100 it('TabPaneHisysEvents04', () => { 101 let tabPaneHisysEvents = new TabPaneHisysEvents(); 102 expect(tabPaneHisysEvents.filterData()).toBeTruthy(); 103 }); 104 it('TabPaneHisysEvents05', () => { 105 let tabPaneHisysEvents = new TabPaneHisysEvents(); 106 expect(tabPaneHisysEvents.updateDetail()).toBeUndefined(); 107 }); 108 it('TabPaneHisysEvents06', () => { 109 let tabPaneHisysEvents = new TabPaneHisysEvents(); 110 let hisysEventSource = [ 111 { key: 'A', sort: 1 }, 112 { key: 'B', sort: 2 }, 113 { key: 'C', sort: 3 }, 114 ] 115 let hiSysEventTable = { recycleDataSource: [] }; 116 tabPaneHisysEvents.sortByColumn.call({ hisysEventSource, hiSysEventTable }, { key: 'key', sort: 1, type: 'number' }); 117 expect(hisysEventSource).toEqual([ 118 { key: 'A', sort: 1 }, 119 { key: 'B', sort: 2 }, 120 { key: 'C', sort: 3 }, 121 ]); 122 expect(hiSysEventTable.recycleDataSource).toEqual([ 123 { key: 'A', sort: 1 }, 124 { key: 'B', sort: 2 }, 125 { key: 'C', sort: 3 }, 126 ]); 127 }); 128 it('TabPaneHisysEvents07', () => { 129 let tabPaneHisysEvents = new TabPaneHisysEvents(); 130 tabPaneHisysEvents.baseTime = ''; 131 tabPaneHisysEvents.currentDetailList = [{ 132 key: 'key', 133 value: 'value' 134 }]; 135 tabPaneHisysEvents.realTime = 0; 136 tabPaneHisysEvents.changeInput = document.createElement('input'); 137 tabPaneHisysEvents.detailsTbl = document.createElement('table'); 138 tabPaneHisysEvents.slicerTrack = document.createElement('div'); 139 tabPaneHisysEvents.boxDetails = document.createElement('div'); 140 tabPaneHisysEvents.detailbox = document.createElement('div'); 141 const data = { 142 contents: JSON.stringify({ 143 key1: 'value1', 144 key2: 'value2', 145 INPUT_TIME: '1234567890' 146 }) 147 }; 148 tabPaneHisysEvents.convertData(data); 149 expect(tabPaneHisysEvents.baseTime).toBe('1234567890000000'); 150 expect(tabPaneHisysEvents.changeInput.value).toBe('1234567890000000'); 151 expect(tabPaneHisysEvents.slicerTrack.style.visibility).toBe('visible'); 152 expect(tabPaneHisysEvents.detailsTbl.style.paddingLeft).toBe('20px'); 153 expect(tabPaneHisysEvents.boxDetails.style.width).toBe('65%'); 154 expect(tabPaneHisysEvents.detailbox.style.display).toBe('block'); 155 expect(tabPaneHisysEvents.detailsTbl.recycleDataSource).toEqual([ 156 { key: 'key', value: 'value' }, 157 { key: 'key1', value: 'value1' }, 158 { key: 'key2', value: 'value2' }, 159 { key: 'INPUT_TIME', value: '1234567890000000' } 160 ]); 161 }); 162 it('TabPaneHisysEvents08 ', function () { 163 let tabPaneHisysEvents = new TabPaneHisysEvents(); 164 let changeInput = { 165 value: '', 166 }; 167 let mockUpdateDetail = jest.fn(); 168 changeInput.value = 'abc'; 169 tabPaneHisysEvents.changeInputEvent.call({ changeInput: changeInput, updateDetail: mockUpdateDetail }); 170 expect(changeInput.value).toEqual('abc'); 171 }); 172}); 173