Skip to content

Commit 4746ff2

Browse files
committed
fix(nuxt): fix skipHydrate payload plugin and add test
1 parent 4928109 commit 4746ff2

File tree

4 files changed

+15
-5
lines changed

4 files changed

+15
-5
lines changed

packages/nuxt/__tests__/nuxt.spec.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,9 @@ describe('works with nuxt', async () => {
3434
expect(html).toContain('Count: 101')
3535
})
3636

37-
it.todo('drop state that is marked with skipHydrate', async () => {
37+
it('drops state that is marked with skipHydrate', async () => {
3838
const html = await $fetch('/skip-hydrate')
39-
// TODO:
39+
expect(html).not.toContain('I should not be serialized or hydrated')
40+
expect(html).toContain('skipHydrate-wrapped state is correct')
4041
})
4142
})
Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
<script lang="ts" setup>
22
const store = useWithSkipHydrateStore()
3+
const skipHydrateState = computed(() => {
4+
return store.skipped?.text === 'I should not be serialized or hydrated'
5+
? 'skipHydrate-wrapped state is correct'
6+
: 'skipHydrate-wrapped state is incorrect'
7+
})
38
</script>
49

510
<template>
611
<h2>skipHydrate() test</h2>
7-
<pre>{{ store.skipped }}</pre>
12+
<p>{{ skipHydrateState }}</p>
813
</template>
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"extends": "./.nuxt/tsconfig.json"
3+
}

packages/nuxt/src/runtime/payload-plugin.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,10 @@ import { shouldHydrate } from 'pinia'
1111
const payloadPlugin = definePayloadPlugin(() => {
1212
definePayloadReducer(
1313
'skipHydrate',
14-
(data: unknown) => !shouldHydrate(data) && undefined
14+
// We need to return something truthy to be treated as a match
15+
(data: unknown) => !shouldHydrate(data) && 1
1516
)
16-
definePayloadReviver('skipHydrate', (data: undefined) => data)
17+
definePayloadReviver('skipHydrate', (_data: 1) => undefined)
1718
})
1819

1920
export default payloadPlugin

0 commit comments

Comments
 (0)