completed header component

This commit is contained in:
Jason Wheeler 2022-10-21 15:06:26 -04:00
parent 34daf91e40
commit b6071e953c
4 changed files with 63 additions and 12 deletions

View file

@ -0,0 +1,25 @@
import siteHeader from "@/common-components/site-header/site-header";
import { shallowMount } from "@vue/test-utils";
describe("site-header", () => {
test("renders the logo image", () => {
const wrapper = shallowMount(siteHeader, {
setProps: {
cmsWidgetName: "header",
},
mixins: [mockMixin]
});
expect(wrapper.find("img")).toBeTruthy();
wrapper.unmount();
});
});
const mockMixin = {
methods: {
getCmsContent: jest.fn()
}
}

View file

@ -1,21 +1,23 @@
<template>
<div class="headerContainer">
<img class="siteHeader" :src="url" :alt="altText" />
<img id="siteHeaderImage" :src="imageSrc" :alt="altText" />
</div>
</template>
<script>
export default({
name: "siteHeader",
props: {
cmsWidgetName: String,
},
computed: {
url()
imageSrc()
{
return this.getCmsContent("Header", "LogoImageURL")
return this.getCmsContent(this.cmsWidgetName, "LogoImageURL")
},
altText()
{
return this.getCmsContent("Header", "AltText")
return this.getCmsContent(this.cmsWidgetName, "AltText")
}
}
})
@ -26,8 +28,7 @@
.headerContainer{
width: 100%;
margin: 16px auto;
text-align: center;
text-align: center
}
</style>

View file

@ -1,7 +1,7 @@
<template>
<div>
<div class="fade-on-route-transition">
<siteHeader />
<siteHeader cmsWidgetName="Header"/>
<navButton type="button" text="back" :scenario="this.navigationScenarios.CLICKED_BACK"></navButton>
<p>Vehicle Year Placeholder</p>
<input type="text" v-model="year"/>

View file

@ -1,6 +1,7 @@
<template>
<div>
<div class="fade-on-route-transition">
<siteHeader cmsWidgetName="Header"/>
<p>Welcome Page Placeholder</p>
<br />
<navButton type="button" text="Next" :scenario="this.navigationScenarios.CLICKED_FORWARD"></navButton>
@ -10,12 +11,36 @@
</template>
<script>
import navButton from "@/common-components/nav-button/nav-button.vue";
import navButton from "@/common-components/nav-button/nav-button";
import siteHeader from '@/common-components/site-header/site-header';
import { fetchCmsContentForPage } from "@/helpers/cms-content-helper";
import { settleAllPromises } from "@/helpers/layout-helper";
export default {
name: "welcome-page",
components: { navButton },
}
name: "welcome-page",
components: { navButton, siteHeader },
async beforeRouteEnter(to, from, next)
{
// Call APIs
const cmsContentPromise = fetchCmsContentForPage(to.query.issPage);
// Settle promises and get results
const promiseResultMap = [
{
resultKey: "cmsContent",
promise: cmsContentPromise,
},
];
//use resultMap to populate layout content.
let resultMap = await settleAllPromises(promiseResultMap);
next((vm) => {
vm.setCmsContent(resultMap.cmsContent);
});
},
}
</script>
<style scoped>