mirror of https://github.com/apache/cloudstack.git
ui: Fix failing UI unit test main branch (#5262)
* fix test unit & error lint main branch * hidden warning log * hidden warning log & remove comment * fix test fail * fix test sort params * fix test fail * fix test fail * Remove redundant comments
This commit is contained in:
parent
5b20e6f2a8
commit
450de92e6c
|
|
@ -43,8 +43,8 @@ function createMockI18n (locale = 'en', messages = {}) {
|
|||
return mockI18n.mock(locale, messages)
|
||||
}
|
||||
|
||||
function createMockStore (state = {}, actions = {}) {
|
||||
return mockStore.mock(state, actions)
|
||||
function createMockStore (state = {}, actions = {}, mutation = {}) {
|
||||
return mockStore.mock(state, actions, mutation)
|
||||
}
|
||||
|
||||
function decodeHtml (html) {
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ import Vuex from 'vuex'
|
|||
|
||||
const mockStore = {
|
||||
state: {},
|
||||
mock: (state, actions) => {
|
||||
mock: (state, actions, mutations) => {
|
||||
mockStore.state = {
|
||||
app: {
|
||||
device: 'desktop'
|
||||
|
|
@ -27,11 +27,16 @@ const mockStore = {
|
|||
user: {},
|
||||
permission: {}
|
||||
}
|
||||
mockStore.mutations = {}
|
||||
|
||||
if (state && Object.keys(state).length > 0) {
|
||||
mockStore.state = { ...mockStore.state, ...state }
|
||||
}
|
||||
|
||||
if (mutations && Object.keys(mutations).length > 0) {
|
||||
mockStore.mutations = { ...mockStore.mutations, ...mutations }
|
||||
}
|
||||
|
||||
if (!actions) {
|
||||
actions = {}
|
||||
}
|
||||
|
|
@ -40,9 +45,11 @@ const mockStore = {
|
|||
state: mockStore.state,
|
||||
getters: {
|
||||
apis: () => mockStore.state.user.apis,
|
||||
userInfo: () => mockStore.state.user.info
|
||||
userInfo: () => mockStore.state.user.info,
|
||||
headerNotices: () => mockStore.state.user.headerNotices
|
||||
},
|
||||
actions
|
||||
actions,
|
||||
mutations
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,7 +34,26 @@
|
|||
"label.view.console": "view-console-en",
|
||||
"error.fetching.async.job.result": "Error encountered while fetching async job result",
|
||||
"label.cancel": "cancel",
|
||||
"label.ok": "ok"
|
||||
"label.ok": "ok",
|
||||
"label.close": "close",
|
||||
"label.success": "close",
|
||||
"state.failed": "state.failed",
|
||||
"state.inprogress": "state.inprogress",
|
||||
"label.state": "label.state",
|
||||
"label.hostname": "label.hostname",
|
||||
"label.hostid": "label.hostid",
|
||||
"label.zonename": "label.zonename",
|
||||
"label.zone": "label.zone",
|
||||
"label.zoneid": "label.zoneid",
|
||||
"label.ip": "label.ip",
|
||||
"label.ipaddress": "label.ipaddress",
|
||||
"label.privateip": "label.privateip",
|
||||
"label.linklocalip": "label.linklocalip",
|
||||
"label.size": "label.size",
|
||||
"label.sizegb": "label.sizegb",
|
||||
"label.current": "label.current",
|
||||
"label.created": "label.created",
|
||||
"label.order": "label.order"
|
||||
},
|
||||
"de": {
|
||||
"labelname": "test-name-de",
|
||||
|
|
@ -70,7 +89,26 @@
|
|||
"label.view.console": "view-console-de",
|
||||
"error.fetching.async.job.result": "Error encountered while fetching async job result",
|
||||
"label.cancel": "cancel",
|
||||
"label.ok": "ok"
|
||||
"label.ok": "ok",
|
||||
"label.close": "close",
|
||||
"label.success": "close",
|
||||
"state.failed": "state.failed",
|
||||
"state.inprogress": "state.inprogress",
|
||||
"label.state": "label.state",
|
||||
"label.hostname": "label.hostname",
|
||||
"label.hostid": "label.hostid",
|
||||
"label.zonename": "label.zonename",
|
||||
"label.zone": "label.zone",
|
||||
"label.zoneid": "label.zoneid",
|
||||
"label.ip": "label.ip",
|
||||
"label.ipaddress": "label.ipaddress",
|
||||
"label.privateip": "label.privateip",
|
||||
"label.linklocalip": "label.linklocalip",
|
||||
"label.size": "label.size",
|
||||
"label.sizegb": "label.sizegb",
|
||||
"label.current": "label.current",
|
||||
"label.created": "label.created",
|
||||
"label.order": "label.order"
|
||||
}
|
||||
},
|
||||
"apis": {
|
||||
|
|
@ -157,6 +195,56 @@
|
|||
],
|
||||
"response": []
|
||||
},
|
||||
"testApiNameCase7": {
|
||||
"params": [
|
||||
{
|
||||
"name": "column2",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "column1",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "column3",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "id",
|
||||
"type": "string"
|
||||
}
|
||||
],
|
||||
"response": []
|
||||
},
|
||||
"testApiNameCase8": {
|
||||
"params": [
|
||||
{
|
||||
"name": "column2",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "column1",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "column3",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "id",
|
||||
"type": "string"
|
||||
}
|
||||
],
|
||||
"response": []
|
||||
},
|
||||
"listTemplates": {
|
||||
"params": {},
|
||||
"response": []
|
||||
|
|
@ -194,5 +282,7 @@
|
|||
"roletype": "Normal",
|
||||
"account": "test-account",
|
||||
"domainid": "test-domain-id"
|
||||
}
|
||||
},
|
||||
"headerNotices": [],
|
||||
"asyncJobIds": []
|
||||
}
|
||||
|
|
@ -8,7 +8,28 @@
|
|||
"select": "select-en",
|
||||
"ok": "ok-en",
|
||||
"message.load.host.failed": "Failed to load hosts",
|
||||
"message.migrating.vm.to.host.failed": "Failed to migrate VM to host"
|
||||
"message.migrating.vm.to.host.failed": "Failed to migrate VM to host",
|
||||
"label.name": "label.name",
|
||||
"label.suitability": "label.suitability",
|
||||
"label.cpuused": "label.cpuused",
|
||||
"label.memoryallocated": "label.memoryallocated",
|
||||
"label.memused": "label.memused",
|
||||
"label.cluster": "label.cluster",
|
||||
"label.pod": "label.pod",
|
||||
"label.storage.migration.required": "label.storage.migration.required",
|
||||
"label.select": "label.select",
|
||||
"label.search": "label.search",
|
||||
"label.ok": "label.ok",
|
||||
"label.total": "label.total",
|
||||
"label.items": "label.items",
|
||||
"label.page": "label.page",
|
||||
"label.no": "label.no",
|
||||
"label.migrating": "label.migrating",
|
||||
"message.request.failed": "message.request.failed",
|
||||
"message.success.migrating": "message.success.migrating",
|
||||
"message.migrating.processing": "message.migrating.processing",
|
||||
"message.migrating.failed": "message.migrating.failed",
|
||||
"error.fetching.async.job.result": "error.fetching.async.job.result"
|
||||
},
|
||||
"de": {
|
||||
"name": "name-de",
|
||||
|
|
@ -18,7 +39,28 @@
|
|||
"select": "select-de",
|
||||
"ok": "ok-de",
|
||||
"message.load.host.failed": "Failed to load hosts",
|
||||
"message.migrating.vm.to.host.failed": "Failed to migrate VM to host"
|
||||
"message.migrating.vm.to.host.failed": "Failed to migrate VM to host",
|
||||
"label.name": "label.name",
|
||||
"label.suitability": "label.suitability",
|
||||
"label.cpuused": "label.cpuused",
|
||||
"label.memoryallocated": "label.memoryallocated",
|
||||
"label.memused": "label.memused",
|
||||
"label.cluster": "label.cluster",
|
||||
"label.pod": "label.pod",
|
||||
"label.storage.migration.required": "label.storage.migration.required",
|
||||
"label.select": "label.select",
|
||||
"label.search": "label.search",
|
||||
"label.ok": "label.ok",
|
||||
"label.total": "label.total",
|
||||
"label.items": "label.items",
|
||||
"label.page": "label.page",
|
||||
"label.no": "label.no",
|
||||
"label.migrating": "label.migrating",
|
||||
"message.request.failed": "message.request.failed",
|
||||
"message.success.migrating": "message.success.migrating",
|
||||
"message.migrating.processing": "message.migrating.processing",
|
||||
"message.migrating.failed": "message.migrating.failed",
|
||||
"error.fetching.async.job.result": "error.fetching.async.job.result"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -29,13 +29,20 @@ let router, store, i18n, mocks
|
|||
const state = {
|
||||
user: {
|
||||
apis: mockData.apis,
|
||||
info: mockData.info
|
||||
info: mockData.info,
|
||||
headerNotices: mockData.headerNotices,
|
||||
asyncJobIds: mockData.asyncJobIds
|
||||
}
|
||||
}
|
||||
|
||||
store = common.createMockStore(state)
|
||||
i18n = common.createMockI18n('en', mockData.messages)
|
||||
const mutations = {
|
||||
SET_HEADER_NOTICES: (state, jobsJsonArray) => {
|
||||
state.user.headerNotices = jobsJsonArray
|
||||
}
|
||||
}
|
||||
|
||||
store = common.createMockStore(state, {}, mutations)
|
||||
i18n = common.createMockI18n('en', mockData.messages)
|
||||
const spyConsole = {
|
||||
log: null,
|
||||
warn: null
|
||||
|
|
@ -748,6 +755,11 @@ describe('Views > AutogenView.vue', () => {
|
|||
})
|
||||
|
||||
it('check $notifyError is called when api is called with throw error', (done) => {
|
||||
const errorMock = {
|
||||
response: {},
|
||||
message: 'Error: throw exception error'
|
||||
}
|
||||
mockAxios.mockRejectedValue(errorMock)
|
||||
router = common.createMockRouter([{
|
||||
name: 'testRouter22',
|
||||
path: '/test-router-22',
|
||||
|
|
@ -758,13 +770,7 @@ describe('Views > AutogenView.vue', () => {
|
|||
}])
|
||||
|
||||
wrapper = factory({ router: router })
|
||||
|
||||
const errorMock = {
|
||||
response: {},
|
||||
message: 'Error: throw exception error'
|
||||
}
|
||||
router.push({ name: 'testRouter22' })
|
||||
mockAxios.mockRejectedValue(errorMock)
|
||||
|
||||
setTimeout(() => {
|
||||
expect(mocks.$notifyError).toHaveBeenCalledTimes(1)
|
||||
|
|
@ -774,6 +780,13 @@ describe('Views > AutogenView.vue', () => {
|
|||
})
|
||||
|
||||
it('check $notifyError is called and router path = /exception/404 when api is called with throw error', (done) => {
|
||||
const errorMock = {
|
||||
response: {
|
||||
status: 430
|
||||
},
|
||||
message: 'Error: Request Header Fields Too Large'
|
||||
}
|
||||
mockAxios.mockRejectedValue(errorMock)
|
||||
router = common.createMockRouter([{
|
||||
name: 'testRouter23',
|
||||
path: '/test-router-23',
|
||||
|
|
@ -784,15 +797,7 @@ describe('Views > AutogenView.vue', () => {
|
|||
}])
|
||||
|
||||
wrapper = factory({ router: router })
|
||||
|
||||
const errorMock = {
|
||||
response: {
|
||||
status: 430
|
||||
},
|
||||
message: 'Error: Request Header Fields Too Large'
|
||||
}
|
||||
router.push({ name: 'testRouter23' })
|
||||
mockAxios.mockRejectedValue(errorMock)
|
||||
|
||||
setTimeout(() => {
|
||||
expect(mocks.$notifyError).toHaveBeenCalledTimes(1)
|
||||
|
|
@ -804,6 +809,13 @@ describe('Views > AutogenView.vue', () => {
|
|||
})
|
||||
|
||||
it('check $notifyError is called and router path = /exception/500 when api is called with throw error', (done) => {
|
||||
const errorMock = {
|
||||
response: {
|
||||
status: 530
|
||||
},
|
||||
message: 'Error: Site is frozen'
|
||||
}
|
||||
mockAxios.mockRejectedValue(errorMock)
|
||||
router = common.createMockRouter([{
|
||||
name: 'testRouter23',
|
||||
path: '/test-router-23',
|
||||
|
|
@ -814,15 +826,7 @@ describe('Views > AutogenView.vue', () => {
|
|||
}])
|
||||
|
||||
wrapper = factory({ router: router })
|
||||
|
||||
const errorMock = {
|
||||
response: {
|
||||
status: 530
|
||||
},
|
||||
message: 'Error: Site is frozen'
|
||||
}
|
||||
router.push({ name: 'testRouter23' })
|
||||
mockAxios.mockRejectedValue(errorMock)
|
||||
|
||||
setTimeout(() => {
|
||||
expect(mocks.$notifyError).toHaveBeenCalledTimes(1)
|
||||
|
|
@ -1068,74 +1072,64 @@ describe('Views > AutogenView.vue', () => {
|
|||
|
||||
it('check currentAction params and paramsField when execAction() is called', () => {
|
||||
wrapper = factory()
|
||||
|
||||
wrapper.vm.$nextTick(() => {
|
||||
wrapper.vm.execAction({
|
||||
api: 'testApiNameCase5'
|
||||
})
|
||||
|
||||
expect(wrapper.vm.currentAction.params).toEqual([
|
||||
{ name: 'column1', type: 'string' },
|
||||
{ name: 'column2', type: 'string' },
|
||||
{ name: 'column3', type: 'string' },
|
||||
{ name: 'name', type: 'string' },
|
||||
{ name: 'id', type: 'string' }
|
||||
])
|
||||
expect(wrapper.vm.currentAction.paramFields).toEqual([])
|
||||
expect(wrapper.vm.showAction).toBeTruthy()
|
||||
wrapper.vm.$nextTick()
|
||||
wrapper.vm.execAction({
|
||||
api: 'testApiNameCase5'
|
||||
})
|
||||
expect(wrapper.vm.currentAction.params).toEqual([
|
||||
{ name: 'column1', type: 'string' },
|
||||
{ name: 'column2', type: 'string' },
|
||||
{ name: 'column3', type: 'string' },
|
||||
{ name: 'name', type: 'string' },
|
||||
{ name: 'id', type: 'string' }
|
||||
])
|
||||
expect(wrapper.vm.currentAction.paramFields).toEqual([])
|
||||
expect(wrapper.vm.showAction).toBeTruthy()
|
||||
})
|
||||
|
||||
it('check currentAction params and paramsField when execAction() is called with args is exists', () => {
|
||||
wrapper = factory()
|
||||
|
||||
wrapper.vm.$nextTick(() => {
|
||||
wrapper.vm.execAction({
|
||||
api: 'testApiNameCase5',
|
||||
args: ['column1', 'column2', 'column3']
|
||||
})
|
||||
|
||||
expect(wrapper.vm.currentAction.params).toEqual([
|
||||
{ name: 'column1', type: 'string' },
|
||||
{ name: 'column2', type: 'string' },
|
||||
{ name: 'column3', type: 'string' },
|
||||
{ name: 'name', type: 'string' },
|
||||
{ name: 'id', type: 'string' }
|
||||
])
|
||||
expect(wrapper.vm.currentAction.paramFields).toEqual([
|
||||
{ name: 'column1', type: 'string' },
|
||||
{ name: 'column2', type: 'string' },
|
||||
{ name: 'column3', type: 'string' }
|
||||
])
|
||||
expect(wrapper.vm.showAction).toBeTruthy()
|
||||
wrapper.vm.execAction({
|
||||
api: 'testApiNameCase7',
|
||||
args: ['column1', 'column2', 'column3']
|
||||
})
|
||||
expect(wrapper.vm.currentAction.params).toEqual([
|
||||
{ name: 'column1', type: 'string' },
|
||||
{ name: 'column2', type: 'string' },
|
||||
{ name: 'column3', type: 'string' },
|
||||
{ name: 'name', type: 'string' },
|
||||
{ name: 'id', type: 'string' }
|
||||
])
|
||||
expect(wrapper.vm.currentAction.paramFields).toEqual([
|
||||
{ name: 'column1', type: 'string' },
|
||||
{ name: 'column2', type: 'string' },
|
||||
{ name: 'column3', type: 'string' }
|
||||
])
|
||||
expect(wrapper.vm.showAction).toBeTruthy()
|
||||
})
|
||||
|
||||
it('check currentAction params and paramsField when execAction() is called with args is function', () => {
|
||||
wrapper = factory()
|
||||
|
||||
wrapper.vm.$nextTick(() => {
|
||||
wrapper.vm.execAction({
|
||||
api: 'testApiNameCase5',
|
||||
resource: { id: 'test-id-value', name: 'test-name-value' },
|
||||
args: (record, store) => {
|
||||
return ['Admin'].includes(store.userInfo.roletype) ? ['column1', 'column2', 'column3'] : ['id', 'name']
|
||||
}
|
||||
})
|
||||
|
||||
expect(wrapper.vm.currentAction.params).toEqual([
|
||||
{ name: 'column1', type: 'string' },
|
||||
{ name: 'column2', type: 'string' },
|
||||
{ name: 'column3', type: 'string' },
|
||||
{ name: 'name', type: 'string' },
|
||||
{ name: 'id', type: 'string' }
|
||||
])
|
||||
expect(wrapper.vm.currentAction.paramFields).toEqual([
|
||||
{ name: 'id', type: 'string' },
|
||||
{ name: 'name', type: 'string' }
|
||||
])
|
||||
expect(wrapper.vm.showAction).toBeTruthy()
|
||||
wrapper.vm.$nextTick()
|
||||
wrapper.vm.execAction({
|
||||
api: 'testApiNameCase8',
|
||||
resource: { id: 'test-id-value', name: 'test-name-value' },
|
||||
args: (record, store) => {
|
||||
return ['Admin'].includes(store.userInfo.roletype) ? ['column1', 'column2', 'column3'] : ['id', 'name']
|
||||
}
|
||||
})
|
||||
expect(wrapper.vm.currentAction.params).toEqual([
|
||||
{ name: 'column1', type: 'string' },
|
||||
{ name: 'column2', type: 'string' },
|
||||
{ name: 'column3', type: 'string' },
|
||||
{ name: 'name', type: 'string' },
|
||||
{ name: 'id', type: 'string' }
|
||||
])
|
||||
expect(wrapper.vm.currentAction.paramFields).toEqual([
|
||||
{ name: 'id', type: 'string' },
|
||||
{ name: 'name', type: 'string' }
|
||||
])
|
||||
expect(wrapper.vm.showAction).toBeTruthy()
|
||||
})
|
||||
|
||||
it('check currentAction paramsField and listUuidOpts() is called when execAction() is called', () => {
|
||||
|
|
@ -1546,11 +1540,10 @@ describe('Views > AutogenView.vue', () => {
|
|||
response: {},
|
||||
stack: 'Error: throw exception error'
|
||||
}
|
||||
|
||||
mockAxios.mockRejectedValue(errorMock)
|
||||
wrapper = factory()
|
||||
|
||||
spyConsole.log = jest.spyOn(console, 'log').mockImplementation(() => {})
|
||||
mockAxios.mockRejectedValue(errorMock)
|
||||
wrapper.setData({
|
||||
apiName: 'testApiNameCase1'
|
||||
})
|
||||
|
|
@ -1581,7 +1574,7 @@ describe('Views > AutogenView.vue', () => {
|
|||
})
|
||||
|
||||
describe('pollActionCompletion()', () => {
|
||||
it('check $notification, fetchData() when pollActionCompletion() is called with action is empty', (done) => {
|
||||
it('check $notification when pollActionCompletion() is called with action is empty', (done) => {
|
||||
const mockData = {
|
||||
queryasyncjobresultresponse: {
|
||||
jobstatus: 1,
|
||||
|
|
@ -1590,18 +1583,15 @@ describe('Views > AutogenView.vue', () => {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
wrapper = factory()
|
||||
|
||||
const jobId = 'test-job-id'
|
||||
const action = {}
|
||||
const spy = jest.spyOn(wrapper.vm, 'fetchData')
|
||||
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
wrapper.vm.pollActionCompletion(jobId, action)
|
||||
|
||||
setTimeout(() => {
|
||||
expect(spy).toHaveBeenCalled()
|
||||
expect(mocks.$notification.info).not.toHaveBeenCalled()
|
||||
expect(mockAxios).toHaveBeenCalled()
|
||||
expect(mockAxios).toHaveBeenCalledWith({
|
||||
|
|
@ -1619,7 +1609,7 @@ describe('Views > AutogenView.vue', () => {
|
|||
})
|
||||
})
|
||||
|
||||
it('check $notification, fetchData() when pollActionCompletion() is called with action is not empty', (done) => {
|
||||
it('check $notification when pollActionCompletion() is called with action is not empty', (done) => {
|
||||
const mockData = {
|
||||
queryasyncjobresultresponse: {
|
||||
jobstatus: 1,
|
||||
|
|
@ -1628,9 +1618,8 @@ describe('Views > AutogenView.vue', () => {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
wrapper = factory()
|
||||
|
||||
const jobId = 'test-job-id'
|
||||
const action = {
|
||||
label: 'labelname',
|
||||
|
|
@ -1638,13 +1627,9 @@ describe('Views > AutogenView.vue', () => {
|
|||
return jobResult.name
|
||||
}
|
||||
}
|
||||
const spy = jest.spyOn(wrapper.vm, 'fetchData')
|
||||
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
wrapper.vm.pollActionCompletion(jobId, action)
|
||||
|
||||
setTimeout(() => {
|
||||
expect(spy).toHaveBeenCalled()
|
||||
expect(mocks.$notification.info).toHaveBeenCalled()
|
||||
expect(mocks.$notification.info).toHaveLastReturnedWith({
|
||||
message: 'test-name-en',
|
||||
|
|
@ -1666,48 +1651,6 @@ describe('Views > AutogenView.vue', () => {
|
|||
done()
|
||||
})
|
||||
})
|
||||
|
||||
it('check fetchData() is called when $pollJob error response', (done) => {
|
||||
const mockData = {
|
||||
queryasyncjobresultresponse: {
|
||||
jobstatus: 2,
|
||||
jobresult: {
|
||||
errortext: 'test-error-message'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
wrapper = factory()
|
||||
|
||||
const jobId = 'test-job-id'
|
||||
const action = {
|
||||
label: 'labelname',
|
||||
response: (jobResult) => {
|
||||
return jobResult.name
|
||||
}
|
||||
}
|
||||
const spy = jest.spyOn(wrapper.vm, 'fetchData')
|
||||
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
wrapper.vm.pollActionCompletion(jobId, action)
|
||||
|
||||
setTimeout(() => {
|
||||
expect(spy).toHaveBeenCalled()
|
||||
expect(mockAxios).toHaveBeenCalled()
|
||||
expect(mockAxios).toHaveBeenCalledWith({
|
||||
url: '/',
|
||||
method: 'GET',
|
||||
data: new URLSearchParams(),
|
||||
params: {
|
||||
command: 'queryAsyncJobResult',
|
||||
jobId: jobId,
|
||||
response: 'json'
|
||||
}
|
||||
})
|
||||
|
||||
done()
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
describe('fillEditFormFieldValues()', () => {
|
||||
|
|
@ -2115,7 +2058,6 @@ describe('Views > AutogenView.vue', () => {
|
|||
})
|
||||
|
||||
spyConsole.warn = jest.spyOn(console, 'warn').mockImplementation(() => {})
|
||||
spyConsole.log = jest.spyOn(console, 'log').mockImplementation(() => {})
|
||||
|
||||
wrapper.vm.$nextTick(() => {
|
||||
const event = document.createEvent('Event')
|
||||
|
|
@ -2153,7 +2095,6 @@ describe('Views > AutogenView.vue', () => {
|
|||
}
|
||||
}
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
spyConsole.log = jest.spyOn(console, 'log').mockImplementation(() => {})
|
||||
|
||||
wrapper.vm.$nextTick(() => {
|
||||
const event = document.createEvent('Event')
|
||||
|
|
@ -2203,7 +2144,6 @@ describe('Views > AutogenView.vue', () => {
|
|||
}
|
||||
}
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
spyConsole.log = jest.spyOn(console, 'log').mockImplementation(() => {})
|
||||
|
||||
wrapper.vm.$nextTick(() => {
|
||||
const event = document.createEvent('Event')
|
||||
|
|
@ -2251,7 +2191,6 @@ describe('Views > AutogenView.vue', () => {
|
|||
}
|
||||
}
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
spyConsole.log = jest.spyOn(console, 'log').mockImplementation(() => {})
|
||||
|
||||
wrapper.vm.$nextTick(() => {
|
||||
wrapper.vm.form.getFieldDecorator('column1', { initialValue: null })
|
||||
|
|
@ -2300,7 +2239,6 @@ describe('Views > AutogenView.vue', () => {
|
|||
}
|
||||
}
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
spyConsole.log = jest.spyOn(console, 'log').mockImplementation(() => {})
|
||||
|
||||
wrapper.vm.$nextTick(() => {
|
||||
wrapper.vm.form.getFieldDecorator('column1', { initialValue: null })
|
||||
|
|
@ -2353,8 +2291,6 @@ describe('Views > AutogenView.vue', () => {
|
|||
}
|
||||
}
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
spyConsole.log = jest.spyOn(console, 'log').mockImplementation(() => {})
|
||||
|
||||
wrapper.vm.$nextTick(() => {
|
||||
wrapper.vm.form.getFieldDecorator('column1', { initialValue: 1 })
|
||||
const event = document.createEvent('Event')
|
||||
|
|
@ -2411,8 +2347,6 @@ describe('Views > AutogenView.vue', () => {
|
|||
}
|
||||
}
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
spyConsole.log = jest.spyOn(console, 'log').mockImplementation(() => {})
|
||||
|
||||
wrapper.vm.$nextTick(() => {
|
||||
wrapper.vm.form.getFieldDecorator('column1', { initialValue: [1, 2] })
|
||||
const event = document.createEvent('Event')
|
||||
|
|
@ -2463,8 +2397,6 @@ describe('Views > AutogenView.vue', () => {
|
|||
}
|
||||
}
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
spyConsole.log = jest.spyOn(console, 'log').mockImplementation(() => {})
|
||||
|
||||
wrapper.vm.$nextTick(() => {
|
||||
wrapper.vm.form.getFieldDecorator('account', { initialValue: 'test-account-value' })
|
||||
const event = document.createEvent('Event')
|
||||
|
|
@ -2515,7 +2447,6 @@ describe('Views > AutogenView.vue', () => {
|
|||
}
|
||||
}
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
spyConsole.log = jest.spyOn(console, 'log').mockImplementation(() => {})
|
||||
|
||||
wrapper.vm.$nextTick(() => {
|
||||
wrapper.vm.form.getFieldDecorator('keypair', { initialValue: 'test-keypair-value' })
|
||||
|
|
@ -2571,7 +2502,6 @@ describe('Views > AutogenView.vue', () => {
|
|||
}
|
||||
}
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
spyConsole.log = jest.spyOn(console, 'log').mockImplementation(() => {})
|
||||
|
||||
wrapper.vm.$nextTick(() => {
|
||||
wrapper.vm.form.getFieldDecorator('keypair', { initialValue: 1 })
|
||||
|
|
@ -2623,7 +2553,6 @@ describe('Views > AutogenView.vue', () => {
|
|||
}
|
||||
}
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
spyConsole.log = jest.spyOn(console, 'log').mockImplementation(() => {})
|
||||
|
||||
wrapper.vm.$nextTick(() => {
|
||||
wrapper.vm.form.getFieldDecorator('column1', { initialValue: 'test-column-value' })
|
||||
|
|
@ -2675,7 +2604,6 @@ describe('Views > AutogenView.vue', () => {
|
|||
}
|
||||
}
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
spyConsole.log = jest.spyOn(console, 'log').mockImplementation(() => {})
|
||||
|
||||
wrapper.vm.$nextTick(() => {
|
||||
wrapper.vm.form.getFieldDecorator('column1', { initialValue: 'test-column1-value' })
|
||||
|
|
@ -2734,7 +2662,6 @@ describe('Views > AutogenView.vue', () => {
|
|||
}
|
||||
}
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
spyConsole.log = jest.spyOn(console, 'log').mockImplementation(() => {})
|
||||
|
||||
wrapper.vm.$nextTick(() => {
|
||||
wrapper.vm.form.getFieldDecorator('column1', { initialValue: 'test-column1-value' })
|
||||
|
|
@ -2759,6 +2686,19 @@ describe('Views > AutogenView.vue', () => {
|
|||
})
|
||||
|
||||
it('check router name when api is called and currentAction.icon = delete and dataView is true', async (done) => {
|
||||
const mockData = {
|
||||
testapinamecase1response: {
|
||||
jobid: 'test-job-id'
|
||||
},
|
||||
queryasyncjobresultresponse: {
|
||||
jobstatus: 1,
|
||||
jobresult: {
|
||||
name: 'test-name-value'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
router = common.createMockRouter([{
|
||||
name: 'testRouter26',
|
||||
path: '/test-router-26',
|
||||
|
|
@ -2766,41 +2706,26 @@ describe('Views > AutogenView.vue', () => {
|
|||
icon: 'test-router-26'
|
||||
}
|
||||
}])
|
||||
wrapper = factory({ router: router })
|
||||
router.push({ name: 'testRouter26' })
|
||||
|
||||
const mockData = {
|
||||
testapinamecase1response: {
|
||||
count: 1,
|
||||
testapinamecase1: [{
|
||||
id: 'test-id-value',
|
||||
name: 'test-name-value'
|
||||
}]
|
||||
wrapper = factory({
|
||||
router: router,
|
||||
data: {
|
||||
currentAction: {
|
||||
api: 'testApiNameCase1',
|
||||
icon: 'delete',
|
||||
loading: false,
|
||||
label: 'labelname',
|
||||
params: [
|
||||
{ name: 'column1', type: 'string' }
|
||||
],
|
||||
paramFields: [
|
||||
{ name: 'column1', type: 'string', description: '', required: false }
|
||||
]
|
||||
},
|
||||
resource: {}
|
||||
}
|
||||
}
|
||||
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
spyConsole.log = jest.spyOn(console, 'log').mockImplementation(() => {})
|
||||
await wrapper.vm.$nextTick()
|
||||
|
||||
expect(router.currentRoute.name).toEqual('testRouter26')
|
||||
|
||||
wrapper.setData({
|
||||
currentAction: {
|
||||
icon: 'delete',
|
||||
api: 'testApiNameCase1',
|
||||
loading: false,
|
||||
label: 'labelname',
|
||||
params: [
|
||||
{ name: 'column1', type: 'string' }
|
||||
],
|
||||
paramFields: [
|
||||
{ name: 'column1', type: 'string', description: '', required: false }
|
||||
]
|
||||
},
|
||||
dataView: true
|
||||
})
|
||||
|
||||
router.push({ name: 'testRouter26', query: { dataView: true } })
|
||||
await wrapper.vm.$nextTick()
|
||||
wrapper.vm.form.getFieldDecorator('column1', { initialValue: 'test-column1-value' })
|
||||
const event = document.createEvent('Event')
|
||||
await wrapper.vm.execSubmit(event)
|
||||
|
|
@ -2811,7 +2736,7 @@ describe('Views > AutogenView.vue', () => {
|
|||
}, 1000)
|
||||
})
|
||||
|
||||
it('check pollActionCompletion() is called when api is called and response have jobId result', async (done) => {
|
||||
it('check pollActionCompletion() and action AddAsyncJob is called when api is called and response have jobId result', async (done) => {
|
||||
store = common.createMockStore(state)
|
||||
wrapper = factory({
|
||||
store: store,
|
||||
|
|
@ -2836,11 +2761,16 @@ describe('Views > AutogenView.vue', () => {
|
|||
const mockData = {
|
||||
testapinamecase1response: {
|
||||
jobid: 'test-job-id'
|
||||
},
|
||||
queryasyncjobresultresponse: {
|
||||
jobstatus: 1,
|
||||
jobresult: {
|
||||
name: 'test-name-value'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
spyConsole.log = jest.spyOn(console, 'log').mockImplementation(() => {})
|
||||
|
||||
await wrapper.vm.$nextTick()
|
||||
wrapper.vm.form.getFieldDecorator('column1', { initialValue: 'test-column1-value' })
|
||||
|
|
@ -2854,7 +2784,7 @@ describe('Views > AutogenView.vue', () => {
|
|||
})
|
||||
})
|
||||
|
||||
it('check $message, fetchData() is called when api response have not jobId result', async (done) => {
|
||||
it('check $notification when api is called and response have not jobId result', async (done) => {
|
||||
wrapper = factory({
|
||||
data: {
|
||||
showAction: true,
|
||||
|
|
@ -2884,9 +2814,7 @@ describe('Views > AutogenView.vue', () => {
|
|||
}
|
||||
}
|
||||
|
||||
const spyFetchData = jest.spyOn(wrapper.vm, 'fetchData')
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
spyConsole.log = jest.spyOn(console, 'log').mockImplementation(() => {})
|
||||
|
||||
await wrapper.vm.$nextTick()
|
||||
wrapper.vm.form.getFieldDecorator('column1', { initialValue: 'test-column1-value' })
|
||||
|
|
@ -2900,7 +2828,6 @@ describe('Views > AutogenView.vue', () => {
|
|||
key: 'labelnametest-name-value',
|
||||
duration: 2
|
||||
})
|
||||
expect(spyFetchData).toHaveBeenCalled()
|
||||
|
||||
done()
|
||||
})
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ const factory = (opts = {}) => {
|
|||
}
|
||||
|
||||
describe('Views > compute > MigrateWizard.vue', () => {
|
||||
jest.spyOn(console, 'warn').mockImplementation(() => {})
|
||||
// jest.spyOn(console, 'warn').mockImplementation(() => {})
|
||||
|
||||
beforeEach(() => {
|
||||
jest.clearAllMocks()
|
||||
|
|
@ -345,6 +345,7 @@ describe('Views > compute > MigrateWizard.vue', () => {
|
|||
}
|
||||
}
|
||||
}
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
|
||||
router = common.createMockRouter([{
|
||||
name: 'testRouter1',
|
||||
|
|
@ -370,9 +371,7 @@ describe('Views > compute > MigrateWizard.vue', () => {
|
|||
}
|
||||
})
|
||||
router.push({ name: 'testRouter1' })
|
||||
|
||||
jest.spyOn(wrapper.vm, 'fetchData').mockImplementation(() => {})
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
wrapper.vm.loading = false
|
||||
await wrapper.vm.$nextTick()
|
||||
await wrapper.vm.submitForm()
|
||||
|
||||
|
|
@ -406,6 +405,7 @@ describe('Views > compute > MigrateWizard.vue', () => {
|
|||
}
|
||||
}
|
||||
}
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
|
||||
router = common.createMockRouter([{
|
||||
name: 'testRouter2',
|
||||
|
|
@ -429,11 +429,9 @@ describe('Views > compute > MigrateWizard.vue', () => {
|
|||
}
|
||||
}
|
||||
})
|
||||
|
||||
router.push({ name: 'testRouter2' })
|
||||
jest.spyOn(wrapper.vm, 'fetchData').mockImplementation(() => {})
|
||||
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
|
||||
wrapper.vm.loading = false
|
||||
await wrapper.vm.$nextTick()
|
||||
await wrapper.vm.submitForm()
|
||||
|
||||
|
|
@ -457,7 +455,7 @@ describe('Views > compute > MigrateWizard.vue', () => {
|
|||
|
||||
it('check api is called when isUserVm=false', async (done) => {
|
||||
const mockData = {
|
||||
migratesystemvmresponse: {
|
||||
migratevirtualmachineresponse: {
|
||||
jobid: 'test-job-id'
|
||||
},
|
||||
queryasyncjobresultresponse: {
|
||||
|
|
@ -467,7 +465,7 @@ describe('Views > compute > MigrateWizard.vue', () => {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
router = common.createMockRouter([{
|
||||
name: 'testRouter3',
|
||||
path: '/test-router-3',
|
||||
|
|
@ -492,9 +490,7 @@ describe('Views > compute > MigrateWizard.vue', () => {
|
|||
}
|
||||
})
|
||||
router.push({ name: 'testRouter3' })
|
||||
|
||||
jest.spyOn(wrapper.vm, 'fetchData').mockImplementation(() => {})
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
wrapper.vm.loading = false
|
||||
await wrapper.vm.$nextTick()
|
||||
await wrapper.vm.submitForm()
|
||||
|
||||
|
|
@ -516,7 +512,7 @@ describe('Views > compute > MigrateWizard.vue', () => {
|
|||
})
|
||||
})
|
||||
|
||||
it('check store dispatch `AddAsyncJob` and $pollJob have successMethod() is called with requiresStorageMotion is true', async (done) => {
|
||||
it('check $pollJob have successMethod() is called with requiresStorageMotion is true', async (done) => {
|
||||
const mockData = {
|
||||
migratevirtualmachinewithvolumeresponse: {
|
||||
jobid: 'test-job-id-case-1'
|
||||
|
|
@ -528,7 +524,7 @@ describe('Views > compute > MigrateWizard.vue', () => {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
router = common.createMockRouter([{
|
||||
name: 'testRouter4',
|
||||
path: '/test-router-4',
|
||||
|
|
@ -553,10 +549,7 @@ describe('Views > compute > MigrateWizard.vue', () => {
|
|||
}
|
||||
})
|
||||
router.push({ name: 'testRouter4' })
|
||||
|
||||
jest.spyOn(wrapper.vm, 'fetchData').mockImplementation(() => {})
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
|
||||
wrapper.vm.loading = false
|
||||
await wrapper.vm.$nextTick()
|
||||
await wrapper.vm.submitForm()
|
||||
|
||||
|
|
@ -580,7 +573,7 @@ describe('Views > compute > MigrateWizard.vue', () => {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
router = common.createMockRouter([{
|
||||
name: 'testRouter5',
|
||||
path: '/test-router-5',
|
||||
|
|
@ -605,10 +598,7 @@ describe('Views > compute > MigrateWizard.vue', () => {
|
|||
}
|
||||
})
|
||||
router.push({ name: 'testRouter5' })
|
||||
|
||||
jest.spyOn(wrapper.vm, 'fetchData').mockImplementation(() => {})
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
|
||||
wrapper.vm.loading = false
|
||||
await wrapper.vm.$nextTick()
|
||||
await wrapper.vm.submitForm()
|
||||
|
||||
|
|
@ -619,9 +609,9 @@ describe('Views > compute > MigrateWizard.vue', () => {
|
|||
})
|
||||
})
|
||||
|
||||
it('check store dispatch `AddAsyncJob` and $pollJob have successMethod() is called with isUserVm is false', async (done) => {
|
||||
it('check $pollJob have successMethod() is called with isUserVm is false', async (done) => {
|
||||
const mockData = {
|
||||
migratesystemvmresponse: {
|
||||
migratevirtualmachineresponse: {
|
||||
jobid: 'test-job-id-case-2'
|
||||
},
|
||||
queryasyncjobresultresponse: {
|
||||
|
|
@ -631,7 +621,7 @@ describe('Views > compute > MigrateWizard.vue', () => {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
router = common.createMockRouter([{
|
||||
name: 'testRouter6',
|
||||
path: '/test-router-6',
|
||||
|
|
@ -656,10 +646,7 @@ describe('Views > compute > MigrateWizard.vue', () => {
|
|||
}
|
||||
})
|
||||
router.push({ name: 'testRouter6' })
|
||||
|
||||
jest.spyOn(wrapper.vm, 'fetchData').mockImplementation(() => {})
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
|
||||
wrapper.vm.loading = false
|
||||
await wrapper.vm.$nextTick()
|
||||
await wrapper.vm.submitForm()
|
||||
|
||||
|
|
@ -673,7 +660,7 @@ describe('Views > compute > MigrateWizard.vue', () => {
|
|||
|
||||
it('check $pollJob have errorMethod() is called', async (done) => {
|
||||
const mockData = {
|
||||
migratesystemvmresponse: {
|
||||
migratevirtualmachinewithvolumeresponse: {
|
||||
jobid: 'test-job-id-case-3'
|
||||
},
|
||||
queryasyncjobresultresponse: {
|
||||
|
|
@ -683,6 +670,7 @@ describe('Views > compute > MigrateWizard.vue', () => {
|
|||
}
|
||||
}
|
||||
}
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
wrapper = factory({
|
||||
props: {
|
||||
resource: {
|
||||
|
|
@ -698,10 +686,7 @@ describe('Views > compute > MigrateWizard.vue', () => {
|
|||
}
|
||||
}
|
||||
})
|
||||
jest.spyOn(wrapper.vm, 'fetchData').mockImplementation(() => {})
|
||||
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
|
||||
wrapper.vm.loading = false
|
||||
await wrapper.vm.$nextTick()
|
||||
await wrapper.vm.submitForm()
|
||||
|
||||
|
|
@ -715,10 +700,11 @@ describe('Views > compute > MigrateWizard.vue', () => {
|
|||
|
||||
it('check $pollJob have catchMethod() is called', async (done) => {
|
||||
const mockData = {
|
||||
migratesystemvmresponse: {
|
||||
migratevirtualmachinewithvolumeresponse: {
|
||||
jobid: 'test-job-id-case-4'
|
||||
}
|
||||
}
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
wrapper = factory({
|
||||
props: {
|
||||
resource: {
|
||||
|
|
@ -734,10 +720,7 @@ describe('Views > compute > MigrateWizard.vue', () => {
|
|||
}
|
||||
}
|
||||
})
|
||||
jest.spyOn(wrapper.vm, 'fetchData').mockImplementation(() => {})
|
||||
|
||||
mockAxios.mockResolvedValue(mockData)
|
||||
|
||||
wrapper.vm.loading = false
|
||||
await wrapper.vm.$nextTick()
|
||||
await wrapper.vm.submitForm()
|
||||
|
||||
|
|
@ -753,7 +736,7 @@ describe('Views > compute > MigrateWizard.vue', () => {
|
|||
const mockError = {
|
||||
message: 'Error: throw error message'
|
||||
}
|
||||
|
||||
mockAxios.mockRejectedValue(mockError)
|
||||
wrapper = factory({
|
||||
props: {
|
||||
resource: {}
|
||||
|
|
@ -766,10 +749,7 @@ describe('Views > compute > MigrateWizard.vue', () => {
|
|||
}
|
||||
}
|
||||
})
|
||||
jest.spyOn(wrapper.vm, 'fetchData').mockImplementation(() => {})
|
||||
|
||||
mockAxios.mockRejectedValue(mockError)
|
||||
|
||||
wrapper.vm.loading = false
|
||||
await wrapper.vm.$nextTick()
|
||||
await wrapper.vm.submitForm()
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue