/** @jsxImportSource preact */
import {afterEach, describe, expect, it} from 'vitest';
import {BoxWidget} from './box-widget';
import type {WidgetPanel} from './widget-containers';
const panel: WidgetPanel = {
id: 'box-panel',
title: 'Box Panel',
content:
box content
};
afterEach(() => {
document.body.innerHTML = '';
});
describe('BoxWidget', () => {
it('renders title and direct panel content', () => {
const root = document.createElement('div');
document.body.appendChild(root);
const widget = new BoxWidget({
id: 'box-widget-basic',
title: 'Widget Panels',
panel
});
widget.onRenderHTML(root);
expect(root.textContent).toContain('Widget Panels');
expect(root.textContent).toContain('box content');
});
it('normalizes width configuration and placement props', () => {
const root = document.createElement('div');
document.body.appendChild(root);
const widget = new BoxWidget({
id: 'box-widget-width',
panel,
placement: 'bottom-right',
widthPx: 420
});
widget.onRenderHTML(root);
const section = root.querySelector('section');
expect(widget.placement).toBe('bottom-right');
expect(section?.style.width).toBe('420px');
});
});