gitlab-org--gitlab-foss/spec/frontend/security_configuration/components/feature_card_badge_spec.js

41 lines
1.6 KiB
JavaScript

import { mount } from '@vue/test-utils';
import { GlBadge, GlTooltip } from '@gitlab/ui';
import { extendedWrapper } from 'helpers/vue_test_utils_helper';
import FeatureCardBadge from '~/security_configuration/components/feature_card_badge.vue';
describe('Feature card badge component', () => {
let wrapper;
const createComponent = (propsData) => {
wrapper = extendedWrapper(
mount(FeatureCardBadge, {
propsData,
}),
);
};
const findTooltip = () => wrapper.findComponent(GlTooltip);
const findBadge = () => wrapper.findComponent(GlBadge);
describe('tooltip render', () => {
describe.each`
context | badge | badgeHref
${'href on a badge object'} | ${{ tooltipText: 'test', badgeHref: 'href' }} | ${undefined}
${'href as property '} | ${{ tooltipText: null, badgeHref: '' }} | ${'link'}
${'default href no property on badge or component'} | ${{ tooltipText: null, badgeHref: '' }} | ${undefined}
`('given $context', ({ badge, badgeHref }) => {
beforeEach(() => {
createComponent({ badge, badgeHref });
});
it('should show badge when badge given in configuration and available', () => {
expect(findTooltip().exists()).toBe(Boolean(badge && badge.tooltipText));
});
it('should render correct link if link is provided', () => {
expect(findBadge().attributes().href).toEqual(badgeHref);
});
});
});
});