import type { SpecPage } from '@stencil/core/testing'; import { newSpecPage } from '@stencil/core/testing'; import { ODS_MESSAGE_COLOR, ODS_MESSAGE_VARIANT, OdsMessage } from '../../src'; describe('ods-message rendering', () => { let page: SpecPage; let root: HTMLElement | undefined; async function setup(html: string): Promise { page = await newSpecPage({ components: [OdsMessage], html, }); root = page.root; } describe('color', () => { it('should be reflected', async() => { const dummyValue = 'dummy value'; await setup(`Dummy Message`); expect(root?.getAttribute('color')).toBe(dummyValue); }); it('should render with expected default value', async() => { await setup('Dummy Message'); expect(root?.getAttribute('color')).toBe(ODS_MESSAGE_COLOR.information); }); }); describe('isDismissible', () => { it('should be reflected', async() => { const isDismissibleValue = 'true'; await setup(``); expect(root?.getAttribute('is-dismissible')).toBe(isDismissibleValue); }); it('should be set by default', async() => { await setup(''); expect(root?.getAttribute('is-dismissible')).not.toBeNull(); }); }); describe('variant', () => { it('should be reflected', async() => { const dummyValue = 'dummy value'; await setup(`Dummy Message`); expect(root?.getAttribute('variant')).toBe(dummyValue); }); it('should render with expected default value', async() => { await setup('Dummy Button'); expect(root?.getAttribute('variant')).toBe(ODS_MESSAGE_VARIANT.default); }); }); });