This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
cyber-narrator-cn-ui/test/views/charts2/charts/networkOverview/NetworkOverviewLine.test.js

84 lines
5.9 KiB
JavaScript
Raw Normal View History

import NetworkOverviewLine from '@/views/charts2/charts/networkOverview/NetworkOverviewLine'
import { mount } from '@vue/test-utils'
import axios from 'axios'
const mockGet = {
data: { status: 200, code: 200, success: true, message: null, formatType: 'json', data: { resultType: 'object', result: [{ type: 'bytes', totalBitsRate: { values: [[1673247564, '96801019.52']], analysis: { avg: '112042808.24', max: '301842105.76', min: '52096324', p95: '168089003.35199997' } }, inboundBitsRate: { values: [[1673247564, '11814508.48']], analysis: { avg: '18587597.36', max: '137528138.88', min: '3181142.88', p95: '49561521.447999954' } }, outboundBitsRate: { values: [[1673247564, '84282965.52']], analysis: { avg: '87557861.44', max: '290402258', min: '45337684.48', p95: '121041718.81199999' } }, internalBitsRate: { values: [[1673247564, '9125.12']], analysis: { avg: '278114.32', max: '2215460.48', min: '0', p95: '923494.5719999998' } }, throughBitsRate: { values: [[1673247564, '694420.48']], analysis: { avg: '5619235.12', max: '42455480.24', min: '262607.76', p95: '13559588.195999999' } }, other: { values: [[1673247564, '0.00']], analysis: { avg: '0.01', max: '0.08', min: '0.00', p95: '0.08' } } }, { type: 'packets', totalPacketsRate: { values: [[1673247564, '12077.53']], analysis: { avg: '14062.37', max: '32840.42', min: '6564.17', p95: '20923.167999999987' } }, inboundPacketsRate: { values: [[1673247564, '3865.58']], analysis: { avg: '4241.61', max: '15460.03', min: '1918.22', p95: '8549.799999999997' } }, outboundPacketsRate: { values: [[1673247564, '8118.89']], analysis: { avg: '9170.98', max: '27134.58', min: '4510.25', p95: '13690.540999999996' } }, internalPacketsRate: { values: [[1673247564, '15.89']], analysis: { avg: '35.95', max: '276.47', min: '0.00', p95: '122.49749999999999' } }, throughPacketsRate: { values: [[1673247564, '77.17']], analysis: { avg: '613.82', max: '3768.56', min: '42.92', p95: '1279.757499999999' } }, other: { values: [[1673247564, '0.00']], analysis: { avg: '0', max: '0.01', min: '0.00', p95: '0.01' } } }, { type: 'sessions', totalSessionsRate: { values: [[1673247564, '29.92']], analysis: { avg: '29.89', max: '29.92', min: '29.67', p95: '29.92' } } }] }, msg: 'OK' }
}
2023-01-17 17:56:44 +08:00
const timeFilter = {
dateRangeValue: -1,
startTime: 1673244000000,
endTime: 1673247600000
}
const chart = { id: 1, name: 'network overview line', i18n: '', panelId: 1, pid: 0, type: 102, x: 0, y: 0, w: 19, h: 6, params: {}, cby: 1, ctime: '2022-07-06 16', uby: 1, utime: '2022-07-06 16', remark: '', state: 1, system: 0, buildIn: 0, uuser: { id: 1, name: null, username: 'admin', salt: null, lang: null, theme: null, lastLoginIp: null, lastLoginTime: null, ctime: null, cby: null, email: null, mobile: null, status: null, source: null, buildIn: null, roleIds: null, usergroupIds: null, roles: null, apiKeyId: null }, cuser: { id: 1, name: null, username: 'admin', salt: null, lang: null, theme: null, lastLoginIp: null, lastLoginTime: null, ctime: null, cby: null, email: null, mobile: null, status: null, source: null, buildIn: null, roleIds: null, usergroupIds: null, roles: null, apiKeyId: null }, children: [], parent: null, panel: { id: 1, name: 'Network Overview', i18n: null, type: null, params: null, cby: null, ctime: null, uby: null, utime: null, remark: null, state: null, buildIn: null, uuser: null, cuser: null }, i: 1, category: 'echarts', firstShow: false, moved: false }
2023-01-17 17:56:44 +08:00
describe('views/charts2/charts/networkOverview/NetworkOverviewLine.vue测试', () => {
test('Metric=Bits/s点击第三个tab', async () => {
require('vue-router').useRoute.mockReturnValue({ query: {} })
// 模拟axios返回数据
axios.get.mockResolvedValue(mockGet)
// 加载vue组件获得实例
const wrapper = mount(NetworkOverviewLine, {
propsData: {
2023-01-17 17:56:44 +08:00
timeFilter,
chart
}
})
const textNode0 = await wrapper.get('[test-id="tabContent0"]')
const textNode1 = await wrapper.get('[test-id="tabContent1"]')
const textNode2 = await wrapper.get('[test-id="tabContent2"]')
2023-01-11 15:50:04 +08:00
// 延迟等待渲染。使用wrapper.vm.$nextTick有时不管用例如组件中使用了setTimeout的时候
await new Promise(resolve => setTimeout(() => {
expect(textNode0.text()).toEqual('112.04Mbps')
expect(textNode1.text()).toEqual('18.59Mbps')
expect(textNode2.text()).toEqual('87.56Mbps')
resolve()
2023-01-11 15:50:04 +08:00
}, 200))
// 点击tab后是否切换高亮状态
const textNode3 = await wrapper.get('[test-id="tab2"]')
await textNode3.trigger('click')
expect(textNode3.classes()).toContain('is-active')
})
test('Metric=Packets/s', async () => {
require('vue-router').useRoute.mockReturnValue({ query: {} })
// 模拟axios返回数据
axios.get.mockResolvedValue(mockGet)
// 加载vue组件获得实例
const wrapper = mount(NetworkOverviewLine, {
propsData: {
2023-01-17 17:56:44 +08:00
timeFilter,
chart,
metric: 'Packets/s'
}
})
const textNode0 = await wrapper.get('[test-id="tabContent0"]')
const textNode1 = await wrapper.get('[test-id="tabContent1"]')
const textNode2 = await wrapper.get('[test-id="tabContent2"]')
await new Promise(resolve => setTimeout(() => {
expect(textNode0.text()).toEqual('14.06Kpackets/s')
expect(textNode1.text()).toEqual('4.24Kpackets/s')
expect(textNode2.text()).toEqual('9.17Kpackets/s')
resolve()
2023-01-11 15:50:04 +08:00
}, 200))
})
2023-01-17 17:56:44 +08:00
test('Metric=Sessions/s', async () => {
require('vue-router').useRoute.mockReturnValue({ query: {} })
// 模拟axios返回数据
axios.get.mockResolvedValue(mockGet)
// 加载vue组件获得实例
const wrapper = mount(NetworkOverviewLine, {
propsData: {
timeFilter,
chart,
metric: 'Sessions/s'
}
})
const textNode0 = await wrapper.get('[test-id="tabContent0"]')
await new Promise(resolve => setTimeout(() => {
expect(textNode0.text()).toEqual('29.89sessions/s')
resolve()
}, 200))
})
})