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/npm/localComponents/SingleValue.test.js

134 lines
5.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import SingleValue from '@/views/charts2/charts/npm/localComponents/SingleValue'
import { mount } from '@vue/test-utils'
const npmNetworkName = [
{ name: 'networkAppPerformance.tcpConnectionEstablishLatency' },
{ name: 'networkAppPerformance.httpResponse' },
{ name: 'networkAppPerformance.sslResponseLatency' },
{ name: 'networkAppPerformance.packetLoss' },
{ name: 'overall.packetRetrans' }
]
const npmNetworkData = [
{
"establishLatencyMsAvg": 90,
"establishLatencyMsP50": 49,
"establishLatencyMsP90": 91,
"establishLatencyMsP95": 164,
"establishLatencyMsP99": 727,
"value": -0.01098901098901099
},
{
"httpResponseLatencyAvg": 178,
"httpResponseLatencyP50": 57,
"httpResponseLatencyP90": 121,
"httpResponseLatencyP95": 256,
"httpResponseLatencyP99": 1616,
"value": 0.017142857142857144
},
{
"sslConLatencyAvg": 0,
"sslConLatencyP50": 0,
"sslConLatencyP90": 0,
"sslConLatencyP95": 0,
"sslConLatencyP99": 0,
"value": "-"
},
{
"tcpLostlenPercentAvg": 0.0088,
"tcpLostlenPercentP50": 0.0057,
"tcpLostlenPercentP90": 0.0184,
"tcpLostlenPercentP95": 0.0226,
"tcpLostlenPercentP99": 0.0397,
"value": 0.10000000000000005
},
{
"pktRetransPercentAvg": 0.0388,
"pktRetransPercentP50": 0.0341,
"pktRetransPercentP90": 0.0614,
"pktRetransPercentP95": 0.0691,
"pktRetransPercentP99": 0.0853,
"value": 0
}
]
describe('views/charts2/charts/npm/localComponents/SingleValue.vue测试', () => {
test('Npm概况信息服务质量图', async () => {
// 加载vue组件获得实例
const wrapper = mount(SingleValue, {
propsData: {
npmNetworkName,
npmNetworkData
}
})
// 延迟等待渲染。使用wrapper.vm.$nextTick有时不管用例如组件中使用了setTimeout的时候
await wrapper.vm.$nextTick(() => {
const textNode0 = wrapper.get('[test-id="singleValueContent0"]')
const textNode1 = wrapper.get('[test-id="singleValueContent1"]')
const textNode2 = wrapper.get('[test-id="singleValueContent2"]')
const textNode3 = wrapper.get('[test-id="singleValueContent3"]')
const textNode4 = wrapper.get('[test-id="singleValueContent4"]')
expect(textNode0.text()).toEqual('90 ms')
expect(textNode1.text()).toEqual('178 ms')
expect(textNode2.text()).toEqual('0 ms')
expect(textNode3.text()).toEqual('0.88 %')
expect(textNode4.text()).toEqual('3.88 %')
const trendIconNode0 = wrapper.get('[test-id="singleValueTrendIcon0"]')
const trendIconNode1 = wrapper.get('[test-id="singleValueTrendIcon1"]')
/*
* 当元素存在的时候find 和 get 是一样的;
* 当找不到元素的时候:
* (1) find 会返回 null, 不会报错case 通过
* (2) get 会报错case 失败
* 一般总是使用 get ,除非想要判断一些元素不存在的时候,使用 find
*/
const trendIconNode2 = wrapper.find('[test-id="singleValueTrendIcon2"]')
const trendIconNode3 = wrapper.get('[test-id="singleValueTrendIcon3"]')
const trendIconNode4 = wrapper.get('[test-id="singleValueTrendIcon4"]')
expect(trendIconNode0.classes()).toContain('cn-icon-decline')
expect(trendIconNode1.classes()).toContain('cn-icon-rise1')
expect(trendIconNode2 === null)
expect(trendIconNode3.classes()).toContain('cn-icon-rise1')
expect(trendIconNode4.classes()).toContain('cn-icon-constant')
const trendValueNode0 = wrapper.get('[test-id="singleValueTrendValue0"]')
const trendValueNode1 = wrapper.get('[test-id="singleValueTrendValue1"]')
const trendValueNode2 = wrapper.find('[test-id="singleValueTrendValue2"]')
const trendValueNode3 = wrapper.get('[test-id="singleValueTrendValue3"]')
const trendValueNode4 = wrapper.find('[test-id="singleValueTrendValue4"]')
expect(trendValueNode0.text()).toEqual('-1.10%')
expect(trendValueNode1.text()).toEqual('1.71%')
expect(trendValueNode2 === null)
expect(trendValueNode3.text()).toEqual('10.00%')
expect(trendValueNode4 === null)
const p95Node0 = wrapper.get('[test-id="singleValueP950"]')
const p95Node1 = wrapper.get('[test-id="singleValueP951"]')
const p95Node2 = wrapper.get('[test-id="singleValueP952"]')
const p95Node3 = wrapper.get('[test-id="singleValueP953"]')
const p95Node4 = wrapper.get('[test-id="singleValueP954"]')
expect(p95Node0.text()).toEqual('P95:164 ms')
expect(p95Node1.text()).toEqual('P95:256 ms')
expect(p95Node2.text()).toEqual('P95:0 ms')
expect(p95Node3.text()).toEqual('P95:2.26 %')
expect(p95Node4.text()).toEqual('P95:6.91 %')
const p99Node0 = wrapper.get('[test-id="singleValueP990"]')
const p99Node1 = wrapper.get('[test-id="singleValueP991"]')
const p99Node2 = wrapper.get('[test-id="singleValueP992"]')
const p99Node3 = wrapper.get('[test-id="singleValueP993"]')
const p99Node4 = wrapper.get('[test-id="singleValueP994"]')
expect(p99Node0.text()).toEqual('P99:727 ms')
expect(p99Node1.text()).toEqual('P99:1.62 s')
expect(p99Node2.text()).toEqual('P99:0 ms')
expect(p99Node3.text()).toEqual('P99:3.97 %')
expect(p99Node4.text()).toEqual('P99:8.53 %')
})
})
})