Skip to content

Commit 202aefe

Browse files
committed
Trying things (very much WIP)
1 parent d6782c3 commit 202aefe

File tree

4 files changed

+18
-10
lines changed

4 files changed

+18
-10
lines changed

src/__tests__/fixtures/Rerender.svelte

+3-5
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
1+
<svelte:options runes={true} />
2+
13
<script>
24
import { onDestroy, onMount } from 'svelte'
35
4-
export let onExecuted = undefined
5-
export let onMounted = undefined
6-
export let onDestroyed = undefined
7-
8-
export let name = ''
6+
let { onExecuted, onMounted, onDestroyed, name } = $props()
97
108
onExecuted?.()
119

src/__tests__/rerender.test.js renamed to src/__tests__/rerender.test.svelte.js

+8-3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
*/
44
import { describe, expect, test, vi } from 'vitest'
55
import { writable } from 'svelte/store'
6+
import { tick } from 'svelte'
67

78
import { act, render, waitFor } from '..'
89
import Comp from './fixtures/Rerender.svelte'
@@ -11,8 +12,10 @@ test('mounts new component successfully', async () => {
1112
const onMounted = vi.fn()
1213
const onDestroyed = vi.fn()
1314

15+
const props = $state({ name: 'World 1', onMounted, onDestroyed })
16+
1417
const { getByTestId, rerender } = render(Comp, {
15-
props: { name: 'World 1', onMounted, onDestroyed },
18+
props,
1619
})
1720

1821
const expectToRender = (content) =>
@@ -25,8 +28,10 @@ test('mounts new component successfully', async () => {
2528

2629
console.warn = vi.fn()
2730

28-
rerender({ props: { name: 'World 2' } })
29-
await expectToRender('Hello World 2!')
31+
console.log(props)
32+
props.name = 'World 2'
33+
await tick()
34+
await waitFor(() => expectToRender('Hello World 2!'))
3035
expect(onDestroyed).not.toHaveBeenCalled()
3136

3237
expect(console.warn).toHaveBeenCalledOnce()

src/pure.js

+6-2
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ const render = (
5656
options = { target, ...checkProps(options) }
5757

5858
const component = IS_SVELTE_5
59-
? Svelte.mount(ComponentConstructor, options)
59+
? Svelte.mount(ComponentConstructor, options, options.props ?? {})
6060
: new ComponentConstructor(options)
6161

6262
componentCache.add(component)
@@ -85,7 +85,11 @@ const render = (
8585
)
8686
props = props.props
8787
}
88-
component.$set(props)
88+
if (IS_SVELTE_5) {
89+
// TODO
90+
} else {
91+
component.$set(props)
92+
}
8993
await Svelte.tick()
9094
},
9195
unmount: () => {

vite.config.js

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ export default defineConfig(({ mode }) => ({
1313
},
1414
test: {
1515
environment: 'jsdom',
16+
include: '**/*.{test,spec}(.svelte)?.?(c|m)[jt]s?(x)',
1617
setupFiles: ['./src/__tests__/_vitest-setup.js'],
1718
mockReset: true,
1819
unstubGlobals: true,

0 commit comments

Comments
 (0)