import { afterEach, describe, expect, test } from 'vitest'; import { mount } from './test-utils'; import '../src/If'; import { state } from '../src/signals'; describe('If.tsx', () => { afterEach(() => { document.body.innerHTML = ''; }); describe('props value', () => { test('does render slot when value is true', () => { const $component = mount(
); const $el = $component.shadowRoot.querySelector('slot'); expect($el).toBeTruthy(); }); test('does not render slot when value is false', () => { const $component = mount(
); const $el = $component.querySelector('slot'); expect($el).toBeFalsy(); }); }); describe('props value reactivity', () => { test('does render slot when value changes to true', () => { const value = state(false); const $component = mount(
); let $el = $component.shadowRoot.querySelector('slot'); expect($el).toBeFalsy(); value.set(true); $el = $component.shadowRoot.querySelector('slot'); expect($el).toBeTruthy(); }); test('does not render slot when value is false', () => { const value = state(true); const $component = mount(
); let $el = $component.shadowRoot.querySelector('slot'); expect($el).toBeTruthy(); value.set(false); $el = $component.shadowRoot.querySelector('slot'); expect($el).toBeFalsy(); }); }); });