Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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‎

Lines changed: 3 additions & 5 deletions
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‎

Lines changed: 8 additions & 3 deletions
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‎

Lines changed: 6 additions & 2 deletions
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‎

Lines changed: 1 addition & 0 deletions
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)

AltStyle によって変換されたページ (->オリジナル) /