diff --git a/src/components/tabview/TabView.spec.js b/src/components/tabview/TabView.spec.js new file mode 100644 index 000000000..f5aefadbb --- /dev/null +++ b/src/components/tabview/TabView.spec.js @@ -0,0 +1,48 @@ +import { mount } from '@vue/test-utils'; +import TabView from './TabView.vue'; +import TabPanel from '@/components/tabpanel/TabPanel.vue'; + +describe('TabPanel.vue', () => { + let wrapper; + + window.HTMLElement.prototype.scrollIntoView = function() {}; + + beforeEach(() => { + wrapper = mount(TabView, { + global: { + components: { + TabPanel + } + }, + slots: { + default: ` + +

Lorem ipsum dolor sit amet, consectetur adipiscing elit,

+
+ +

Sed ut perspiciatis unde omnis iste natus error sit voluptatem

+
+ +

At vero eos et accusamus et iusto odio dignissimos ducimus qui

+
+ ` + } + }); + }); + + it('should exist', () => { + expect(wrapper.find('.p-tabview.p-component').exists()).toBe(true); + expect(wrapper.find('.p-tabview-ink-bar').exists()).toBe(true); + expect(wrapper.findAll('a.p-tabview-nav-link').length).toBe(3); + expect(wrapper.findAll('.p-tabview-panel').length).toBe(3); + expect(wrapper.findAll('li[role="presentation"]')[0].classes()).toContain('p-highlight'); + expect(wrapper.findAll('.p-tabview-panel')[1].attributes().style).toBe('display: none;'); + }); + + it('should change the active item', async () => { + await wrapper.vm.onTabClick({}, 1); + + expect(wrapper.findAll('li[role="presentation"]')[1].classes()).toContain('p-highlight'); + expect(wrapper.findAll('.p-tabview-panel')[0].attributes().style).toBe('display: none;'); + }); +}); \ No newline at end of file