1import { mount, createLocalVue } from '@vue/test-utils';
2import LoadingBar from '@/components/Global/LoadingBar';
3import BootstrapVue from 'bootstrap-vue';
4
5const localVue = createLocalVue();
6localVue.use(BootstrapVue);
7
8describe('LoadingBar.vue', () => {
9  const wrapper = mount(LoadingBar, {
10    localVue,
11    data() {
12      return {
13        loadingIndicatorValue: 0,
14        isLoadingComplete: false,
15      };
16    },
17    mocks: {
18      $t: (key) => key,
19    },
20  });
21  it('should exist', () => {
22    expect(wrapper.exists()).toBe(true);
23  });
24  it('should show loading bar element', async () => {
25    await wrapper.setData({
26      isLoadingComplete: false,
27      loadingIndicatorValue: 100,
28    });
29    expect(wrapper.vm.isLoadingComplete).toBe(false);
30    expect(wrapper.find('.progress').exists()).toBe(true);
31  });
32  it('should hide loading bar element', async () => {
33    await wrapper.setData({
34      isLoadingComplete: true,
35      loadingIndicatorValue: 0,
36    });
37    expect(wrapper.vm.isLoadingComplete).toBe(true);
38    expect(wrapper.find('.progress').exists()).toBe(false);
39  });
40  it('should render correctly', () => {
41    expect(wrapper.element).toMatchSnapshot();
42  });
43});
44