import { Component } from '../src/component.js';
import { RefreshState, $ } from '../src/dom.js';
export async function testMerging() {
console.log('Testing complex class/style merging (DataTable Resizer scenario)...');
// 1. Resizer definition from @base
Component.register('RESIZER-REAL', container => {
container.isVertical = true;
}, document.createRange().createContextualFragment(`
`).firstElementChild);
// 2. Resizer usage from @dataTable
const testContainer = document.createElement('div');
testContainer.id = 'merging-test-root';
testContainer.innerHTML = `
`;
document.body.appendChild(testContainer);
RefreshState(testContainer);
// Wait for bindings
await new Promise(r => setTimeout(r, 50));
const instance = $('#resizer-instance');
const classes = Array.from(instance.classList);
console.log('Final ClassList:', classes);
console.log('Final Style:', instance.getAttribute('style'));
// Verify static class merging
if (!classes.includes('ins-static')) throw new Error('Missing ins-static');
if (!classes.includes('tpl-static')) throw new Error('Missing tpl-static');
// Verify style merging (Instance wins on dynamic $style, but both are preserved in logic)
const style = instance.getAttribute('style');
if (!style.includes('color:blue')) throw new Error('Missing instance dynamic style');
console.log('Merging test passed');
return true;
}