DigitalConsumer.FixMyGlass/src/commonComponents/vehicleBanner/vehicleBanner.spec.js
2021-11-19 10:11:05 -05:00

52 lines
1.7 KiB
JavaScript

import { mount, enableAutoUnmount, flushPromises } from '@vue/test-utils';
import vehicleBanner from './vehicleBanner';
import { nextTick } from 'vue';
import { getMountOptions } from "@/helpers/unit-test-helper.js"
describe('vehicleBanner', () => {
// Arrange
const mountOptions = getMountOptions({
actionList: [
{
actionName: "getMockPageData",
data: {
imgData: ""
}
}
]
});
enableAutoUnmount(afterEach)
// Act
const wrapper = mount(vehicleBanner, {
...mountOptions
});
// Assert
it('renders the blurrycar image when no vehicleImageSrc is found', () => {
expect(wrapper.find('img').attributes('class')).toContain('blurrycar');
});
it('renders the blurrycar image when isBlurred is true', async () => {
await wrapper.setData("test string");
await wrapper.setProps({ isBlurred: true });
// timeout needed for image call to have time to return with a vehicleSrcImage
setTimeout(() => {
expect(wrapper.find('img').attributes('class')).toContain('blurrycar');
}, 500);
});
it('renders an actual car image when vehicleImageSrc is found and isBlurred is false', async () => {
await wrapper.setData("test string");
await wrapper.setProps({ isBlurred: false});
await flushPromises(); // including this doesn't appear to matter
await nextTick(); // including this doesn't appear to matter
// timeout needed for image call to have time to return with a vehicleSrcImage
setTimeout(() => {
expect(wrapper.find('img').attributes('class')).not.toContain('blurrycar');
}, 500);
});
});