Skip to content

Commit 6601b6a

Browse files
committed
feat(runtime-utils): allow mountSuspended to work with use css modules component
1 parent c4638e4 commit 6601b6a

File tree

3 files changed

+34
-1
lines changed

3 files changed

+34
-1
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<template>
2+
<div>
3+
Css Module
4+
<span
5+
id="s1"
6+
:class="$style.class1"
7+
/>
8+
<span
9+
id="s2"
10+
:class="$style.class1"
11+
/>
12+
<span id="s3" />
13+
</div>
14+
</template>
15+
16+
<style module>
17+
.class1 {
18+
color: red;
19+
}
20+
.class2 {
21+
color: blue;
22+
}
23+
</style>

examples/app-vitest-full/tests/nuxt/mount-suspended.spec.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import ComponentWithAttrs from '~/components/ComponentWithAttrs.vue'
2525
import ComponentWithReservedProp from '~/components/ComponentWithReservedProp.vue'
2626
import ComponentWithReservedState from '~/components/ComponentWithReservedState.vue'
2727
import ComponentWithImports from '~/components/ComponentWithImports.vue'
28+
import ComponentWithCssVar from '~/components/ComponentWithCssVar.vue'
2829
import GenericStateComponent from '~/components/GenericStateComponent.vue'
2930

3031
import { BoundAttrs } from '#components'
@@ -537,4 +538,12 @@ describe('watcher cleanup validation', () => {
537538

538539
expect(watcherCallCount).toBe(1)
539540
})
541+
542+
it('mounts with use css modules component', async () => {
543+
const component = await mountSuspended(ComponentWithCssVar)
544+
expect(component.text()).toBe('Css Module')
545+
expect(component.find('#s1').classes()).toHaveLength(1)
546+
expect(component.find('#s2').classes()).toHaveLength(1)
547+
expect(component.find('#s3').classes()).toHaveLength(0)
548+
})
540549
})

src/runtime-utils/mount.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ export async function mountSuspended<T>(
6666
const vueApp = tryUseNuxtApp()?.vueApp
6767
// @ts-expect-error untyped global __unctx__
6868
|| globalThis.__unctx__.get('nuxt-app').tryUse().vueApp
69-
const { render, setup, data, computed, methods } = component as DefineComponent<Record<string, unknown>, Record<string, unknown>>
69+
const { render, setup, data, computed, methods, ...componentRest } = component as DefineComponent<Record<string, unknown>, Record<string, unknown>>
7070

7171
let setupContext: SetupContext
7272
let setupState: Record<string, unknown>
@@ -144,6 +144,7 @@ export async function mountSuspended<T>(
144144
(resolve) => {
145145
const vm = mount(
146146
{
147+
__cssModules: componentRest.__cssModules,
147148
setup: (props: Record<string, unknown>, ctx: SetupContext) => {
148149
setupContext = ctx
149150

0 commit comments

Comments
 (0)