UNPKG

@mekari/mekari-ui-vue

Version:

--- General web components in Mekari. The components are made using vue.js as its framework. Styling of components on Mekari UI Vue uses [Mekari UI Toolkit](https://bitbucket.org/mid-kelola-indonesia/mekari-ui-toolkit/src/master/). Don't forget to import

88 lines (73 loc) 2.16 kB
import MText from './index.vue'; import { shallowMount } from '@vue/test-utils'; describe('Mekari UI Text Component', () => { let wrapper; const initWrapper = props => shallowMount(MText, { propsData: { ...props, }, }); afterEach(() => { wrapper.destroy(); }); it('should match snapshot', () => { wrapper = initWrapper({ text: 'Text' }); expect(wrapper.element).toMatchSnapshot(); }); it('should set content inside text based on slot', () => { wrapper = shallowMount(MText, { slots: { default: 'Text', }, }); expect(wrapper.find('p').text()).toBe('Text'); }); it('should set tag to be H1 if props type is "page-title"', () => { wrapper = initWrapper({ type: 'page-title', }); expect(wrapper.element.tagName).toBe('H1'); }); it('should set tag to be H2 if props type is "stage-title"', () => { wrapper = initWrapper({ type: 'stage-title', }); expect(wrapper.element.tagName).toBe('H2'); }); it('should set tag to be H3 if props type is "section"', () => { wrapper = initWrapper({ type: 'section', }); expect(wrapper.element.tagName).toBe('H3'); }); it('should set tag to be DIV if props type is "large-title"', () => { wrapper = initWrapper({ type: 'large-title', }); expect(wrapper.element.tagName).toBe('DIV'); expect(wrapper.find('div').classes('large-title')).toBe(true); }); it('should set tag to be P if props type is "body"', () => { wrapper = initWrapper({ type: 'body', }); expect(wrapper.element.tagName).toBe('P'); }); it('should set tag to be P if props type is empty', () => { wrapper = initWrapper(); expect(wrapper.element.tagName).toBe('P'); }); it('should set tag to be P if props type is not on list', () => { wrapper = initWrapper({ type: 'wrong-type', }); expect(wrapper.element.tagName).toBe('P'); }); it('should set tag to be SMALL if props type is "caption"', () => { wrapper = initWrapper({ type: 'caption', }); expect(wrapper.element.tagName).toBe('SMALL'); }); });