diff --git a/src/components/mediaObject/__tests__/CdrMediaObject.spec.js b/src/components/mediaObject/__tests__/CdrMediaObject.spec.js index 9d7c9f2ee..16e852509 100644 --- a/src/components/mediaObject/__tests__/CdrMediaObject.spec.js +++ b/src/components/mediaObject/__tests__/CdrMediaObject.spec.js @@ -1,14 +1,101 @@ import { mount } from '../../../../test/vue-jest-style-workaround.js'; import CdrMediaObject from '../CdrMediaObject.vue'; +import CdrSurface from '../../surface/CdrSurface.vue'; + +export const examples = [ + { + label: 'default: media position left, media width 1fr, media height auto, align start', + props: {}, + }, + { + label: 'content padding', + props: { contentPadding: 'two-x' }, + }, + { + label: 'content padding dynamic', + props: { contentPadding: { xs: 'one-x', sm: 'one-x', md: 'three-x', lg: 'three-x' } }, + }, + { + label: 'media width 100px', + props: { mediaWidth: '100px' }, + }, + { + label: 'media width dynamic', + props: { mediaWidth: { xs: '100px', sm: '100px', md: '300px', lg: '300px' } }, + }, + { + label: 'align center', + props: { mediaWidth: 'auto', align: 'center' }, + }, + { + label: 'dynamic align', + props: { mediaWidth: 'auto', align: { xs: 'center', sm: 'center', md: 'end', lg: 'start' } }, + }, + { + label: 'cover', + props: { mediaWidth: '125px', cover: true }, + }, + { + label: 'media position right', + props: { + mediaPosition: 'right', + }, + }, + { + label: 'media position dynamic', + props: { + mediaPosition: { xs: 'top', sm: 'bottom', md: 'left', lg: 'right' }, + }, + }, + { + label: 'media bottom', + props: { + mediaPosition: 'bottom', + }, + }, + { + label: 'media top, align center', + props: { + mediaPosition: 'top', + align: 'center', + }, + }, + { + label: 'media position dynamic, media height dynamic, media width dynamic', + props: { + mediaWidth: { xs: '100%', sm: '100%', md: '50%', lg: '75%' }, + mediaHeight: { xs: '100px', sm: '200px', md: 'auto', lg: 'auto' }, + mediaPosition: { xs: 'top', sm: 'top', md: 'left', lg: 'left' }, + cover: true, + }, + }, + { + label: 'overlay, row align, column align, content configured independently to 50% width', + props: { + overlay: true, + overlayColumnAlign: 'end', + overlayRowAlign: 'center', + }, + }, + { + label: 'pass down props to Layout and Surface', + props: { + background: 'brand-spruce', + as: CdrSurface, + }, + }, +]; describe('CdrMediaObject', () => { - describe('snapshot test', () => { - let wrapper; - beforeEach(() => { - wrapper = mount(CdrMediaObject, { props: { checked: false } }); - }); - it('renders correctly', () => { - expect(wrapper.element).toMatchSnapshot(); + describe('snapshot tests', () => { + examples.forEach(({ label, props }) => { + it(label, () => { + const wrapper = mount(CdrMediaObject, { + props, + slots: { content: 'Some content', media: 'Some media' }, + }); + expect(wrapper.element).toMatchSnapshot(); + }); }); }); }); diff --git a/src/components/mediaObject/__tests__/__snapshots__/CdrMediaObject.spec.js.snap b/src/components/mediaObject/__tests__/__snapshots__/CdrMediaObject.spec.js.snap index 99e630462..686e04d96 100644 --- a/src/components/mediaObject/__tests__/__snapshots__/CdrMediaObject.spec.js.snap +++ b/src/components/mediaObject/__tests__/__snapshots__/CdrMediaObject.spec.js.snap @@ -1,18 +1,399 @@ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`CdrMediaObject > snapshot test > renders correctly 1`] = ` +exports[`CdrMediaObject > snapshot tests > align center 1`] = `
+ + +
+ + + Some media + +
+
+ + + Some content + +
+ +
+`; + +exports[`CdrMediaObject > snapshot tests > content padding 1`] = ` +
+ + +
+ + + Some media + +
+
+ + + Some content + +
+ +
+`; + +exports[`CdrMediaObject > snapshot tests > content padding dynamic 1`] = ` +
+ + +
+ + + Some media + +
+
+ + + Some content + +
+ +
+`; + +exports[`CdrMediaObject > snapshot tests > cover 1`] = ` +
+ + +
+ + + Some media + +
+
+ + + Some content + +
+ +
+`; + +exports[`CdrMediaObject > snapshot tests > default: media position left, media width 1fr, media height auto, align start 1`] = ` +
+ + +
+ + + Some media + +
+
+ + + Some content + +
+ +
+`; + +exports[`CdrMediaObject > snapshot tests > dynamic align 1`] = ` +
+ + +
+ + + Some media + +
+
+ + + Some content + +
+ +
+`; + +exports[`CdrMediaObject > snapshot tests > media bottom 1`] = ` +
+ + +
+ + + Some media + +
+
+ + + Some content + +
+ +
+`; + +exports[`CdrMediaObject > snapshot tests > media position dynamic 1`] = ` +
+ + +
+ + + Some media + +
+
+ + + Some content + +
+ +
+`; + +exports[`CdrMediaObject > snapshot tests > media position dynamic, media height dynamic, media width dynamic 1`] = ` +
+ + +
+ + + Some media + +
+
+ + + Some content + +
+ +
+`; + +exports[`CdrMediaObject > snapshot tests > media position right 1`] = ` +
+ + +
+ + + Some media + +
+
+ + + Some content + +
+ +
+`; + +exports[`CdrMediaObject > snapshot tests > media top, align center 1`] = ` +
+ + +
+ + + Some media + +
+
+ + + Some content + +
+ +
+`; + +exports[`CdrMediaObject > snapshot tests > media width 100px 1`] = ` +
+ + +
+ + + Some media + +
+
+ + + Some content + +
+ +
+`; + +exports[`CdrMediaObject > snapshot tests > media width dynamic 1`] = ` +
+ + +
+ + + Some media + +
+
+ + + Some content + +
+ +
+`; + +exports[`CdrMediaObject > snapshot tests > overlay, row align, column align, content configured independently to 50% width 1`] = ` +
+ + +
+ + + Some media + +
+
+ + + Some content + +
+ +
+`; + +exports[`CdrMediaObject > snapshot tests > pass down props to Layout and Surface 1`] = ` +
+ +
+ Some media
snapshot test > renders correctly 1`] = ` > + Some content
+
`; diff --git a/src/components/mediaObject/examples/MediaObject.vue b/src/components/mediaObject/examples/MediaObject.vue index fbe9d8e73..59b8f9e9d 100644 --- a/src/components/mediaObject/examples/MediaObject.vue +++ b/src/components/mediaObject/examples/MediaObject.vue @@ -137,7 +137,6 @@ const examples: MediaObjectExample[] = [ { label: 'pass down props to Layout and Surface', props: { - gap: 'two-x', background: 'brand-spruce', }, flags: ['color-inverse'],