Merge pull request #14 from Safelite/feature/Digital/SSR-37

Feature/digital/ssr 37
This commit is contained in:
Jason Wheeler 2022-10-24 09:24:06 -04:00 committed by GitHub
commit 4cd32c8cff
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 93 additions and 6 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

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

View file

@ -1,6 +1,7 @@
<template> <template>
<div> <div>
<div class="fade-on-route-transition"> <div class="fade-on-route-transition">
<siteHeader cmsWidgetName="Header"/>
<navButton type="button" text="back" :scenario="this.navigationScenarios.CLICKED_BACK"></navButton> <navButton type="button" text="back" :scenario="this.navigationScenarios.CLICKED_BACK"></navButton>
<p>Vehicle Year Placeholder</p> <p>Vehicle Year Placeholder</p>
<input type="text" v-model="year"/> <input type="text" v-model="year"/>
@ -15,7 +16,8 @@
</template> </template>
<script> <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 { fetchCmsContentForPage } from "@/helpers/cms-content-helper";
import { settleAllPromises } from "@/helpers/layout-helper"; import { settleAllPromises } from "@/helpers/layout-helper";
import textboxQuestion from "@/common-components/textbox-question/textbox-question"; import textboxQuestion from "@/common-components/textbox-question/textbox-question";
@ -73,7 +75,8 @@
}, },
components: { components: {
navButton, navButton,
textboxQuestion textboxQuestion,
siteHeader
}, },
} }
</script> </script>

View file

@ -1,6 +1,7 @@
<template> <template>
<div> <div>
<div class="fade-on-route-transition"> <div class="fade-on-route-transition">
<siteHeader cmsWidgetName="Header"/>
<p>Welcome Page Placeholder</p> <p>Welcome Page Placeholder</p>
<br /> <br />
<navButton type="button" text="Next" :scenario="this.navigationScenarios.CLICKED_FORWARD"></navButton> <navButton type="button" text="Next" :scenario="this.navigationScenarios.CLICKED_FORWARD"></navButton>
@ -10,12 +11,36 @@
</template> </template>
<script> <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 { export default {
name: "welcome-page", name: "welcome-page",
components: { navButton }, 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> </script>
<style scoped> <style scoped>