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/entityDetail/InformationAggregation.test.js
2023-08-25 11:43:46 +08:00

100 lines
3.8 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 InformationAggregation from '@/views/charts2/charts/entityDetail/tabs/InformationAggregation'
import { mount } from '@vue/test-utils'
import axios from 'axios'
import mockData from './mockData/InformationAggregation'
import ElementPlus from 'element-plus'
import common from '@/mixins/common'
import chartMixin from '@/views/charts2/chart-mixin'
let wrapper = null
const mockGet = mockData.common
const timeFilter = {
dateRangeValue: -1,
startTime: 1673244000000,
endTime: 1673247600000
}
const entity = {
entityType: 'ip',
entityName: '153.99.250.123'
}
/**
* 进行axios请求并挂载vue实例
* @param data
*/
function axiosPostAndMounted (data) {
require('vue-router').useRoute.mockReturnValue({ query: {} })
const _data = data || mockGet
// 模拟 axios 数据
axios.get.mockResolvedValue(_data)
// 加载vue组件获得实例
wrapper = mount(InformationAggregation, {
global: {
plugins: [ElementPlus]
},
propsData: {
entity,
timeFilter
},
mixins: [common, chartMixin]
})
}
describe('views/charts2/charts/entityDetail/tabs/InformationAggregation.vue测试', () => {
test('实体详情tabs-情报聚合:表格信息验证(情报内容列)', async () => {
axiosPostAndMounted()
// 延迟等待渲染。使用wrapper.vm.$nextTick有时不管用例如组件中使用了setTimeout的时候
await new Promise(resolve => setTimeout(async () => {
const textNode0 = await wrapper.find('[test-id="entity-tag0"]')
const textNode1 = await wrapper.find('[test-id="entity-tag1"]')
const textNode2 = await wrapper.find('[test-id="entity-tag2"]')
const textNode3 = await wrapper.find('[test-id="entity-tag3"]')
const textNode4 = await wrapper.find('[test-id="entity-tag4"]')
expect(textNode0.classes()).toContain('entity-tag--level-two-normal')
expect(textNode1.classes()).toContain('entity-tag--level-two-negative')
expect(textNode2.classes()).toContain('entity-tag--level-two-negative')
expect(textNode3.classes()).toContain('entity-tag--level-two-normal')
expect(textNode4.classes()).toContain('entity-tag--level-two-normal')
expect(textNode0.text()).toEqual('dba Omsoft')
expect(textNode1.text()).toEqual('IcedID')
expect(textNode2.text()).toEqual('i2p')
expect(textNode3.text()).toEqual('门户网站')
expect(textNode4.text()).toEqual('用户tag')
resolve()
}, 400))
})
test('实体详情tabs-情报聚合:表格信息验证(状态列)', async () => {
axiosPostAndMounted()
// 延迟等待渲染。使用wrapper.vm.$nextTick有时不管用例如组件中使用了setTimeout的时候
await new Promise(resolve => setTimeout(async () => {
const textNode0 = await wrapper.get('[test-id="entity-status0"]')
const textNode1 = await wrapper.get('[test-id="entity-status1"]')
const textNode2 = await wrapper.get('[test-id="entity-status2"]')
const textNode3 = await wrapper.get('[test-id="entity-status3"]')
const textNode4 = await wrapper.get('[test-id="entity-status4"]')
expect(textNode0.text()).toEqual('entity.detail.valid')
expect(textNode1.text()).toEqual('entity.detail.valid')
expect(textNode2.text()).toEqual('entity.detail.valid')
expect(textNode3.text()).toEqual('entity.detail.valid')
expect(textNode4.text()).toEqual('entity.detail.valid')
resolve()
}, 200))
})
test('实体详情tabs-安全事件:请求无数据', async () => {
axiosPostAndMounted(mockData.empty)
// 延迟等待渲染。使用wrapper.vm.$nextTick有时不管用例如组件中使用了setTimeout的时候
await new Promise(resolve => setTimeout(async () => {
const noData = wrapper.get('[test-id="no-data"]')
expect(noData.text()).toBe('npm.noData')
resolve()
}, 200))
})
})