github.com/covergates/covergates@v0.2.2-0.20201009050117-42ef8a19fb95/web/src/components/__tests__/ReportOverview.spec.ts (about)

     1  import Vue from 'vue';
     2  import { createLocalVue, shallowMount, Wrapper } from '@vue/test-utils';
     3  import Vuex, { Store } from 'vuex';
     4  import { cloneDeep } from 'lodash';
     5  import Vuetify from 'vuetify';
     6  import flushPromises from 'flush-promises';
     7  import ReportOverview from '@/components/ReportOverview.vue';
     8  import { AxiosPlugin } from '@/plugins/http';
     9  import { Mutations, storeConfig, RootState } from '@/store';
    10  
    11  jest.mock('axios');
    12  Vue.use(Vuetify);
    13  Vue.use(AxiosPlugin);
    14  
    15  describe('ReportOverview.vue', () => {
    16    console.warn = jest.fn();
    17    const localVue = createLocalVue();
    18    let vuetify: typeof Vuetify;
    19    let store: Store<RootState>;
    20    beforeEach(() => {
    21      vuetify = new Vuetify();
    22      store = new Vuex.Store(cloneDeep(storeConfig));
    23    });
    24  
    25    localVue.use(Vuetify);
    26    it('update file count when current report is set', async () => {
    27      const wrapper = shallowMount(ReportOverview, {
    28        localVue,
    29        vuetify,
    30        store
    31      }) as Wrapper<ReportOverview & { filesCount: number }>;
    32      expect(wrapper.vm.$store.state.report.current).toBeUndefined();
    33      expect(wrapper.vm.filesCount).toEqual(0);
    34      wrapper.vm.$store.commit(Mutations.SET_REPORT_CURRENT, {
    35        files: ['a', 'b', 'c']
    36      } as Report);
    37      await flushPromises();
    38      expect(wrapper.vm.filesCount).toEqual(3);
    39    });
    40  
    41    it('round coverage rate', async () => {
    42      const wrapper = shallowMount(ReportOverview, {
    43        localVue,
    44        vuetify,
    45        store
    46      }) as Wrapper<ReportOverview & { $coverage: number }>;
    47      expect(wrapper.vm.$store.state.report.current).toBeUndefined();
    48      expect(wrapper.vm.$coverage).toEqual(0);
    49      wrapper.vm.$store.commit(Mutations.SET_REPORT_CURRENT, {
    50        coverages: [
    51          {
    52            statementCoverage: 0.8995
    53          }
    54        ]
    55      } as Report);
    56      await flushPromises();
    57      expect(wrapper.vm.$coverage).toEqual(89.95);
    58    });
    59  });