remove vehicle banner component
This commit is contained in:
parent
1413140bef
commit
581674a322
2 changed files with 0 additions and 198 deletions
|
|
@ -1,114 +0,0 @@
|
||||||
import { shallowMount } from '@vue/test-utils';
|
|
||||||
import vehicleCategories from '@/constants/vehicle-categories.js';
|
|
||||||
import { useMainStore } from '@/store';
|
|
||||||
import { createApp } from 'vue';
|
|
||||||
import { createPinia, mapStores } from 'pinia';
|
|
||||||
|
|
||||||
import App from '@/App.vue';
|
|
||||||
import vehicleBanner from '@/iss-components/vehicle-banner/vehicle-banner.vue';
|
|
||||||
|
|
||||||
const cmsData = { VehicleBannerWidget:
|
|
||||||
{
|
|
||||||
GenericVehicleImage: 'blurred-image.jpg',
|
|
||||||
GenericVehicleImageFilePath: 'images/default-source/default-album/blurred-image.jpg',
|
|
||||||
CarUnmatchedVehicleIcon: 'car-placeholder.jpg',
|
|
||||||
TruckUnmatchedVehicleIcon: 'truck-placeholder.jpg',
|
|
||||||
VanUnmatchedVehicleIcon: 'van-placeholder.jpg',
|
|
||||||
CommercialVanUnmatchedVehicleIcon: 'commercial-placeholder.jpg',
|
|
||||||
SuvUnmatchedVehicleIcon: 'suv-placeholder.jpg'
|
|
||||||
} };
|
|
||||||
|
|
||||||
const vueApp = createApp(App);
|
|
||||||
const pinia = createPinia();
|
|
||||||
vueApp.use(pinia);
|
|
||||||
const store = useMainStore();
|
|
||||||
|
|
||||||
const mockMixin = {
|
|
||||||
|
|
||||||
methods: {
|
|
||||||
getCmsContent(widgetName, fieldName) {
|
|
||||||
return cmsData[widgetName][fieldName];
|
|
||||||
}
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
...mapStores(useMainStore),
|
|
||||||
vehicleCategories() {
|
|
||||||
return vehicleCategories;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
describe('vehicleBanner', () => {
|
|
||||||
test('renders the blurrycar image when displayGenericVehicleImage is true', async () => {
|
|
||||||
const wrapper = shallowMount(vehicleBanner, {
|
|
||||||
propsData: {
|
|
||||||
displayGenericVehicleImage: true,
|
|
||||||
cmsWidgetName: 'VehicleBannerWidget'
|
|
||||||
},
|
|
||||||
mixins: [mockMixin]
|
|
||||||
});
|
|
||||||
|
|
||||||
expect(wrapper.vm.vehicleImageToDisplay).toEqual(wrapper.vm.genericVehicleImage);
|
|
||||||
expect(wrapper.find('img').attributes('class')).toContain('vehicle-image');
|
|
||||||
wrapper.unmount();
|
|
||||||
});
|
|
||||||
|
|
||||||
test('renders expected vehicle image', async () => {
|
|
||||||
store.order.vehicle.imageUrl = 'url_to_vehicle_image';
|
|
||||||
|
|
||||||
const wrapper = shallowMount(vehicleBanner, {
|
|
||||||
propsData: {
|
|
||||||
displayGenericVehicleImage: false,
|
|
||||||
cmsWidgetName: 'VehicleBannerWidget'
|
|
||||||
},
|
|
||||||
mixins: [mockMixin]
|
|
||||||
});
|
|
||||||
|
|
||||||
expect(wrapper.vm.vehicleImageToDisplay).toEqual('url_to_vehicle_image');
|
|
||||||
expect(wrapper.find('img').attributes('class')).toContain('vehicle-image');
|
|
||||||
wrapper.unmount();
|
|
||||||
});
|
|
||||||
|
|
||||||
test('should render default car icon when imageUrl is null and category is default', async () => {
|
|
||||||
store.order.vehicle.imageUrl = null;
|
|
||||||
|
|
||||||
const wrapper = shallowMount(vehicleBanner, {
|
|
||||||
propsData: {
|
|
||||||
displayGenericVehicleImage: false,
|
|
||||||
cmsWidgetName: 'VehicleBannerWidget'
|
|
||||||
},
|
|
||||||
mixins: [mockMixin]
|
|
||||||
});
|
|
||||||
|
|
||||||
const iconUrl = wrapper.vm.vehicleImageToDisplay;
|
|
||||||
|
|
||||||
expect(iconUrl).toEqual('car-placeholder.jpg');
|
|
||||||
wrapper.unmount();
|
|
||||||
});
|
|
||||||
|
|
||||||
const params = [['CAR', 'car-placeholder.jpg'],
|
|
||||||
['TRUCK', 'truck-placeholder.jpg'],
|
|
||||||
['VAN', 'van-placeholder.jpg'],
|
|
||||||
['COMMERCIAL VAN', 'commercial-placeholder.jpg'],
|
|
||||||
['SUV', 'suv-placeholder.jpg'],
|
|
||||||
['OTHER', 'car-placeholder.jpg']];
|
|
||||||
|
|
||||||
test.each(params)('renders correct icon when imageUrl is not populated for %s and %s', async (category, expectedIcon) => {
|
|
||||||
store.order.vehicle.imageUrl = null;
|
|
||||||
store.order.vehicle.category = category;
|
|
||||||
|
|
||||||
const wrapper = shallowMount(vehicleBanner, {
|
|
||||||
propsData: {
|
|
||||||
displayGenericVehicleImage: false,
|
|
||||||
cmsWidgetName: 'VehicleBannerWidget'
|
|
||||||
},
|
|
||||||
mixins: [mockMixin]
|
|
||||||
});
|
|
||||||
|
|
||||||
const vehicleIcon = wrapper.vm.getUnmatchedVehicleIcon();
|
|
||||||
|
|
||||||
expect(vehicleIcon).toEqual(expectedIcon);
|
|
||||||
expect(wrapper.find('img').attributes('class')).toContain('vehicle-image');
|
|
||||||
wrapper.unmount();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
@ -1,84 +0,0 @@
|
||||||
<template>
|
|
||||||
<div class="vehicle_banner text-center">
|
|
||||||
<img
|
|
||||||
class="vehicle-image img-fluid"
|
|
||||||
:src="vehicleImageToDisplay"
|
|
||||||
alt="" />
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
name: 'vehicle-banner',
|
|
||||||
props: {
|
|
||||||
displayGenericVehicleImage: {
|
|
||||||
type: Boolean,
|
|
||||||
required: true
|
|
||||||
},
|
|
||||||
cmsWidgetName: String
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
vehicleImageToDisplay() {
|
|
||||||
if (this.displayGenericVehicleImage) {
|
|
||||||
return this.genericVehicleImage;
|
|
||||||
}
|
|
||||||
|
|
||||||
const imageUrl = (this.mainStore.hasSubmittedOrder())
|
|
||||||
? this.mainStore.getSubmittedOrder().vehicle.imageUrl
|
|
||||||
: this.mainStore.order.vehicle.imageUrl;
|
|
||||||
|
|
||||||
if (!imageUrl || imageUrl === 'NULL') {
|
|
||||||
return this.getUnmatchedVehicleIcon();
|
|
||||||
}
|
|
||||||
|
|
||||||
return imageUrl;
|
|
||||||
},
|
|
||||||
genericVehicleImage() {
|
|
||||||
return this.getCmsContent(this.cmsWidgetName, 'GenericVehicleImage');
|
|
||||||
},
|
|
||||||
carUnmatchedVehicleIcon() {
|
|
||||||
return this.getCmsContent(this.cmsWidgetName, 'CarUnmatchedVehicleIcon');
|
|
||||||
},
|
|
||||||
truckUnmatchedVehicleIcon() {
|
|
||||||
return this.getCmsContent(this.cmsWidgetName, 'TruckUnmatchedVehicleIcon');
|
|
||||||
},
|
|
||||||
vanUnmatchedVehicleIcon() {
|
|
||||||
return this.getCmsContent(this.cmsWidgetName, 'VanUnmatchedVehicleIcon');
|
|
||||||
},
|
|
||||||
commercialUnmatchedVehicleIcon() {
|
|
||||||
return this.getCmsContent(this.cmsWidgetName, 'CommercialVanUnmatchedVehicleIcon');
|
|
||||||
},
|
|
||||||
suvUnmatchedVehicleIcon() {
|
|
||||||
return this.getCmsContent(this.cmsWidgetName, 'SuvUnmatchedVehicleIcon');
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
getUnmatchedVehicleIcon() {
|
|
||||||
const category = this.mainStore.getSubmittedOrder()?.vehicle.category ?? this.mainStore.order.vehicle.category;
|
|
||||||
switch (category) {
|
|
||||||
case this.vehicleCategories.CAR:
|
|
||||||
return this.carUnmatchedVehicleIcon;
|
|
||||||
case this.vehicleCategories.SUV:
|
|
||||||
return this.suvUnmatchedVehicleIcon;
|
|
||||||
case this.vehicleCategories.TRUCK:
|
|
||||||
return this.truckUnmatchedVehicleIcon;
|
|
||||||
case this.vehicleCategories.VAN:
|
|
||||||
return this.vanUnmatchedVehicleIcon;
|
|
||||||
case this.vehicleCategories.COMMERCIALVAN:
|
|
||||||
return this.commercialUnmatchedVehicleIcon;
|
|
||||||
default:
|
|
||||||
return this.carUnmatchedVehicleIcon;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
.vehicle-image {
|
|
||||||
max-width: 290px;
|
|
||||||
object-fit: cover;
|
|
||||||
width: 100%;
|
|
||||||
height: 132px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
Loading…
Reference in a new issue