|
@@ -4,6 +4,7 @@ import {
|
|
|
Suspense,
|
|
Suspense,
|
|
|
Teleport,
|
|
Teleport,
|
|
|
createStaticVNode,
|
|
createStaticVNode,
|
|
|
|
|
+ defineCustomElement,
|
|
|
h,
|
|
h,
|
|
|
nextTick,
|
|
nextTick,
|
|
|
reactive,
|
|
reactive,
|
|
@@ -381,4 +382,26 @@ describe('useCssVars', () => {
|
|
|
expect((c as HTMLElement).style.getPropertyValue(`--color`)).toBe('red')
|
|
expect((c as HTMLElement).style.getPropertyValue(`--color`)).toBe('red')
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
|
|
+
|
|
|
|
|
+ // #8826
|
|
|
|
|
+ test('with custom element', async () => {
|
|
|
|
|
+ const state = reactive({ color: 'red' })
|
|
|
|
|
+ const container = document.createElement('div')
|
|
|
|
|
+ const App = defineCustomElement({
|
|
|
|
|
+ styles: [`div { color: red; }`],
|
|
|
|
|
+ setup() {
|
|
|
|
|
+ useCssVars(() => state)
|
|
|
|
|
+ return () => {
|
|
|
|
|
+ return h('div', 'hello')
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ })
|
|
|
|
|
+ customElements.define('css-vars-ce', App)
|
|
|
|
|
+ container.innerHTML = `<css-vars-ce></css-vars-ce>`
|
|
|
|
|
+ document.body.appendChild(container)
|
|
|
|
|
+ await nextTick()
|
|
|
|
|
+ expect(container.innerHTML).toBe(
|
|
|
|
|
+ `<css-vars-ce style="--color: red;"></css-vars-ce>`,
|
|
|
|
|
+ )
|
|
|
|
|
+ })
|
|
|
})
|
|
})
|