From ef6f01a007d5b19f5b750aa8c24c087f64eef71a Mon Sep 17 00:00:00 2001 From: Katie Kroell Date: Fri, 21 Jul 2023 08:48:44 -0400 Subject: [PATCH] start of unit tests --- .../coverage-statement.spec.js | 109 ++++++++++++++++-- .../coverage-statement/coverage-statement.vue | 5 +- 2 files changed, 104 insertions(+), 10 deletions(-) diff --git a/src/layouts/coverage-statement/coverage-statement.spec.js b/src/layouts/coverage-statement/coverage-statement.spec.js index 15b18c73..b67f4d09 100644 --- a/src/layouts/coverage-statement/coverage-statement.spec.js +++ b/src/layouts/coverage-statement/coverage-statement.spec.js @@ -1,16 +1,109 @@ -describe ('test', () => { - test ('dummy test', () => { - // Arrange - let test = "test"; +// Components +import coverageStatement from '@/layouts/coverage-statement/coverage-statement'; - // Act - test = "test2" +// Supporting Files +import { shallowMount } from '@vue/test-utils'; +import { getMountOptions } from '@/helpers/unit-test-helper.js'; +import { createTestingPinia } from '@pinia/testing'; +import { navigationScenarios } from '@/router/router-constants/navigation-scenarios.js'; +import { useMainStore } from '@/store/index.js'; +import { settleAllPromises } from '@/helpers/layout-helper'; +import { fetchCmsContentForPage } from '@/helpers/cms-content-helper'; +import { render } from '@testing-library/vue'; - // Assert - expect(test.length).toBe(5); +// Mock fetchCmsContentForPage +// jest.mock('@/helpers/cms-content-helper', () => ({ +// fetchCmsContentForPage: jest.fn(), +// processIfStatements: jest.fn(), +// getBodyTextFromCms: jest.fn(), +// })); + +// // Mock our module for promises. +// jest.mock('@/helpers/layout-helper.js', () => ({ +// settleAllPromises: jest.fn(), +// })); + +describe('coverageStatement.vue', () => { + describe('Rendering', () => { + test('Should render site header', () => { + // Arrange + const { wrapper } = setupMocks({}); + + // Act + const siteHeader = wrapper.findComponent({ ref: 'siteHeader' }); + + // Assert + expect(siteHeader.exists()).toBe(true); + }), + test('Should render site footer', () => { + // Arrange + const { wrapper } = setupMocks({}); + + // Act + const footer = wrapper.findComponent({ ref: 'siteFooter' }); + + // Assert + expect(footer.exists()).toBe(true); + }); + test('Should render ITAC alert if ITAC', async () => { + // Arrange + const { wrapper } = setupMocks({}); + + // Act + await wrapper.setData({ + isVerified: true, + verifiedITAC: true, + }) + + // Assert + expect(wrapper.findComponent({ ref: 'verifiedITACAlert' }).exists()).toBe(true); + }); }) }) +const mockMixin = { + methods: { + getCmsContent: jest.fn().mockImplementation(() => ''), + setCmsContent: jest.fn(), + }, +}; + +function setupMocks() +{ + const mountOptions = getMountOptions({ + // router: { + // navigate: jest.fn() + // }, + + // global: { + // plugins: [createTestingPinia()] + // } + }); + + mountOptions.mixins = [mockMixin]; + + // settleAllPromises.mockImplementation(() => apiResponses); + // fetchCmsContentForPage.mockImplementation(() => Promise.resolve()); + + const wrapper = shallowMount(coverageStatement, mountOptions); + wrapper.vm.$refs.siteFooter.updateButtonText = jest.fn(); + return { wrapper }; +} + + +// describe ('test', () => { +// test ('dummy test', () => { +// // Arrange +// let test = "test"; + +// // Act +// test = "test2" + +// // Assert +// expect(test.length).toBe(5); +// }) +// }) + // *Testing to be completed on SSR-603 // // Components diff --git a/src/layouts/coverage-statement/coverage-statement.vue b/src/layouts/coverage-statement/coverage-statement.vue index 19b0e0ca..aaca156f 100644 --- a/src/layouts/coverage-statement/coverage-statement.vue +++ b/src/layouts/coverage-statement/coverage-statement.vue @@ -6,7 +6,7 @@ v-slot="{ meta }" @invalid-submit="onInvalidSubmit">
- +
@@ -14,7 +14,8 @@ v-slot="{ meta }"
+ class="text-center text-black" + ref="siteSubHeader">