| // Licensed to the Apache Software Foundation (ASF) under one |
| // or more contributor license agreements. See the NOTICE file |
| // distributed with this work for additional information |
| // regarding copyright ownership. The ASF licenses this file |
| // to you under the Apache License, Version 2.0 (the |
| // "License"); you may not use this file except in compliance |
| // with the License. You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, |
| // software distributed under the License is distributed on an |
| // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| // KIND, either express or implied. See the License for the |
| // specific language governing permissions and limitations |
| // under the License. |
| |
| import { flushPromises } from '@vue/test-utils' |
| |
| import common from '../../../common' |
| import mockData from '../../../mockData/Status.mock.json' |
| import Status from '@/components/widgets/Status' |
| |
| let router, i18n |
| |
| router = common.createMockRouter(mockData.routes) |
| i18n = common.createMockI18n('en', mockData.messages) |
| |
| const factory = (opts = {}) => { |
| router = opts.router || router |
| i18n = opts.i18n || i18n |
| |
| return common.createFactory(Status, { |
| router, |
| i18n, |
| props: opts.props || {}, |
| data: opts.data || {} |
| }) |
| } |
| |
| describe('Components > Widgets > Status.vue', () => { |
| describe('Methods', () => { |
| describe('getText()', () => { |
| it('getText() is called and return value is empty', async () => { |
| const wrapper = factory({ props: { text: 'Running', displayText: false } }) |
| await flushPromises() |
| const received = wrapper.html() |
| const expected = '<span class="ant-badge-status-text"></span>' |
| |
| expect(received).toContain(expected) |
| }) |
| |
| it('getText() is called and return value equal `Running`', async () => { |
| const wrapper = factory({ |
| props: { text: 'Running', displayText: true } |
| }) |
| await flushPromises() |
| const received = wrapper.html() |
| const expected = '<span class="ant-badge-status-text">Running</span>' |
| |
| expect(received).toContain(expected) |
| }) |
| |
| it('getText() is called and return value equal `Stopped`', async () => { |
| const wrapper = factory({ |
| props: { text: 'Stopped', displayText: true } |
| }) |
| await flushPromises() |
| const received = wrapper.html() |
| const expected = '<span class="ant-badge-status-text">Stopped</span>' |
| |
| expect(received).toContain(expected) |
| }) |
| |
| it('getText() is called and return value equal `Starting`', async () => { |
| const wrapper = factory({ |
| props: { text: 'Starting', displayText: true } |
| }) |
| await flushPromises() |
| const received = wrapper.html() |
| const expected = '<span class="ant-badge-status-text">Starting</span>' |
| |
| expect(received).toContain(expected) |
| }) |
| |
| it('getText() is called and return value equal `Stopping`', async () => { |
| const wrapper = factory({ |
| props: { text: 'Stopping', displayText: true } |
| }) |
| await flushPromises() |
| const received = wrapper.html() |
| const expected = '<span class="ant-badge-status-text">Stopping</span>' |
| |
| expect(received).toContain(expected) |
| }) |
| |
| it('getText() is called and return value equal `Suspended`', async () => { |
| const wrapper = factory({ |
| props: { text: 'Suspended', displayText: true } |
| }) |
| await flushPromises() |
| const received = wrapper.html() |
| const expected = '<span class="ant-badge-status-text">Suspended</span>' |
| |
| expect(received).toContain(expected) |
| }) |
| |
| it('getText() is called and return value equal `Pending`', async () => { |
| const wrapper = factory({ |
| props: { text: 'Pending', displayText: true } |
| }) |
| await flushPromises() |
| const received = wrapper.html() |
| const expected = '<span class="ant-badge-status-text">Pending</span>' |
| |
| expect(received).toContain(expected) |
| }) |
| |
| it('getText() is called and return value equal `Expunging`', async () => { |
| const wrapper = factory({ |
| props: { text: 'Expunging', displayText: true } |
| }) |
| await flushPromises() |
| const received = wrapper.html() |
| const expected = '<span class="ant-badge-status-text">Expunging</span>' |
| |
| expect(received).toContain(expected) |
| }) |
| |
| it('getText() is called and return value equal `Error`', async () => { |
| const wrapper = factory({ |
| props: { text: 'Error', displayText: true } |
| }) |
| await flushPromises() |
| const received = wrapper.html() |
| const expected = '<span class="ant-badge-status-text">Error</span>' |
| |
| expect(received).toContain(expected) |
| }) |
| }) |
| |
| describe('getBadgeStatus()', () => { |
| it('getBadgeStatus() is called and return is default status', () => { |
| const wrapper = factory({ |
| props: { |
| text: 'Another', |
| displayText: true |
| } |
| }) |
| const received = wrapper.html() |
| const expected = '<span class="ant-badge-status-dot ant-badge-status-default"></span>' |
| |
| expect(received).toContain(expected) |
| }) |
| |
| it('getBadgeStatus() is called and return is success status', () => { |
| const wrapper = factory({ |
| props: { |
| text: 'Active', |
| displayText: true |
| } |
| }) |
| const received = wrapper.html() |
| const expected = '<span class="ant-badge-status-dot ant-badge-status-success"></span>' |
| |
| expect(received).toContain(expected) |
| }) |
| |
| it('getBadgeStatus() is called and return is error status', () => { |
| const wrapper = factory({ |
| props: { |
| text: 'Disabled', |
| displayText: true |
| } |
| }) |
| const received = wrapper.html() |
| const expected = '<span class="ant-badge-status-dot ant-badge-status-error"></span>' |
| |
| expect(received).toContain(expected) |
| }) |
| |
| it('getBadgeStatus() is called and return is processing status', () => { |
| const wrapper = factory({ |
| props: { |
| text: 'Migrating', |
| displayText: true |
| } |
| }) |
| const received = wrapper.html() |
| const expected = '<span class="ant-badge-status-dot ant-badge-status-processing"></span>' |
| |
| expect(received).toContain(expected) |
| }) |
| |
| it('getBadgeStatus() is called and return is error status with state equal `Alert`', () => { |
| const wrapper = factory({ |
| props: { |
| text: 'Alert', |
| displayText: true |
| } |
| }) |
| const received = wrapper.html() |
| const expected = '<span style="display: inline-flex;" class="ant-badge ant-badge-status ant-badge-not-a-wrapper"><span class="ant-badge-status-dot ant-badge-status-error"></span><span class="ant-badge-status-text">Alert</span></span>' |
| |
| expect(received).toContain(expected) |
| }) |
| |
| it('getBadgeStatus() is called and return is success status with state equal `Allocated`', async () => { |
| const wrapper = factory({ |
| props: { |
| text: 'Allocated', |
| displayText: true |
| } |
| }) |
| router.push({ name: 'testRouter1' }) |
| await router.isReady() |
| await flushPromises() |
| const received = wrapper.html() |
| const expected = '<span style="display: inline-flex;" class="ant-badge ant-badge-status ant-badge-not-a-wrapper"><span class="ant-badge-status-dot ant-badge-status-success"></span><span class="ant-badge-status-text">Allocated</span></span>' |
| |
| expect(received).toContain(expected) |
| }) |
| |
| it('getBadgeStatus() is called and return is warning status with state equal `Allocated`', async () => { |
| const wrapper = factory({ |
| props: { |
| text: 'Allocated', |
| displayText: true |
| } |
| }) |
| router.push('/') |
| await router.isReady() |
| await flushPromises() |
| const received = wrapper.html() |
| const expected = '<span style="display: inline-flex;" class="ant-badge ant-badge-status ant-badge-not-a-wrapper"><span class="ant-badge-status-dot ant-badge-status-warning"></span><span class="ant-badge-status-text">Allocated</span></span>' |
| |
| expect(received).toContain(expected) |
| }) |
| }) |
| |
| describe('getTooltip()', () => { |
| it('getTooltip() is called with `$route.path` equal `/vmsnapshot`', async () => { |
| const wrapper = factory({ props: { text: 'Active', displayText: true } }) |
| router.push({ name: 'testRouter2' }) |
| await router.isReady() |
| await flushPromises() |
| const received = wrapper.html() |
| const expected = '<span style="display: inline-flex;" class="ant-badge ant-badge-status ant-badge-not-a-wrapper"><span class="ant-badge-status-dot ant-badge-status-success"></span><span class="ant-badge-status-text">Active</span></span>' |
| |
| expect(received).toContain(expected) |
| }) |
| |
| it('getTooltip() is called with `$route.path` equal `/vm`', async () => { |
| const wrapper = factory({ props: { text: 'Active', displayText: true } }) |
| router.push({ name: 'testRouter3' }) |
| await router.isReady() |
| await flushPromises() |
| const received = wrapper.html() |
| const expected = '<span style="display: inline-flex;" class="ant-badge ant-badge-status ant-badge-not-a-wrapper"><span class="ant-badge-status-dot ant-badge-status-success"></span><span class="ant-badge-status-text">Active</span></span>' |
| |
| expect(received).toContain(expected) |
| }) |
| |
| it('getTooltip() is called with `$route.path` equal `/volume`', async () => { |
| const wrapper = factory({ props: { text: 'Active', displayText: true } }) |
| router.push({ name: 'testRouter4' }) |
| await router.isReady() |
| await flushPromises() |
| const received = wrapper.html() |
| const expected = '<span style="display: inline-flex;" class="ant-badge ant-badge-status ant-badge-not-a-wrapper"><span class="ant-badge-status-dot ant-badge-status-success"></span><span class="ant-badge-status-text">Active</span></span>' |
| |
| expect(received).toContain(expected) |
| }) |
| |
| it('getTooltip() is called with `$route.path` equal `/guestnetwork`', async () => { |
| const wrapper = factory({ props: { text: 'Active', displayText: true } }) |
| router.push({ name: 'testRouter5' }) |
| await router.isReady() |
| await flushPromises() |
| const received = wrapper.html() |
| const expected = '<span style="display: inline-flex;" class="ant-badge ant-badge-status ant-badge-not-a-wrapper"><span class="ant-badge-status-dot ant-badge-status-success"></span><span class="ant-badge-status-text">Active</span></span>' |
| |
| expect(received).toContain(expected) |
| }) |
| |
| it('getTooltip() is called with `$route.path` equal `/publicip`', async () => { |
| const wrapper = factory({ props: { text: 'Active', displayText: true } }) |
| router.push({ name: 'testRouter1' }) |
| await router.isReady() |
| await flushPromises() |
| const received = wrapper.html() |
| const expected = '<span style="display: inline-flex;" class="ant-badge ant-badge-status ant-badge-not-a-wrapper"><span class="ant-badge-status-dot ant-badge-status-success"></span><span class="ant-badge-status-text">Active</span></span>' |
| |
| expect(received).toContain(expected) |
| }) |
| }) |
| }) |
| }) |