import { tmpl, domBackend, composedBackend, shadowBackend } from '../base/env'
import * as glassEasel from '../../src'
const getTmplDevArgs = (n: glassEasel.Node) =>
(n as glassEasel.Node & { _$wxTmplDevArgs: glassEasel.template.TmplDevArgs })._$wxTmplDevArgs
const testCases = (testBackend: glassEasel.GeneralBackendContext) => {
test('attribute list', () => {
const def = glassEasel.registerElement({
options: {
dynamicSlots: true,
},
template: tmpl(`
`),
})
const elem = glassEasel.Component.createWithContext('root', def.general(), testBackend)
const div = elem.getShadowRoot()!.getElementById('a')!
expect(getTmplDevArgs(div).A).toStrictEqual([':id', ':slot', ':class', ':style', 'hidden'])
const slot = div.childNodes[0]!
expect(getTmplDevArgs(slot).A).toStrictEqual([':name', 'v'])
})
}
describe('event bindings (DOM backend)', () => testCases(domBackend))
describe('event bindings (shadow backend)', () => testCases(shadowBackend))
describe('event bindings (composed backend)', () => testCases(composedBackend))