From d4718e0755eac1e505292d0fb7cfd8682eca3048 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Wed, 22 May 2024 17:08:02 -0400 Subject: [PATCH 1/2] playground: better console (#11719) * remove unused code * better console * simplify * simplify * fix * fix * fix * fix console.table * more table tweaks * improve table styles * tweaks * bump svelte-json-tree * tweak group styles * level -> command * remove stack from assertions * nicer style for duplicates * styles * tidy/simplify * tweaks * tweaks * tweaks * fixes * better stack traces (albeit not sourcemapped yet) --- pnpm-lock.yaml | 170 ++++----- sites/svelte-5-preview/package.json | 2 +- .../src/lib/Output/ReplProxy.js | 63 ++-- .../src/lib/Output/Viewer.svelte | 56 +-- .../src/lib/Output/console/Console.svelte | 48 ++- .../src/lib/Output/console/ConsoleLine.svelte | 219 ++++++------ .../lib/Output/console/ConsoleTable.svelte | 117 +++++-- .../src/lib/Output/console/console.d.ts | 15 +- .../src/lib/Output/proxy.d.ts | 8 +- .../src/lib/Output/srcdoc/index.html | 330 ++++++++---------- 10 files changed, 524 insertions(+), 504 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3eef183e05..831ab89d1f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,7 +16,7 @@ importers: version: 2.27.1 '@sveltejs/eslint-config': specifier: ^7.0.1 - version: 7.0.1(@stylistic/eslint-plugin-js@1.8.0)(eslint-config-prettier@9.1.0)(eslint-plugin-svelte@2.38.0)(eslint-plugin-unicorn@52.0.0)(eslint@9.0.0)(typescript-eslint@7.6.0)(typescript@5.3.3) + version: 7.0.1(@stylistic/eslint-plugin-js@2.1.0)(eslint-config-prettier@9.1.0)(eslint-plugin-svelte@2.39.0)(eslint-plugin-unicorn@53.0.0)(eslint@9.0.0)(typescript-eslint@7.6.0)(typescript@5.3.3) '@svitejs/changesets-changelog-github-compact': specifier: ^1.1.0 version: 1.1.0 @@ -131,7 +131,7 @@ importers: version: 0.19.11 knip: specifier: ^4.2.1 - version: 4.2.1(@types/node@20.12.7)(typescript@5.4.5) + version: 4.2.1(@types/node@20.12.12)(typescript@5.4.5) rollup: specifier: ^4.9.5 version: 4.9.5 @@ -221,7 +221,7 @@ importers: version: 0.0.15(@codemirror/autocomplete@6.12.0)(@codemirror/commands@6.3.3)(@codemirror/language@6.10.1)(@codemirror/lint@6.5.0)(@codemirror/search@6.5.6)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0) '@replit/codemirror-lang-svelte': specifier: ^6.0.0 - version: 6.0.0(@codemirror/autocomplete@6.12.0)(@codemirror/lang-css@6.2.1)(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.1)(@codemirror/language@6.10.1)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0)(@lezer/common@1.2.1)(@lezer/highlight@1.2.0)(@lezer/javascript@1.4.15)(@lezer/lr@1.4.0) + version: 6.0.0(@codemirror/autocomplete@6.12.0)(@codemirror/lang-css@6.2.1)(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.1)(@codemirror/language@6.10.1)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0)(@lezer/common@1.2.1)(@lezer/highlight@1.2.0)(@lezer/javascript@1.4.16)(@lezer/lr@1.4.0) '@rich_harris/svelte-split-pane': specifier: ^1.1.3 version: 1.1.3(svelte@packages+svelte) @@ -244,7 +244,7 @@ importers: specifier: ^2.0.2 version: 2.0.2 svelte-json-tree: - specifier: ^2.1.0 + specifier: ^2.2.0 version: 2.2.0(svelte@packages+svelte) zimmerframe: specifier: ^1.1.1 @@ -312,7 +312,7 @@ importers: version: 2.39.3 '@sveltejs/repl': specifier: 0.6.0 - version: 0.6.0(@codemirror/lang-html@6.4.9)(@codemirror/search@6.5.6)(@lezer/common@1.2.1)(@lezer/javascript@1.4.15)(@lezer/lr@1.4.0)(@sveltejs/kit@2.4.3)(svelte@4.2.9) + version: 0.6.0(@codemirror/lang-html@6.4.9)(@codemirror/search@6.5.6)(@lezer/common@1.2.1)(@lezer/javascript@1.4.16)(@lezer/lr@1.4.0)(@sveltejs/kit@2.4.3)(svelte@4.2.9) cookie: specifier: ^0.6.0 version: 0.6.0 @@ -807,11 +807,11 @@ packages: dependencies: '@codemirror/autocomplete': 6.16.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.3)(@lezer/common@1.2.1) '@codemirror/language': 6.10.1 - '@codemirror/lint': 6.7.0 + '@codemirror/lint': 6.7.1 '@codemirror/state': 6.4.1 '@codemirror/view': 6.26.3 '@lezer/common': 1.2.1 - '@lezer/javascript': 1.4.15 + '@lezer/javascript': 1.4.16 dev: false /@codemirror/lang-json@6.0.1: @@ -852,8 +852,8 @@ packages: crelt: 1.0.6 dev: false - /@codemirror/lint@6.7.0: - resolution: {integrity: sha512-LTLOL2nT41ADNSCCCCw8Q/UmdAFzB23OUYSjsHTdsVaH0XEo+orhuqbDNWzrzodm14w6FOxqxpmy4LF8Lixqjw==} + /@codemirror/lint@6.7.1: + resolution: {integrity: sha512-rELba6QJD20/bNXWP/cKTGLrwVEcpa2ViwULCV03ONcY1Je85++7sczVRUlnE4TJMjatx3IJTz6HX4NXi+moXw==} dependencies: '@codemirror/state': 6.4.1 '@codemirror/view': 6.26.3 @@ -1124,15 +1124,15 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.1.4: - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@eslint/eslintrc@3.0.2: + resolution: {integrity: sha512-wV19ZEGEMAC1eHgrS7UQPqsdEiCIbTKTasEfcXAigzoXICcqZSjBZEHlZwNVvKg6UBCjSlos84XiLqsRJnIcIg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: ajv: 6.12.6 debug: 4.3.4(supports-color@5.5.0) - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.1 + espree: 10.0.1 + globals: 14.0.0 + ignore: 5.3.0 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -1141,15 +1141,15 @@ packages: - supports-color dev: true - /@eslint/eslintrc@3.0.2: - resolution: {integrity: sha512-wV19ZEGEMAC1eHgrS7UQPqsdEiCIbTKTasEfcXAigzoXICcqZSjBZEHlZwNVvKg6UBCjSlos84XiLqsRJnIcIg==} + /@eslint/eslintrc@3.1.0: + resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: ajv: 6.12.6 debug: 4.3.4(supports-color@5.5.0) espree: 10.0.1 globals: 14.0.0 - ignore: 5.3.0 + ignore: 5.3.1 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -1826,8 +1826,8 @@ packages: '@lezer/lr': 1.4.0 dev: false - /@lezer/javascript@1.4.15: - resolution: {integrity: sha512-B082ZdjI0vo2AgLqD834GlRTE9gwRX8NzHzKq5uDwEnQ9Dq+A/CEhd3nf68tiNA2f9O+8jS1NeSTUYT9IAqcTw==} + /@lezer/javascript@1.4.16: + resolution: {integrity: sha512-84UXR3N7s11MPQHWgMnjb9571fr19MmXnr5zTv2XX0gHXXUvW3uPJ8GCjKrfTXmSdfktjRK0ayKklw+A13rk4g==} dependencies: '@lezer/common': 1.2.1 '@lezer/highlight': 1.2.0 @@ -2150,7 +2150,7 @@ packages: /@polka/url@1.0.0-next.24: resolution: {integrity: sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==} - /@replit/codemirror-lang-svelte@6.0.0(@codemirror/autocomplete@6.12.0)(@codemirror/lang-css@6.2.1)(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.1)(@codemirror/language@6.10.1)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0)(@lezer/common@1.2.1)(@lezer/highlight@1.2.0)(@lezer/javascript@1.4.15)(@lezer/lr@1.4.0): + /@replit/codemirror-lang-svelte@6.0.0(@codemirror/autocomplete@6.12.0)(@codemirror/lang-css@6.2.1)(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.1)(@codemirror/language@6.10.1)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0)(@lezer/common@1.2.1)(@lezer/highlight@1.2.0)(@lezer/javascript@1.4.16)(@lezer/lr@1.4.0): resolution: {integrity: sha512-U2OqqgMM6jKelL0GNWbAmqlu1S078zZNoBqlJBW+retTc5M4Mha6/Y2cf4SVg6ddgloJvmcSpt4hHrVoM4ePRA==} peerDependencies: '@codemirror/autocomplete': ^6.0.0 @@ -2174,7 +2174,7 @@ packages: '@codemirror/view': 6.24.0 '@lezer/common': 1.2.1 '@lezer/highlight': 1.2.0 - '@lezer/javascript': 1.4.15 + '@lezer/javascript': 1.4.16 '@lezer/lr': 1.4.0 dev: false @@ -2540,18 +2540,17 @@ packages: p-map: 4.0.0 dev: true - /@stylistic/eslint-plugin-js@1.8.0(eslint@9.0.0): - resolution: {integrity: sha512-jdvnzt+pZPg8TfclZlTZPiUbbima93ylvQ+wNgHLNmup3obY6heQvgewSu9i2CfS61BnRByv+F9fxQLPoNeHag==} - engines: {node: ^16.0.0 || >=18.0.0} + /@stylistic/eslint-plugin-js@2.1.0(eslint@9.0.0): + resolution: {integrity: sha512-gdXUjGNSsnY6nPyqxu6lmDTtVrwCOjun4x8PUn0x04d5ucLI74N3MT1Q0UhdcOR9No3bo5PGDyBgXK+KmD787A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.40.0' dependencies: '@types/eslint': 8.56.10 acorn: 8.11.3 - escape-string-regexp: 4.0.0 eslint: 9.0.0 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 + eslint-visitor-keys: 4.0.0 + espree: 10.0.1 dev: true /@supabase/functions-js@2.1.5: @@ -2645,7 +2644,7 @@ packages: - supports-color dev: true - /@sveltejs/eslint-config@7.0.1(@stylistic/eslint-plugin-js@1.8.0)(eslint-config-prettier@9.1.0)(eslint-plugin-svelte@2.38.0)(eslint-plugin-unicorn@52.0.0)(eslint@9.0.0)(typescript-eslint@7.6.0)(typescript@5.3.3): + /@sveltejs/eslint-config@7.0.1(@stylistic/eslint-plugin-js@2.1.0)(eslint-config-prettier@9.1.0)(eslint-plugin-svelte@2.39.0)(eslint-plugin-unicorn@53.0.0)(eslint@9.0.0)(typescript-eslint@7.6.0)(typescript@5.3.3): resolution: {integrity: sha512-0c65gMzIRkfSNxVtUmMB/0I0A+ypyIS7aJhXXU7dEdoOEmdN5K+GpGB4ybYBmqODJdZlNRmwNFaKxzzUGBkXQA==} peerDependencies: '@stylistic/eslint-plugin-js': '>= 1' @@ -2656,11 +2655,11 @@ packages: typescript: '>= 5' typescript-eslint: '>= 7.5' dependencies: - '@stylistic/eslint-plugin-js': 1.8.0(eslint@9.0.0) + '@stylistic/eslint-plugin-js': 2.1.0(eslint@9.0.0) eslint: 9.0.0 eslint-config-prettier: 9.1.0(eslint@9.0.0) - eslint-plugin-svelte: 2.38.0(eslint@9.0.0)(svelte@packages+svelte) - eslint-plugin-unicorn: 52.0.0(eslint@9.0.0) + eslint-plugin-svelte: 2.39.0(eslint@9.0.0)(svelte@packages+svelte) + eslint-plugin-unicorn: 53.0.0(eslint@9.0.0) globals: 15.0.0 typescript: 5.3.3 typescript-eslint: 7.6.0(eslint@9.0.0)(typescript@5.3.3) @@ -2719,7 +2718,7 @@ packages: vite: 5.0.13(@types/node@20.11.5)(lightningcss@1.23.0)(sass@1.70.0) dev: true - /@sveltejs/repl@0.6.0(@codemirror/lang-html@6.4.9)(@codemirror/search@6.5.6)(@lezer/common@1.2.1)(@lezer/javascript@1.4.15)(@lezer/lr@1.4.0)(@sveltejs/kit@2.4.3)(svelte@4.2.9): + /@sveltejs/repl@0.6.0(@codemirror/lang-html@6.4.9)(@codemirror/search@6.5.6)(@lezer/common@1.2.1)(@lezer/javascript@1.4.16)(@lezer/lr@1.4.0)(@sveltejs/kit@2.4.3)(svelte@4.2.9): resolution: {integrity: sha512-NADKN0NZhLlSatTSh5CCsdzgf2KHJFRef/8krA/TVWAWos5kSwmZ5fF0UImuqs61Pu/SiMXksaWNTGTiOtr4fQ==} peerDependencies: svelte: ^3.54.0 || ^4.0.0-next.0 || ^4.0.0 @@ -2737,7 +2736,7 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 '@lezer/highlight': 1.2.0 '@neocodemirror/svelte': 0.0.15(@codemirror/autocomplete@6.12.0)(@codemirror/commands@6.3.3)(@codemirror/language@6.10.1)(@codemirror/lint@6.5.0)(@codemirror/search@6.5.6)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0) - '@replit/codemirror-lang-svelte': 6.0.0(@codemirror/autocomplete@6.12.0)(@codemirror/lang-css@6.2.1)(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.1)(@codemirror/language@6.10.1)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0)(@lezer/common@1.2.1)(@lezer/highlight@1.2.0)(@lezer/javascript@1.4.15)(@lezer/lr@1.4.0) + '@replit/codemirror-lang-svelte': 6.0.0(@codemirror/autocomplete@6.12.0)(@codemirror/lang-css@6.2.1)(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.1)(@codemirror/language@6.10.1)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0)(@lezer/common@1.2.1)(@lezer/highlight@1.2.0)(@lezer/javascript@1.4.16)(@lezer/lr@1.4.0) '@replit/codemirror-vim': 6.1.0(@codemirror/commands@6.3.3)(@codemirror/language@6.10.1)(@codemirror/search@6.5.6)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0) '@rich_harris/svelte-split-pane': 1.1.2(svelte@4.2.9) '@rollup/browser': 3.29.4 @@ -2932,8 +2931,8 @@ packages: dependencies: undici-types: 5.26.5 - /@types/node@20.12.7: - resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} + /@types/node@20.12.12: + resolution: {integrity: sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==} dependencies: undici-types: 5.26.5 dev: true @@ -3568,10 +3567,10 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001614 - electron-to-chromium: 1.4.751 + caniuse-lite: 1.0.30001621 + electron-to-chromium: 1.4.777 node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.23.0) + update-browserslist-db: 1.0.16(browserslist@4.23.0) dev: true /buffer-crc32@0.2.13: @@ -3657,8 +3656,8 @@ packages: resolution: {integrity: sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==} dev: true - /caniuse-lite@1.0.30001614: - resolution: {integrity: sha512-jmZQ1VpmlRwHgdP1/uiKzgiAuGOfLEJsYFP4+GBou/QQ4U6IOJCB4NP1c+1p9RGLpwObcT94jA5/uO+F1vBbog==} + /caniuse-lite@1.0.30001621: + resolution: {integrity: sha512-+NLXZiviFFKX0fk8Piwv3PfLPGtRqJeq2TiNoUff/qB5KJgwecJTvCXDpmlyP/eCI/GUEmp/h/y5j0yckiiZrA==} dev: true /chai@4.4.1: @@ -3903,8 +3902,8 @@ packages: resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} engines: {node: '>= 0.6'} - /core-js-compat@3.37.0: - resolution: {integrity: sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA==} + /core-js-compat@3.37.1: + resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==} dependencies: browserslist: 4.23.0 dev: true @@ -4255,8 +4254,8 @@ packages: resolution: {integrity: sha512-q4lkcbQrUdlzWCUOxk6fwEza6bNCfV12oi4AJph5UibguD1aTfL4uD0nuzFv9hbPANXQMuUS0MxPSHQ1gqq5dg==} dev: true - /electron-to-chromium@1.4.751: - resolution: {integrity: sha512-2DEPi++qa89SMGRhufWTiLmzqyuGmNF3SK4+PQetW1JKiZdEpF4XQonJXJCzyuYSA6mauiMhbyVhqYAP45Hvfw==} + /electron-to-chromium@1.4.777: + resolution: {integrity: sha512-n02NCwLJ3wexLfK/yQeqfywCblZqLcXphzmid5e8yVPdtEcida7li0A5WQKghHNG0FeOMCzeFOzEbtAh5riXFw==} dev: true /emoji-regex@10.3.0: @@ -4418,6 +4417,11 @@ packages: engines: {node: '>=6'} dev: true + /escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + dev: true + /escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} dev: true @@ -4439,7 +4443,7 @@ packages: eslint: '>=6.0.0' dependencies: eslint: 9.0.0 - semver: 7.6.0 + semver: 7.6.2 dev: true /eslint-config-prettier@9.1.0(eslint@9.0.0): @@ -4455,8 +4459,8 @@ packages: resolution: {integrity: sha512-BVO83tRo090d6a04cl45Gb761SD79cOT6wKxxWrpsH7Rv8I0SJvc79ijE11vvyxxCMiGUVq/w4NqqPJAHyYfSQ==} dev: true - /eslint-plugin-svelte@2.38.0(eslint@9.0.0)(svelte@packages+svelte): - resolution: {integrity: sha512-IwwxhHzitx3dr0/xo0z4jjDlb2AAHBPKt+juMyKKGTLlKi1rZfA4qixMwnveU20/JTHyipM6keX4Vr7LZFYc9g==} + /eslint-plugin-svelte@2.39.0(eslint@9.0.0)(svelte@packages+svelte): + resolution: {integrity: sha512-FXktBLXsrxbA+6ZvJK2z/sQOrUKyzSg3fNWK5h0reSCjr2fjAsc9ai/s/JvSl4Hgvz3nYVtTIMwarZH5RcB7BA==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0-0 || ^9.0.0-0 @@ -4471,31 +4475,31 @@ packages: eslint: 9.0.0 eslint-compat-utils: 0.5.0(eslint@9.0.0) esutils: 2.0.3 - known-css-properties: 0.30.0 + known-css-properties: 0.31.0 postcss: 8.4.38 postcss-load-config: 3.1.4(postcss@8.4.38) postcss-safe-parser: 6.0.0(postcss@8.4.38) - postcss-selector-parser: 6.0.16 - semver: 7.6.0 + postcss-selector-parser: 6.1.0 + semver: 7.6.2 svelte: link:packages/svelte - svelte-eslint-parser: 0.35.0(svelte@packages+svelte) + svelte-eslint-parser: 0.36.0(svelte@packages+svelte) transitivePeerDependencies: - supports-color - ts-node dev: true - /eslint-plugin-unicorn@52.0.0(eslint@9.0.0): - resolution: {integrity: sha512-1Yzm7/m+0R4djH0tjDjfVei/ju2w3AzUGjG6q8JnuNIL5xIwsflyCooW5sfBvQp2pMYQFSWWCFONsjCax1EHng==} - engines: {node: '>=16'} + /eslint-plugin-unicorn@53.0.0(eslint@9.0.0): + resolution: {integrity: sha512-kuTcNo9IwwUCfyHGwQFOK/HjJAYzbODHN3wP0PgqbW+jbXqpNWxNVpVhj2tO9SixBwuAdmal8rVcWKBxwFnGuw==} + engines: {node: '>=18.18'} peerDependencies: eslint: '>=8.56.0' dependencies: '@babel/helper-validator-identifier': 7.24.5 '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) - '@eslint/eslintrc': 2.1.4 + '@eslint/eslintrc': 3.1.0 ci-info: 4.0.0 clean-regexp: 1.0.0 - core-js-compat: 3.37.0 + core-js-compat: 3.37.1 eslint: 9.0.0 esquery: 1.5.0 indent-string: 4.0.0 @@ -4505,7 +4509,7 @@ packages: read-pkg-up: 7.0.1 regexp-tree: 0.1.27 regjsparser: 0.10.0 - semver: 7.6.0 + semver: 7.6.2 strip-indent: 3.0.0 transitivePeerDependencies: - supports-color @@ -5088,13 +5092,6 @@ packages: process: 0.11.10 dev: true - /globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.20.2 - dev: true - /globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} @@ -5822,7 +5819,7 @@ packages: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} - /knip@4.2.1(@types/node@20.12.7)(typescript@5.4.5): + /knip@4.2.1(@types/node@20.12.12)(typescript@5.4.5): resolution: {integrity: sha512-KG++YCus11YyQQeiBxhXxv6NCJzol4AYER9q1kwZGFw+gwDzG/0Q6MN87McYFN74nGRX4O2xM5CA3TTPcbpn5A==} engines: {node: '>=18.6.0'} hasBin: true @@ -5838,7 +5835,7 @@ packages: '@pnpm/logger': 5.0.0 '@pnpm/workspace.pkgs-graph': 2.0.13(@pnpm/logger@5.0.0) '@snyk/github-codeowners': 1.1.0 - '@types/node': 20.12.7 + '@types/node': 20.12.12 '@types/picomatch': 2.3.3 easy-table: 1.2.0 fast-glob: 3.3.2 @@ -5860,8 +5857,8 @@ packages: - domexception dev: true - /known-css-properties@0.30.0: - resolution: {integrity: sha512-VSWXYUnsPu9+WYKkfmJyLKtIvaRJi1kXUqVmBACORXZQxT5oZDsoZ2vQP+bQFDnWtpI/4eq3MLoRMjI2fnLzTQ==} + /known-css-properties@0.31.0: + resolution: {integrity: sha512-sBPIUGTNF0czz0mwGGUoKKJC8Q7On1GPbCSFPfyEsfHb2DyBG0Y4QtV+EVWpINSaiGKZblDNuF5AezxSgOhesQ==} dev: true /levn@0.4.1: @@ -6880,6 +6877,10 @@ packages: /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + /picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + dev: true + /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} @@ -6982,8 +6983,8 @@ packages: postcss: 8.4.38 dev: true - /postcss-selector-parser@6.0.16: - resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} + /postcss-selector-parser@6.1.0: + resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} engines: {node: '>=4'} dependencies: cssesc: 3.0.0 @@ -7007,7 +7008,7 @@ packages: engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 - picocolors: 1.0.0 + picocolors: 1.0.1 source-map-js: 1.2.0 dev: true @@ -7510,6 +7511,12 @@ packages: lru-cache: 6.0.0 dev: true + /semver@7.6.2: + resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + engines: {node: '>=10'} + hasBin: true + dev: true + /send@0.18.0: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} engines: {node: '>= 0.8.0'} @@ -8065,11 +8072,11 @@ packages: - sugarss dev: true - /svelte-eslint-parser@0.35.0(svelte@packages+svelte): - resolution: {integrity: sha512-CtbPseajW0gjwEvHiuzYJkPDjAcHz2FaHt540j6RVYrZgnE6xWkzUBodQ4I3nV+G5AS0Svt8K6aIA/CIU9xT2Q==} + /svelte-eslint-parser@0.36.0(svelte@packages+svelte): + resolution: {integrity: sha512-/6YmUSr0FAVxW8dXNdIMydBnddPMHzaHirAZ7RrT21XYdgGGZMh0LQG6CZsvAFS4r2Y4ItUuCQc8TQ3urB30mQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - svelte: ^3.37.0 || ^4.0.0 || ^5.0.0-next.112 + svelte: ^3.37.0 || ^4.0.0 || ^5.0.0-next.115 peerDependenciesMeta: svelte: optional: true @@ -8482,11 +8489,6 @@ packages: engines: {node: '>=10'} dev: true - /type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - dev: true - /type-fest@0.6.0: resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} engines: {node: '>=8'} @@ -8649,15 +8651,15 @@ packages: picocolors: 1.0.0 dev: true - /update-browserslist-db@1.0.13(browserslist@4.23.0): - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + /update-browserslist-db@1.0.16(browserslist@4.23.0): + resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: browserslist: 4.23.0 - escalade: 3.1.1 - picocolors: 1.0.0 + escalade: 3.1.2 + picocolors: 1.0.1 dev: true /uri-js@4.4.1: diff --git a/sites/svelte-5-preview/package.json b/sites/svelte-5-preview/package.json index 8325e66a87..e4c4cc3009 100644 --- a/sites/svelte-5-preview/package.json +++ b/sites/svelte-5-preview/package.json @@ -53,7 +53,7 @@ "esm-env": "^1.0.0", "marked": "^7.0.2", "resolve.exports": "^2.0.2", - "svelte-json-tree": "^2.1.0", + "svelte-json-tree": "^2.2.0", "zimmerframe": "^1.1.1" } } diff --git a/sites/svelte-5-preview/src/lib/Output/ReplProxy.js b/sites/svelte-5-preview/src/lib/Output/ReplProxy.js index a7a57bcb3f..0e45887bd7 100644 --- a/sites/svelte-5-preview/src/lib/Output/ReplProxy.js +++ b/sites/svelte-5-preview/src/lib/Output/ReplProxy.js @@ -1,27 +1,35 @@ let uid = 1; -const noop = () => {}; - export default class ReplProxy { /** @type {HTMLIFrameElement} */ iframe; /** @type {import("./proxy").Handlers} */ - handlers = { - on_fetch_progress: noop, - on_console: noop, - on_error: noop, - on_console_group: noop, - on_console_group_collapsed: noop, - on_console_group_end: noop, - on_unhandled_rejection: noop - }; + handlers; /** @type {Map void, reject: (value: any) => void }>} */ pending_cmds = new Map(); - /** @param {MessageEvent} e */ - handle_event = (e) => this.handle_repl_message(e); + /** @param {MessageEvent} event */ + handle_event = (event) => { + if (event.source !== this.iframe.contentWindow) return; + + const { action, args } = event.data; + + switch (action) { + case 'cmd_error': + case 'cmd_ok': + return this.handle_command_message(event.data); + case 'fetch_progress': + return this.handlers.on_fetch_progress(args.remaining); + case 'error': + return this.handlers.on_error(event.data); + case 'unhandledrejection': + return this.handlers.on_unhandled_rejection(event.data); + case 'console': + return this.handlers.on_console(event.data); + } + }; /** * @param {HTMLIFrameElement} iframe @@ -77,35 +85,6 @@ export default class ReplProxy { } } - /** - * @param {MessageEvent} event - */ - handle_repl_message(event) { - if (event.source !== this.iframe.contentWindow) return; - - const { action, args } = event.data; - - switch (action) { - case 'cmd_error': - case 'cmd_ok': - return this.handle_command_message(event.data); - case 'fetch_progress': - return this.handlers.on_fetch_progress(args.remaining); - case 'error': - return this.handlers.on_error(event.data); - case 'unhandledrejection': - return this.handlers.on_unhandled_rejection(event.data); - case 'console': - return this.handlers.on_console(event.data); - case 'console_group': - return this.handlers.on_console_group(event.data); - case 'console_group_collapsed': - return this.handlers.on_console_group_collapsed(event.data); - case 'console_group_end': - return this.handlers.on_console_group_end(event.data); - } - } - /** @param {string} script */ eval(script) { return this.iframe_command('eval', { script }); diff --git a/sites/svelte-5-preview/src/lib/Output/Viewer.svelte b/sites/svelte-5-preview/src/lib/Output/Viewer.svelte index 2944578830..db506ada3b 100644 --- a/sites/svelte-5-preview/src/lib/Output/Viewer.svelte +++ b/sites/svelte-5-preview/src/lib/Output/Viewer.svelte @@ -55,32 +55,36 @@ pending_imports = progress; }, on_error: (event) => { - push_logs({ level: 'error', args: [event.value] }); + push_logs({ command: 'error', args: [event.value] }); }, on_unhandled_rejection: (event) => { let error = event.value; if (typeof error === 'string') error = { message: error }; error.message = 'Uncaught (in promise): ' + error.message; - push_logs({ level: 'error', args: [error] }); + push_logs({ command: 'error', args: [error] }); }, on_console: (log) => { - if (log.level === 'clear') { - clear_logs(); - push_logs(log); - } else if (log.duplicate) { - increment_duplicate_log(); - } else { - push_logs(log); + switch (log.command) { + case 'clear': + clear_logs(); + push_logs(log); + break; + + case 'group': + group_logs(log); + break; + + case 'groupEnd': + ungroup_logs(); + break; + + case 'duplicate': + increment_duplicate_log(); + break; + + default: + push_logs(log); } - }, - on_console_group: (action) => { - group_logs(action.label, false); - }, - on_console_group_end: () => { - ungroup_logs(); - }, - on_console_group_collapsed: (action) => { - group_logs(action.label, true); } }); @@ -202,17 +206,13 @@ logs = logs; } - /** - * @param {string} label - * @param {boolean} collapsed - */ - function group_logs(label, collapsed) { - /** @type {import('./console/console').Log} */ - const group_log = { level: 'group', label, collapsed, logs: [] }; - current_log_group.push({ level: 'group', label, collapsed, logs: [] }); + /** @param {import('./console/console').Log} log */ + function group_logs(log) { + log.logs = []; + current_log_group.push(log); // TODO: Investigate log_group_stack.push(current_log_group); - current_log_group = group_log.logs ?? []; + current_log_group = log.logs; logs = logs; } @@ -284,7 +284,7 @@
- +
diff --git a/sites/svelte-5-preview/src/lib/Output/console/Console.svelte b/sites/svelte-5-preview/src/lib/Output/console/Console.svelte index c1adaff32f..e2a880aff8 100644 --- a/sites/svelte-5-preview/src/lib/Output/console/Console.svelte +++ b/sites/svelte-5-preview/src/lib/Output/console/Console.svelte @@ -3,12 +3,9 @@ /** @type {import('./console').Log[]} */ export let logs; - - /** @type {'light' | 'dark'} */ - export let theme; -
+
{#each logs as log} {/each} @@ -16,21 +13,34 @@ diff --git a/sites/svelte-5-preview/src/lib/Output/console/ConsoleLine.svelte b/sites/svelte-5-preview/src/lib/Output/console/ConsoleLine.svelte index 4c2be9ef83..f990cdc1be 100644 --- a/sites/svelte-5-preview/src/lib/Output/console/ConsoleLine.svelte +++ b/sites/svelte-5-preview/src/lib/Output/console/ConsoleLine.svelte @@ -4,137 +4,164 @@ /** @type {import('./console').Log} */ export let log; - export let level = 1; + export let depth = 1; function toggle_group_collapse() { log.collapsed = !log.collapsed; } -{#if log.args && log.level === 'table'} - +{#if log.command === 'table'} + {/if} - - {#if log.count && log.count > 1} - {log.count}x - {/if} - - {#if log.level === 'trace' || log.level === 'assert' || log.level === 'group'} - - {/if} +
+ +
+ {#if log.count && log.count > 1} + {log.count} + {/if} + + {#if log.stack || log.command === 'group'} + {'\u25B6'} + {/if} + + {#if log.command === 'clear'} + Console was cleared + {:else if log.command === 'unclonable'} + Message could not be cloned. Open devtools to see it + {:else if log.command === 'table'} + + {:else} + {#each log.args ?? [] as arg} + + {/each} + {/if} +
- {#if log.level === 'assert'} - Assertion failed: + {#if log.stack && !log.collapsed} +
+ {#each log.stack as line} + {line.label} + {line.location} + {/each} +
{/if} - {#if log.level === 'clear'} - Console was cleared - {:else if log.level === 'unclonable'} - Message could not be cloned. Open devtools to see it - {:else if log.level.startsWith('system')} - {#each log.args ?? [] as arg} - {arg} - {/each} - {:else if log.args && log.level === 'table'} - - {:else} - {#each log.args ?? [] as arg} - - {/each} - {/if} - {#each new Array(level - 1) as _, idx} + {#each new Array(depth - 1) as _, idx}
{/each} - +
-{#if log.level === 'group' && !log.collapsed} +{#if log.command === 'group' && !log.collapsed} {#each log.logs ?? [] as childLog} - + {/each} {/if} -{#if (log.level === 'trace' || log.level === 'assert') && !log.collapsed} -
- {#each log.stack?.split('\n').slice(2) ?? '' as stack} -
{stack.replace(/^\s*at\s+/, '')}
- {/each} -
-{/if} - diff --git a/sites/svelte-5-preview/src/lib/Output/console/ConsoleTable.svelte b/sites/svelte-5-preview/src/lib/Output/console/ConsoleTable.svelte index ce36a41608..cba9721807 100644 --- a/sites/svelte-5-preview/src/lib/Output/console/ConsoleTable.svelte +++ b/sites/svelte-5-preview/src/lib/Output/console/ConsoleTable.svelte @@ -7,28 +7,54 @@ /** @type {any} */ export let columns; - const INDEX_KEY = '(index)'; - const VALUE_KEY = 'Value'; - - $: keys = Object.keys(data); - $: columns_to_render = columns || get_columns_to_render(data, keys); + $: table = create_table(data, columns); /** * @param {any} data - * @param {string[]} keys + * @param {string[]} [custom_columns] */ - function get_columns_to_render(data, keys) { - const columns = new Set([INDEX_KEY]); - for (const key of keys) { + function create_table(data, custom_columns) { + let has_non_object = false; + const columns = new Set(); + + if (custom_columns) { + custom_columns.forEach((column) => columns.add(column)); + } else { + for (const key in data) { + const value = data[key]; + if (typeof value === 'object') { + Object.keys(value).forEach((key) => columns.add(key)); + } else { + has_non_object = true; + } + } + } + + const is_array = Array.isArray(data); + + const rows = Object.keys(data).map((key) => { const value = data[key]; - if (typeof value === 'object') { - Object.keys(value).forEach((key) => columns.add(key)); - } else { - columns.add(VALUE_KEY); + const values = []; + + for (const column of columns) { + values.push(typeof value === 'object' && column in value ? value[column] : ''); + } + + if (has_non_object) { + values.push(typeof value !== 'object' ? value : ''); } + + return { + key: is_array ? parseInt(key) : key, + values + }; + }); + + if (has_non_object) { + columns.add('Value'); } - return [...columns]; + return { columns, rows }; } @@ -36,24 +62,33 @@ - {#each columns_to_render as column} + + + {#each table.columns as column} {/each} + - {#each keys as key} + {#each table.rows as row} - {#each columns_to_render as column} - {#if column === INDEX_KEY} - - {:else if column === VALUE_KEY} - - {:else if column in data[key]} - + + {/if} + + + {#each row.values as value} + {/each} {/each} @@ -63,32 +98,48 @@ diff --git a/sites/svelte-5-preview/src/lib/Output/console/console.d.ts b/sites/svelte-5-preview/src/lib/Output/console/console.d.ts index 5c45fbade6..b69cbc98b2 100644 --- a/sites/svelte-5-preview/src/lib/Output/console/console.d.ts +++ b/sites/svelte-5-preview/src/lib/Output/console/console.d.ts @@ -1,19 +1,12 @@ export type Log = { - level: - | 'info' - | 'warn' - | 'error' - | 'table' - | 'group' - | 'trace' - | 'assert' - | 'clear' - | 'unclonable'; + command: 'info' | 'warn' | 'error' | 'table' | 'group' | 'clear' | 'unclonable'; action?: 'console'; args?: any[]; collapsed?: boolean; + expanded?: boolean; count?: number; logs?: Log[]; stack?: string; - label?: string; + data?: any; + columns?: string[]; }; diff --git a/sites/svelte-5-preview/src/lib/Output/proxy.d.ts b/sites/svelte-5-preview/src/lib/Output/proxy.d.ts index aad35e726e..b3f9fa8d1a 100644 --- a/sites/svelte-5-preview/src/lib/Output/proxy.d.ts +++ b/sites/svelte-5-preview/src/lib/Output/proxy.d.ts @@ -1,10 +1,4 @@ export type Handlers = Record< - | 'on_fetch_progress' - | 'on_error' - | 'on_unhandled_rejection' - | 'on_console' - | 'on_console_group' - | 'on_console_group_collapsed' - | 'on_console_group_end', + 'on_fetch_progress' | 'on_error' | 'on_unhandled_rejection' | 'on_console', (data: any) => void >; diff --git a/sites/svelte-5-preview/src/lib/Output/srcdoc/index.html b/sites/svelte-5-preview/src/lib/Output/srcdoc/index.html index e00819120b..bd9fdb2110 100644 --- a/sites/svelte-5-preview/src/lib/Output/srcdoc/index.html +++ b/sites/svelte-5-preview/src/lib/Output/srcdoc/index.html @@ -67,34 +67,25 @@ From 44115840bd894ab6281ea61f5dc39021d96da3ae Mon Sep 17 00:00:00 2001 From: Dominic Gannaway Date: Thu, 23 May 2024 08:29:42 +0100 Subject: [PATCH 2/2] chore: cleanup more tests (#11738) remove awaits in favor of flushSync --- .../samples/binding-input/_config.js | 6 ++-- .../samples/event-handler/_config.js | 4 ++- .../custom-elements-samples/nested/_config.js | 4 ++- .../reflect-attributes-add-remove/_config.js | 4 +++ .../reflect-attributes/_config.js | 2 ++ .../samples/action-update/_config.js | 12 ++++--- .../apply-directives-in-order-2/_config.js | 8 +++-- .../apply-directives-in-order/_config.js | 9 ++++-- .../await-then-blowback-reactive/_config.js | 5 +-- .../binding-indirect-computed/_config.js | 6 ++-- .../_config.js | 18 ++++++----- .../_config.js | 8 ++--- .../_config.js | 6 ++-- .../binding-input-checkbox-group/_config.js | 6 ++-- .../samples/binding-input-checkbox/_config.js | 6 ++-- .../_config.js | 12 ++++--- .../binding-input-group-each-1/_config.js | 15 ++++----- .../binding-input-group-each-10/_config.js | 9 ++++-- .../binding-input-group-each-11/_config.js | 11 ++++--- .../binding-input-group-each-12/_config.js | 9 ++++-- .../binding-input-group-each-13/_config.js | 21 +++++++------ .../binding-input-group-each-14/_config.js | 27 ++++++++-------- .../binding-input-group-each-15/_config.js | 9 ++++-- .../binding-input-group-each-16/_config.js | 9 ++++-- .../binding-input-group-each-2/_config.js | 6 ++-- .../binding-input-group-each-3/_config.js | 12 ++++--- .../binding-input-group-each-4/_config.js | 31 ++++++++++--------- .../binding-input-group-each-5/_config.js | 15 ++++----- .../binding-input-group-each-6/_config.js | 12 ++++--- .../binding-input-group-each-8/_config.js | 19 +++++++----- .../binding-input-group-each-9/_config.js | 17 +++++----- .../_config.js | 20 +++++++----- .../_config.js | 15 ++++++--- .../samples/binding-input-number/_config.js | 9 ++++-- .../binding-input-radio-group/_config.js | 6 ++-- .../_config.js | 7 +++-- .../samples/binding-input-range/_config.js | 6 ++-- .../_config.js | 10 +++--- .../_config.js | 11 ++++--- .../binding-input-text-contextual/_config.js | 7 +++-- .../_config.js | 6 ++-- .../_config.js | 12 ++++--- .../_config.js | 6 ++-- .../_config.js | 15 ++++----- .../_config.js | 9 +++--- .../binding-input-text-deep/_config.js | 6 ++-- .../samples/binding-input-text/_config.js | 6 ++-- .../_config.js | 6 ++-- .../binding-select-multiple/_config.js | 9 ++++-- .../binding-select-optgroup/_config.js | 6 ++-- .../samples/binding-select/_config.js | 6 ++-- .../samples/binding-store-deep/_config.js | 9 ++++-- .../samples/binding-store-each/_config.js | 6 ++-- .../samples/binding-store/_config.js | 9 ++++-- .../samples/binding-textarea/_config.js | 6 ++-- .../samples/binding-this-and-value/_config.js | 6 ++-- .../samples/binding-using-props/_config.js | 6 ++-- .../samples/bitmask-overflow-if/_config.js | 4 ++- .../bitmask-overflow-slot-3/_config.js | 6 ++-- .../bitmask-overflow-slot-4/_config.js | 6 ++-- .../bitmask-overflow-slot-5/_config.js | 6 ++-- .../bitmask-overflow-slot-6/_config.js | 9 ++++-- .../component-binding-accessors/_config.js | 9 ++++-- .../component-binding-blowback-d/_config.js | 7 +++-- .../component-binding-blowback-e/_config.js | 7 +++-- .../component-binding-blowback-f/_config.js | 11 +++---- .../samples/component-binding-deep/_config.js | 7 +++-- .../component-binding-deep2/_config.js | 7 +++-- .../component-binding-each-nested/_config.js | 7 +++-- .../samples/component-binding-each/_config.js | 7 +++-- .../_config.js | 11 ++++--- .../component-binding-nested/_config.js | 12 ++++--- .../component-binding-non-leaky/_config.js | 7 +++-- .../_config.js | 9 ++++-- .../_config.js | 15 ++++++--- .../_config.js | 9 ++++-- .../component-binding-store/_config.js | 15 ++++----- .../samples/component-binding/_config.js | 9 ++++-- .../samples/component-prop-object/_config.js | 6 ++-- .../component-slot-attribute-order/_config.js | 6 ++-- .../component-slot-fallback-2/_config.js | 9 ++++-- .../component-slot-fallback-5/_config.js | 9 ++++-- .../component-slot-fallback-6/_config.js | 6 ++-- .../samples/component-slot-let-b/_config.js | 6 ++-- .../samples/component-slot-let-c/_config.js | 6 ++-- .../samples/component-slot-let-d/_config.js | 6 ++-- .../_config.js | 12 ++++--- .../component-slot-let-scope-3/_config.js | 6 ++-- .../component-slot-nested-if/_config.js | 9 ++++-- .../_config.js | 6 ++-- .../_config.js | 6 ++-- .../_config.js | 6 ++-- .../_config.js | 12 ++++--- .../_config.js | 14 +++++---- .../component-yield-placement/_config.js | 6 ++-- .../samples/const-tag-invalidate/_config.js | 17 +++++----- .../samples/context-api/_config.js | 9 ++++-- .../samples/custom-method/_config.js | 9 ++++-- .../_config.js | 6 ++-- .../_config.js | 7 +++-- .../dynamic-component-spread-props/_config.js | 9 ++++-- .../_config.js | 7 +++-- .../each-block-keyed-bind-group/_config.js | 15 ++++----- .../each-block-keyed-dynamic-2/_config.js | 6 ++-- .../_config.js | 8 +++-- .../each-block-scope-shadow-bind-2/_config.js | 7 +++-- .../each-block-scope-shadow-bind-3/_config.js | 19 ++++++------ .../each-block-scope-shadow-bind-4/_config.js | 15 ++++----- .../each-block-scope-shadow-bind/_config.js | 7 +++-- .../each-blocks-assignment-2/_config.js | 7 +++-- .../samples/each-blocks-assignment/_config.js | 26 +++++++++------- .../empty-component-destroy/_config.js | 7 +++-- .../event-handler-destructured/_config.js | 6 ++-- .../event-handler-dynamic-2/_config.js | 25 ++++++++++----- .../_config.js | 6 ++-- .../_config.js | 10 ++++-- .../event-handler-dynamic-hash/_config.js | 17 ++++++---- .../samples/event-handler-dynamic/_config.js | 16 ++++++---- .../_config.js | 13 +++++--- .../_config.js | 11 +++++-- .../samples/event-handler-each/_config.js | 7 +++-- .../_config.js | 9 ++++-- .../samples/event-handler-sanitize/_config.js | 9 ++++-- .../samples/event-handler/_config.js | 11 +++++-- .../_config.js | 6 ++-- .../samples/if-block-else-update/_config.js | 19 +++++++++--- .../inline-style-become-undefined/_config.js | 7 +++-- .../_config.js | 5 +-- .../_config.js | 9 ++++-- .../_config.js | 7 +++-- .../_config.js | 6 ++-- .../instrumentation-script-update/_config.js | 6 ++-- .../_config.js | 9 ++++-- .../_config.js | 7 +++-- .../_config.js | 6 ++-- .../_config.js | 6 ++-- .../_config.js | 15 ++++++--- .../invalidation-in-if-condition/_config.js | 12 ++++--- .../key-block-component-slot/_config.js | 7 +++-- .../samples/key-block-static-if/_config.js | 4 ++- .../_config.js | 7 +++-- .../_config.js | 6 ++-- .../nested-destructure-assignment/_config.js | 6 ++-- .../samples/prop-no-change/_config.js | 6 ++-- .../samples/props-reactive-slot/_config.js | 6 ++-- .../samples/props-reassign/_config.js | 9 ++++-- .../samples/raw-mustache-as-root/_config.js | 13 ++++---- .../raw-mustache-inside-slot/_config.js | 11 ++++--- .../reactive-compound-operator/_config.js | 7 +++-- .../_config.js | 6 ++-- .../reactive-statement-indirect/_config.js | 7 +++-- .../reactive-update-expression/_config.js | 9 ++++-- .../reactive-value-mutate-const/_config.js | 7 +++-- .../samples/rest-props-reassign/_config.js | 9 ++++-- .../rest-props-without-props/_config.js | 18 ++++++----- .../samples/rest-props/_config.js | 18 ++++++----- .../samples/select-lazy-options/_config.js | 4 ++- .../spread-component-with-bind/_config.js | 6 ++-- .../_config.js | 13 +++++--- .../_config.js | 9 ++++-- .../store-assignment-updates/_config.js | 9 ++++-- .../store-auto-subscribe-implicit/_config.js | 9 ++++-- .../samples/store-auto-subscribe/_config.js | 9 ++++-- .../store-each-binding-deep/_config.js | 6 ++-- .../_config.js | 6 ++-- .../samples/store-each-binding/_config.js | 6 ++-- .../samples/store-resubscribe/_config.js | 12 ++++--- .../transition-js-events-in-out/_config.js | 3 ++ .../_config.js | 6 ++-- .../samples/window-binding-resize/_config.js | 6 ++-- .../window-binding-scroll-store/_config.js | 6 ++-- .../samples/window-event-context/_config.js | 7 +++-- .../samples/window-event/_config.js | 7 +++-- .../samples/ambiguous-source/_config.js | 6 ++-- .../attribute-spread-reactivitiy/_config.js | 5 +-- .../samples/bind-state-property/_config.js | 7 +++-- .../samples/bindings-form-reset/_config.js | 4 ++- .../class-frozen-state-object/_config.js | 9 ++++-- .../samples/class-frozen-state/_config.js | 9 ++++-- .../_config.js | 9 ++++-- .../class-private-frozen-state/_config.js | 9 ++++-- .../class-private-state-increment/_config.js | 9 ++++-- .../class-private-state-init/_config.js | 9 ++++-- .../class-private-state-proxy/_config.js | 9 ++++-- .../samples/class-private-state/_config.js | 9 ++++-- .../class-state-deep-update/_config.js | 11 +++++-- .../samples/class-state-derived-fn/_config.js | 9 ++++-- .../class-state-derived-private/_config.js | 9 ++++-- .../samples/class-state-derived/_config.js | 9 ++++-- .../samples/class-state-increment/_config.js | 9 ++++-- .../class-state-init-conflict/_config.js | 9 ++++-- .../class-state-init-eager-2/_config.js | 9 ++++-- .../class-state-init-eager-3/_config.js | 9 ++++-- .../samples/class-state-init-eager/_config.js | 9 ++++-- .../samples/class-state-init/_config.js | 9 ++++-- .../samples/class-state-proxy/_config.js | 9 ++++-- .../class-state-public-private/_config.js | 9 ++++-- .../class-state-with-literal/_config.js | 9 ++++-- .../samples/class-state/_config.js | 9 ++++-- .../component-let-directive/_config.js | 6 ++-- .../samples/derived-direct/_config.js | 6 ++-- .../samples/derived-fn-destructure/_config.js | 6 ++-- .../samples/derived-fn/_config.js | 6 ++-- .../derived-indirect-arrow-fn/_config.js | 4 ++- .../samples/derived-indirect-fn-2/_config.js | 6 ++-- .../samples/derived-indirect-fn/_config.js | 6 ++-- .../samples/derived-proxy/_config.js | 9 ++++-- .../destructure-derived-event/_config.js | 6 ++-- .../samples/each-mutation/_config.js | 15 ++++----- .../runtime-runes/samples/effect/_config.js | 5 +-- .../samples/effects-order/_config.js | 5 +-- .../samples/event-arguments-2/_config.js | 5 +-- .../samples/event-arguments/_config.js | 5 +-- .../event-attribute-after-binding/_config.js | 9 ++++-- .../event-attribute-after-spread/_config.js | 6 ++-- .../event-attribute-capture/_config.js | 5 +-- .../event-attribute-spread-capture/_config.js | 5 +-- .../samples/event-attribute-window/_config.js | 5 +-- .../samples/event-exported/_config.js | 7 +++-- .../samples/event-listener-spread/_config.js | 5 +-- .../_config.js | 7 +++-- .../samples/exports-1/_config.js | 9 +++--- .../samples/exports-2/_config.js | 9 +++--- .../samples/exports-3/_config.js | 5 +-- .../samples/inspect-derived/_config.js | 7 +++-- .../samples/invalidate-effect/_config.js | 5 +-- .../samples/mutation-both/_config.js | 15 ++++++--- .../runtime-runes/samples/mutation/_config.js | 9 ++++-- .../nested-destructure-assignment/_config.js | 6 ++-- .../samples/not-actual-runes/_config.js | 6 ++-- .../samples/pre-effect/_config.js | 5 +-- .../samples/props-alias/_config.js | 5 +-- .../samples/props-bound-fallback/_config.js | 6 ++-- .../samples/props-bound-to-normal/_config.js | 16 ++++++---- .../samples/props-bound/_config.js | 5 +-- .../props-default-value-behavior/_config.js | 19 +++++++----- .../samples/props-spread-fallback/_config.js | 15 ++++++--- .../samples/readonly-state-replace/_config.js | 5 +-- .../samples/readonly-state/_config.js | 5 +-- .../runes-in-module-context/_config.js | 6 ++-- .../_config.js | 6 ++-- .../snippet-argument-destructured/_config.js | 6 ++-- .../snippet-argument-multiple/_config.js | 6 ++-- .../samples/snippet-argument/_config.js | 6 ++-- .../snippet-complicated-defaults/_config.js | 16 +++++++--- .../samples/snippet-const/_config.js | 9 ++++-- .../samples/snippet-expressions/_config.js | 6 ++-- .../snippet-optional-arguments/_config.js | 4 ++- .../samples/snippet-prop-explicit/_config.js | 6 ++-- .../samples/snippet-prop-implicit/_config.js | 6 ++-- .../samples/snippet-prop-reactive/_config.js | 6 ++-- .../samples/snippet-reactive/_config.js | 6 ++-- .../samples/state-snapshot/_config.js | 6 ++-- .../samples/state-space/_config.js | 6 ++-- .../samples/state-undefined/_config.js | 7 +++-- .../store-subscribe-effect-init/_config.js | 9 ++++-- .../samples/typescript/_config.js | 6 ++-- .../samples/untracked/_config.js | 12 ++++--- .../samples/wrapped-$state-2/_config.js | 6 ++-- .../samples/wrapped-$state/_config.js | 9 ++++-- 260 files changed, 1435 insertions(+), 818 deletions(-) diff --git a/packages/svelte/tests/hydration/samples/binding-input/_config.js b/packages/svelte/tests/hydration/samples/binding-input/_config.js index f30b4acac6..ebb48abec6 100644 --- a/packages/svelte/tests/hydration/samples/binding-input/_config.js +++ b/packages/svelte/tests/hydration/samples/binding-input/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { assert_ok, test } from '../../test'; export default test({ @@ -12,11 +13,12 @@ export default test({ }; }, - async test(assert, target, _, component, window) { + test(assert, target, _, component, window) { const input = target.querySelector('input'); assert_ok(input); input.value = 'everybody'; - await input.dispatchEvent(new window.Event('input')); + input.dispatchEvent(new window.Event('input')); + flushSync(); assert.equal(component.name, 'everybody'); assert.htmlEqual( diff --git a/packages/svelte/tests/hydration/samples/event-handler/_config.js b/packages/svelte/tests/hydration/samples/event-handler/_config.js index f76ae62825..282670258c 100644 --- a/packages/svelte/tests/hydration/samples/event-handler/_config.js +++ b/packages/svelte/tests/hydration/samples/event-handler/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { assert_ok, test } from '../../test'; export default test({ @@ -16,7 +17,8 @@ export default test({ async test(assert, target, _, component, window) { const button = target.querySelector('button'); assert_ok(button); - await button.dispatchEvent(new window.MouseEvent('click', { bubbles: true })); + button.dispatchEvent(new window.MouseEvent('click', { bubbles: true })); + flushSync(); assert.ok(component.clicked); assert.htmlEqual( diff --git a/packages/svelte/tests/runtime-browser/custom-elements-samples/nested/_config.js b/packages/svelte/tests/runtime-browser/custom-elements-samples/nested/_config.js index 1c6926be17..f184fd5d99 100644 --- a/packages/svelte/tests/runtime-browser/custom-elements-samples/nested/_config.js +++ b/packages/svelte/tests/runtime-browser/custom-elements-samples/nested/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../assert'; const tick = () => Promise.resolve(); @@ -18,7 +19,8 @@ export default test({ assert.equal(p.innerHTML, 'Context works'); assert.equal(getComputedStyle(button).color, 'rgb(255, 0, 0)'); - await button.dispatchEvent(new MouseEvent('click', { bubbles: true })); + button.dispatchEvent(new MouseEvent('click', { bubbles: true })); + flushSync(); assert.equal(el.counter.count, 1); assert.equal(button.innerHTML, 'count: 1'); diff --git a/packages/svelte/tests/runtime-browser/custom-elements-samples/reflect-attributes-add-remove/_config.js b/packages/svelte/tests/runtime-browser/custom-elements-samples/reflect-attributes-add-remove/_config.js index d0ac2cd9cf..7463e8287f 100644 --- a/packages/svelte/tests/runtime-browser/custom-elements-samples/reflect-attributes-add-remove/_config.js +++ b/packages/svelte/tests/runtime-browser/custom-elements-samples/reflect-attributes-add-remove/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../assert'; const tick = () => Promise.resolve(); @@ -6,15 +7,18 @@ export default test({ const element = document.createElement('custom-element'); target.appendChild(element); await tick(); + flushSync(); /** @type {any} */ const el = target.querySelector('custom-element'); el.shadowRoot.querySelector('button').click(); await tick(); + flushSync(); assert.equal(el.getAttribute('aria-expanded'), ''); el.shadowRoot.querySelector('button').click(); await tick(); + flushSync(); assert.equal(el.getAttribute('aria-expanded'), null); } diff --git a/packages/svelte/tests/runtime-browser/custom-elements-samples/reflect-attributes/_config.js b/packages/svelte/tests/runtime-browser/custom-elements-samples/reflect-attributes/_config.js index 46fc009bd4..62930c2872 100644 --- a/packages/svelte/tests/runtime-browser/custom-elements-samples/reflect-attributes/_config.js +++ b/packages/svelte/tests/runtime-browser/custom-elements-samples/reflect-attributes/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../assert'; const tick = () => Promise.resolve(); @@ -23,6 +24,7 @@ export default test({ assert.equal(getComputedStyle(inner_p).color, 'rgb(255, 255, 255)'); button.click(); + flushSync(); await tick(); await tick(); diff --git a/packages/svelte/tests/runtime-legacy/samples/action-update/_config.js b/packages/svelte/tests/runtime-legacy/samples/action-update/_config.js index 1c1dcacf63..a3fcb4232e 100644 --- a/packages/svelte/tests/runtime-legacy/samples/action-update/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/action-update/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -5,7 +6,7 @@ export default test({ `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const button = target.querySelector('button'); ok(button); @@ -13,7 +14,8 @@ export default test({ const leave = new window.MouseEvent('mouseleave'); const ctrlPress = new window.KeyboardEvent('keydown', { ctrlKey: true }); - await button.dispatchEvent(enter); + button.dispatchEvent(enter); + flushSync(); assert.htmlEqual( target.innerHTML, ` @@ -22,7 +24,8 @@ export default test({ ` ); - await window.dispatchEvent(ctrlPress); + window.dispatchEvent(ctrlPress); + flushSync(); assert.htmlEqual( target.innerHTML, ` @@ -31,7 +34,8 @@ export default test({ ` ); - await button.dispatchEvent(leave); + button.dispatchEvent(leave); + flushSync(); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-legacy/samples/apply-directives-in-order-2/_config.js b/packages/svelte/tests/runtime-legacy/samples/apply-directives-in-order-2/_config.js index 62734c059b..d414ae1f24 100644 --- a/packages/svelte/tests/runtime-legacy/samples/apply-directives-in-order-2/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/apply-directives-in-order-2/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; /** @type {string[]} */ @@ -9,14 +10,15 @@ export default test({ return { value }; }, - async test({ assert, target, window }) { + test({ assert, target, window }) { const inputs = target.querySelectorAll('input'); - const event = new window.Event('input'); + const event = new window.Event('input', { bubbles: true }); for (const input of inputs) { input.value = 'h'; - await input.dispatchEvent(event); + input.dispatchEvent(event); + flushSync(); } // Svelte 5 breaking change, use:action now fires diff --git a/packages/svelte/tests/runtime-legacy/samples/apply-directives-in-order/_config.js b/packages/svelte/tests/runtime-legacy/samples/apply-directives-in-order/_config.js index aa9ce53877..aea50afafd 100644 --- a/packages/svelte/tests/runtime-legacy/samples/apply-directives-in-order/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/apply-directives-in-order/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -15,13 +16,14 @@ export default test({

`, - async test({ assert, target, window }) { + test({ assert, target, window }) { const input = target.querySelector('input'); ok(input); const event = new window.Event('input'); input.value = 'h'; - await input.dispatchEvent(event); + input.dispatchEvent(event); + flushSync(); assert.equal(input.value, 'H'); assert.htmlEqual( @@ -33,7 +35,8 @@ export default test({ ); input.value = 'he'; - await input.dispatchEvent(event); + input.dispatchEvent(event); + flushSync(); assert.equal(input.value, 'HE'); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/await-then-blowback-reactive/_config.js b/packages/svelte/tests/runtime-legacy/samples/await-then-blowback-reactive/_config.js index 2b8ba803da..665b8d94b6 100644 --- a/packages/svelte/tests/runtime-legacy/samples/await-then-blowback-reactive/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/await-then-blowback-reactive/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -17,8 +18,8 @@ export default test({ const change = new window.Event('change'); options[1].selected = true; - await select.dispatchEvent(change); - await Promise.resolve(); + select.dispatchEvent(change); + flushSync(); assert.equal(span.textContent, 'b'); } diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-indirect-computed/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-indirect-computed/_config.js index 99ec25dd9c..d6ad620356 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-indirect-computed/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-indirect-computed/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -13,7 +14,7 @@ export default test({ `, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const select = target.querySelector('select'); ok(select); const options = target.querySelectorAll('option'); @@ -21,7 +22,8 @@ export default test({ const change = new window.Event('change'); options[1].selected = true; - await select.dispatchEvent(change); + select.dispatchEvent(change); + flushSync(); assert.equal(component.selected.letter, 'B'); assert.htmlEqual( diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-checkbox-deep-contextual-b/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-checkbox-deep-contextual-b/_config.js index 35946383b7..ceb6c8b72e 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-checkbox-deep-contextual-b/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-checkbox-deep-contextual-b/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -25,17 +26,17 @@ export default test({ `, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const inputs = [...target.querySelectorAll('input')]; const event = new window.Event('change'); inputs[1].checked = true; - await inputs[1].dispatchEvent(event); + inputs[1].dispatchEvent(event); + flushSync(); - await component.clear(); - - await Promise.resolve(); + component.clear(); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -46,9 +47,10 @@ export default test({ ); inputs[2].checked = true; - await inputs[2].dispatchEvent(event); - - await component.clear(); + inputs[2].dispatchEvent(event); + flushSync(); + component.clear(); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-checkbox-deep-contextual/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-checkbox-deep-contextual/_config.js index 775ee643c7..c5fd2f7b49 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-checkbox-deep-contextual/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-checkbox-deep-contextual/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -37,7 +38,7 @@ export default test({

1 completed

`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const inputs = [...target.querySelectorAll('input')]; assert.ok(inputs[0].checked); @@ -47,9 +48,8 @@ export default test({ const event = new window.Event('change'); inputs[1].checked = true; - await inputs[1].dispatchEvent(event); - // Wait for the DOM to update - await Promise.resolve(); + inputs[1].dispatchEvent(event); + flushSync(); assert.equal(component.numCompleted, 2); assert.htmlEqual( diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-checkbox-group-outside-each/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-checkbox-group-outside-each/_config.js index 5be1d9b38d..489584127d 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-checkbox-group-outside-each/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-checkbox-group-outside-each/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; const values = [{ name: 'Alpha' }, { name: 'Beta' }, { name: 'Gamma' }]; @@ -37,7 +38,7 @@ export default test({

Beta

`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const inputs = target.querySelectorAll('input'); assert.equal(inputs[0].checked, false); assert.equal(inputs[1].checked, true); @@ -46,7 +47,8 @@ export default test({ const event = new window.Event('change'); inputs[0].checked = true; - await inputs[0].dispatchEvent(event); + inputs[0].dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-checkbox-group/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-checkbox-group/_config.js index ee508a564e..c669bbb21d 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-checkbox-group/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-checkbox-group/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; const values = [{ name: 'Alpha' }, { name: 'Beta' }, { name: 'Gamma' }]; @@ -37,7 +38,7 @@ export default test({

Beta

`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { let inputs = target.querySelectorAll('input'); assert.equal(inputs[0].checked, false); assert.equal(inputs[1].checked, true); @@ -46,7 +47,8 @@ export default test({ const event = new window.Event('change'); inputs[0].checked = true; - await inputs[0].dispatchEvent(event); + inputs[0].dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-checkbox/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-checkbox/_config.js index 813c12be1b..1d8a208682 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-checkbox/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-checkbox/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -15,7 +16,7 @@ export default test({

true

`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const input = target.querySelector('input'); ok(input); @@ -24,7 +25,8 @@ export default test({ const event = new window.Event('change'); input.checked = false; - await input.dispatchEvent(event); + input.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-duplicate-value/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-duplicate-value/_config.js index 6e9445ca0c..6d3c494d0d 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-duplicate-value/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-duplicate-value/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -19,7 +20,7 @@ export default test({ d
`, - async test({ assert, target, window }) { + test({ assert, target, window }) { const inputs = target.querySelectorAll('input'); const p = target.querySelector('p'); ok(p); @@ -37,7 +38,8 @@ export default test({ const event = new window.Event('change'); inputs[0].checked = true; - await inputs[0].dispatchEvent(event); + inputs[0].dispatchEvent(event); + flushSync(); assert.htmlEqual(p.innerHTML, 'Checked: a'); @@ -52,7 +54,8 @@ export default test({ assert.equal(inputs[7].checked, false); inputs[3].checked = true; - await inputs[3].dispatchEvent(event); + inputs[3].dispatchEvent(event); + flushSync(); assert.htmlEqual(p.innerHTML, 'Checked: a,d'); @@ -67,7 +70,8 @@ export default test({ assert.equal(inputs[7].checked, true); inputs[4].checked = false; - await inputs[4].dispatchEvent(event); + inputs[4].dispatchEvent(event); + flushSync(); assert.htmlEqual(p.innerHTML, 'Checked: d'); diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-1/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-1/_config.js index 47362f973b..9240723738 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-1/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-1/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; /** @type {Array<{ name: string }>} */ @@ -112,7 +113,7 @@ export default test({ `, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const inputs = target.querySelectorAll('input'); assert.equal(inputs[0].checked, false); assert.equal(inputs[1].checked, true); @@ -127,8 +128,8 @@ export default test({ const event = new window.Event('change'); inputs[0].checked = true; - await inputs[0].dispatchEvent(event); - await Promise.resolve(); + inputs[0].dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -181,8 +182,8 @@ export default test({ ` ); inputs[3].checked = true; - await inputs[3].dispatchEvent(event); - await Promise.resolve(); + inputs[3].dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -236,8 +237,8 @@ export default test({ ); inputs[8].checked = false; - await inputs[8].dispatchEvent(event); - await Promise.resolve(); + inputs[8].dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-10/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-10/_config.js index 86dc7d397c..4b573e2527 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-10/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-10/_config.js @@ -1,16 +1,19 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; // https://github.com/sveltejs/svelte/issues/7633 export default test({ - async test({ assert, target, component }) { + test({ assert, target, component }) { let inputs = target.querySelectorAll('input'); assert.equal(inputs[0].checked, true); assert.equal(inputs[1].checked, false); assert.equal(inputs[2].checked, false); - await component.moveDown(0); - await component.moveDown(1); + component.moveDown(0); + flushSync(); + component.moveDown(1); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-11/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-11/_config.js index 3ab329511d..64d0fd8f93 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-11/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-11/_config.js @@ -1,8 +1,9 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; // https://github.com/sveltejs/svelte/issues/6112 export default test({ - async test({ assert, target, component, window }) { + test({ assert, target, component, window }) { let inputs = target.querySelectorAll('input'); /** @param {Set} set */ @@ -45,8 +46,8 @@ export default test({ // dom to value inputs[3].checked = true; - await inputs[3].dispatchEvent(event); - await Promise.resolve(); + inputs[3].dispatchEvent(event); + flushSync(); check(new Set([0, 3, 5, 6])); assert.equal(component.pipelineOperations[1].operation.args[1].value, 'd'); @@ -84,8 +85,8 @@ export default test({ check(new Set([0, 3, 5, 6])); inputs[2].checked = true; - await inputs[2].dispatchEvent(event); - await Promise.resolve(); + inputs[2].dispatchEvent(event); + flushSync(); check(new Set([0, 2, 5, 6])); } diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-12/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-12/_config.js index b3fb0e7bc1..14b8030d89 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-12/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-12/_config.js @@ -1,8 +1,9 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; // https://github.com/sveltejs/svelte/issues/6112 export default test({ - async test({ assert, target, component, window }) { + test({ assert, target, component, window }) { let inputs = target.querySelectorAll('input'); /** @param {Set} set */ @@ -45,7 +46,8 @@ export default test({ // dom to value inputs[3].checked = true; - await inputs[3].dispatchEvent(event); + inputs[3].dispatchEvent(event); + flushSync(); check(new Set([0, 2, 3])); assert.deepEqual(component.pipelineOperations[1].operation.args[1].value, ['c', 'd']); @@ -83,7 +85,8 @@ export default test({ check(new Set([0, 2, 3])); inputs[5].checked = true; - await inputs[5].dispatchEvent(event); + inputs[5].dispatchEvent(event); + flushSync(); check(new Set([0, 2, 3, 5])); assert.deepEqual(component.pipelineOperations[1].operation.args[0].value, ['b']); diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-13/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-13/_config.js index 67dacfa99c..7fba86ef34 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-13/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-13/_config.js @@ -1,7 +1,8 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ - async test({ assert, target, window }) { + test({ assert, target, window }) { const [input1, input2] = /** @type {NodeListOf} */ ( target.querySelectorAll('input[type=text]') ); @@ -12,26 +13,28 @@ export default test({ const event = new window.Event('input'); input1.value = 'world'; - await input1.dispatchEvent(event); - await Promise.resolve(); + input1.dispatchEvent(event); + flushSync(); assert.equal(radio.checked, true); input2.value = 'foo'; - await input2.dispatchEvent(event); - await Promise.resolve(); + input2.dispatchEvent(event); + flushSync(); assert.equal(radio.checked, false); input1.value = 'foo'; - await input1.dispatchEvent(event); + input1.dispatchEvent(event); + flushSync(); assert.equal(radio.checked, true); input1.value = 'bar'; - await input1.dispatchEvent(event); + input1.dispatchEvent(event); + flushSync(); assert.equal(radio.checked, false); input2.value = 'bar'; - await input2.dispatchEvent(event); - await Promise.resolve(); + input2.dispatchEvent(event); + flushSync(); assert.equal(radio.checked, true); } }); diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-14/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-14/_config.js index 96d98b24c8..a0649c44de 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-14/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-14/_config.js @@ -1,39 +1,40 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ - async test({ assert, target, window }) { + test({ assert, target, window }) { const [input1, input2, input3, input4] = target.querySelectorAll('input'); const [p] = target.querySelectorAll('p'); const event = new window.Event('change'); input1.checked = true; - await input1.dispatchEvent(event); - await Promise.resolve(); + input1.dispatchEvent(event); + flushSync(); assert.htmlEqual(p.innerHTML, '["1a"]'); input2.checked = true; - await input1.dispatchEvent(event); - await Promise.resolve(); + input1.dispatchEvent(event); + flushSync(); assert.htmlEqual(p.innerHTML, '["1a","1b"]'); input3.checked = true; - await input1.dispatchEvent(event); - await Promise.resolve(); + input1.dispatchEvent(event); + flushSync(); assert.htmlEqual(p.innerHTML, '["1a","1b","2a"]'); input4.checked = true; - await input1.dispatchEvent(event); - await Promise.resolve(); + input1.dispatchEvent(event); + flushSync(); assert.htmlEqual(p.innerHTML, '["1a","1b","2a","2b"]'); input1.checked = false; - await input1.dispatchEvent(event); - await Promise.resolve(); + input1.dispatchEvent(event); + flushSync(); assert.htmlEqual(p.innerHTML, '["1b","2a","2b"]'); input3.checked = false; - await input1.dispatchEvent(event); - await Promise.resolve(); + input1.dispatchEvent(event); + flushSync(); assert.htmlEqual(p.innerHTML, '["1b","2b"]'); } }); diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-15/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-15/_config.js index 54ddd20af1..a7996e46ff 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-15/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-15/_config.js @@ -1,7 +1,8 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ - async test({ assert, target }) { + test({ assert, target }) { const checkboxes = /** @type {NodeListOf} */ ( target.querySelectorAll('input[type="checkbox"]') ); @@ -10,12 +11,14 @@ export default test({ assert.isTrue(checkboxes[1].checked); assert.isFalse(checkboxes[2].checked); - await checkboxes[1].click(); + checkboxes[1].click(); + flushSync(); const noChecked = target.querySelector('#output')?.innerHTML; assert.equal(noChecked, ''); - await checkboxes[1].click(); + checkboxes[1].click(); + flushSync(); const oneChecked = target.querySelector('#output')?.innerHTML; assert.equal(oneChecked, 'Mint choc chip'); diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-16/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-16/_config.js index 54ddd20af1..a7996e46ff 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-16/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-16/_config.js @@ -1,7 +1,8 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ - async test({ assert, target }) { + test({ assert, target }) { const checkboxes = /** @type {NodeListOf} */ ( target.querySelectorAll('input[type="checkbox"]') ); @@ -10,12 +11,14 @@ export default test({ assert.isTrue(checkboxes[1].checked); assert.isFalse(checkboxes[2].checked); - await checkboxes[1].click(); + checkboxes[1].click(); + flushSync(); const noChecked = target.querySelector('#output')?.innerHTML; assert.equal(noChecked, ''); - await checkboxes[1].click(); + checkboxes[1].click(); + flushSync(); const oneChecked = target.querySelector('#output')?.innerHTML; assert.equal(oneChecked, 'Mint choc chip'); diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-2/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-2/_config.js index 4ec313aed7..ad5b33fef4 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-2/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-2/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -27,7 +28,7 @@ export default test({

1, 2, 3

`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const inputs = target.querySelectorAll('input'); assert.equal(inputs[0].checked, true); assert.equal(inputs[1].checked, true); @@ -36,7 +37,8 @@ export default test({ const event = new window.Event('change'); inputs[0].checked = false; - await inputs[0].dispatchEvent(event); + inputs[0].dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-3/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-3/_config.js index 47c73ea56a..84b783df75 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-3/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-3/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; /** @type {Array<{ name: string }>} */ @@ -110,7 +111,7 @@ export default test({

Gamma

`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const inputs = target.querySelectorAll('input'); assert.equal(inputs[0].checked, false); @@ -126,7 +127,8 @@ export default test({ const event = new window.Event('change'); inputs[0].checked = true; - await inputs[0].dispatchEvent(event); + inputs[0].dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -179,7 +181,8 @@ export default test({ ` ); inputs[3].checked = true; - await inputs[3].dispatchEvent(event); + inputs[3].dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -233,7 +236,8 @@ export default test({ ); inputs[8].checked = false; - await inputs[8].dispatchEvent(event); + inputs[8].dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-4/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-4/_config.js index 27e13fbbf2..1a78e91214 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-4/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-4/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -37,7 +38,7 @@ export default test({

3

`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const inputs = target.querySelectorAll('input'); assert.equal(inputs[0].checked, true); assert.equal(inputs[1].checked, false); @@ -58,8 +59,8 @@ export default test({ const event = new window.Event('change'); inputs[2].checked = true; - await inputs[2].dispatchEvent(event); - await Promise.resolve(); + inputs[2].dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -84,8 +85,8 @@ export default test({ ); inputs[9].checked = true; - await inputs[9].dispatchEvent(event); - await Promise.resolve(); + inputs[9].dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -110,24 +111,24 @@ export default test({ ); inputs[4].checked = false; - await inputs[4].dispatchEvent(event); - await Promise.resolve(); + inputs[4].dispatchEvent(event); + flushSync(); inputs[5].checked = true; - await inputs[5].dispatchEvent(event); - await Promise.resolve(); + inputs[5].dispatchEvent(event); + flushSync(); inputs[6].checked = true; - await inputs[6].dispatchEvent(event); - await Promise.resolve(); + inputs[6].dispatchEvent(event); + flushSync(); inputs[7].checked = true; - await inputs[7].dispatchEvent(event); - await Promise.resolve(); + inputs[7].dispatchEvent(event); + flushSync(); inputs[11].checked = false; - await inputs[11].dispatchEvent(event); - await Promise.resolve(); + inputs[11].dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-5/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-5/_config.js index ccd1f8f26b..08af96a844 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-5/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-5/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -37,7 +38,7 @@ export default test({

1

`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const inputs = target.querySelectorAll('input'); assert.equal(inputs[0].checked, true); assert.equal(inputs[1].checked, false); @@ -58,8 +59,8 @@ export default test({ const event = new window.Event('change'); inputs[2].checked = true; - await inputs[2].dispatchEvent(event); - await Promise.resolve(); + inputs[2].dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -84,8 +85,8 @@ export default test({ ); inputs[8].checked = true; - await inputs[8].dispatchEvent(event); - await Promise.resolve(); + inputs[8].dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -150,8 +151,8 @@ export default test({ assert.equal(inputs[11].checked, false); inputs[5].checked = false; - await inputs[5].dispatchEvent(event); - await Promise.resolve(); + inputs[5].dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-6/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-6/_config.js index 4dff6b2ce2..b4cf9e7ed6 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-6/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-6/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -15,7 +16,7 @@ export default test({

`, - async test({ assert, target, window }) { + test({ assert, target, window }) { const inputs = target.querySelectorAll('input'); assert.equal(inputs[0].checked, false); assert.equal(inputs[1].checked, false); @@ -32,7 +33,8 @@ export default test({ const event = new window.Event('change'); inputs[2].checked = true; - await inputs[2].dispatchEvent(event); + inputs[2].dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -53,7 +55,8 @@ export default test({ ); inputs[4].checked = true; - await inputs[4].dispatchEvent(event); + inputs[4].dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -74,7 +77,8 @@ export default test({ ); inputs[5].checked = true; - await inputs[5].dispatchEvent(event); + inputs[5].dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-8/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-8/_config.js index 865201f062..384ca0a20c 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-8/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-8/_config.js @@ -1,8 +1,9 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; // https://github.com/sveltejs/svelte/issues/7884 export default test({ - async test({ assert, target, component, window }) { + test({ assert, target, component, window }) { let inputs = target.querySelectorAll('input'); assert.htmlEqual( @@ -27,11 +28,14 @@ export default test({ const event = new window.Event('change'); inputs[0].checked = true; - await inputs[0].dispatchEvent(event); + inputs[0].dispatchEvent(event); + flushSync(); inputs[2].checked = true; - await inputs[2].dispatchEvent(event); + inputs[2].dispatchEvent(event); + flushSync(); inputs[3].checked = true; - await inputs[3].dispatchEvent(event); + inputs[3].dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -52,8 +56,8 @@ export default test({ ` ); - await component.update(); - await Promise.resolve(); + component.update(); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -70,7 +74,8 @@ export default test({ inputs = target.querySelectorAll('input'); inputs[0].checked = true; - await inputs[0].dispatchEvent(event); + inputs[0].dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-9/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-9/_config.js index 1554c3a7b7..b566e31cb9 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-9/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-each-9/_config.js @@ -1,18 +1,19 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; // https://github.com/sveltejs/svelte/issues/7633 export default test({ - async test({ assert, target, component }) { + test({ assert, target, component }) { let inputs = target.querySelectorAll('input'); assert.equal(inputs[0].checked, true); assert.equal(inputs[1].checked, false); assert.equal(inputs[2].checked, false); - await component.moveDown(0); - await component.moveDown(1); - - await Promise.resolve(); + component.moveDown(0); + flushSync(); + component.moveDown(1); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -34,13 +35,15 @@ export default test({ assert.equal(inputs[1].checked, false); assert.equal(inputs[2].checked, true); - await (component.current = 'b'); + component.current = 'b'; + flushSync(); assert.equal(inputs[0].checked, true); assert.equal(inputs[1].checked, false); assert.equal(inputs[2].checked, false); - await component.moveDown(1); + component.moveDown(1); + flushSync(); // after shifting order, should still keep the correct radio checked inputs = target.querySelectorAll('input'); diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-if-gh-8372-1/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-if-gh-8372-1/_config.js index 778cb49df9..d91a7ebadb 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-if-gh-8372-1/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-if-gh-8372-1/_config.js @@ -1,7 +1,8 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ - async test({ assert, target, component, window }) { + test({ assert, target, component, window }) { const button = target.querySelector('button'); ok(button); const clickEvent = new window.Event('click', { bubbles: true }); @@ -27,24 +28,29 @@ export default test({ validate_inputs(true, true); input1.checked = false; - await input1.dispatchEvent(changeEvent); + input1.dispatchEvent(changeEvent); + flushSync(); assert.deepEqual(component.test, ['b']); input2.checked = false; - await input2.dispatchEvent(changeEvent); + input2.dispatchEvent(changeEvent); + flushSync(); assert.deepEqual(component.test, []); input1.checked = true; input2.checked = true; - await input1.dispatchEvent(changeEvent); - await input2.dispatchEvent(changeEvent); + input1.dispatchEvent(changeEvent); + input2.dispatchEvent(changeEvent); + flushSync(); assert.deepEqual(component.test, ['a', 'b']); - await button.dispatchEvent(clickEvent); + button.dispatchEvent(clickEvent); + flushSync(); assert.deepEqual(component.test, ['a', 'b']); // should it be ['a'] only? valid arguments for both outcomes input1.checked = false; - await input1.dispatchEvent(changeEvent); + input1.dispatchEvent(changeEvent); + flushSync(); assert.deepEqual(component.test, []); } }); diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-if-gh-8372-2/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-if-gh-8372-2/_config.js index 0676ab990f..8647d33f05 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-group-if-gh-8372-2/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-group-if-gh-8372-2/_config.js @@ -1,7 +1,8 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ - async test({ assert, target, component, window }) { + test({ assert, target, component, window }) { const button = target.querySelector('button'); ok(button); const clickEvent = new window.Event('click', { bubbles: true }); @@ -27,18 +28,22 @@ export default test({ validate_inputs(false, true); input1.checked = true; - await input1.dispatchEvent(changeEvent); + input1.dispatchEvent(changeEvent); + flushSync(); assert.deepEqual(component.test, 'a'); input2.checked = true; - await input2.dispatchEvent(changeEvent); + input2.dispatchEvent(changeEvent); + flushSync(); assert.deepEqual(component.test, 'b'); - await button.dispatchEvent(clickEvent); + button.dispatchEvent(clickEvent); + flushSync(); assert.deepEqual(component.test, 'b'); // should it be undefined? valid arguments for both outcomes input1.checked = true; - await input1.dispatchEvent(changeEvent); + input1.dispatchEvent(changeEvent); + flushSync(); assert.deepEqual(component.test, 'a'); } }); diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-number/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-number/_config.js index ac089e8797..4c0b68ecb9 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-number/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-number/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -15,7 +16,7 @@ export default test({

number 42

`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const input = target.querySelector('input'); ok(input); assert.equal(input.value, '42'); @@ -23,7 +24,8 @@ export default test({ const event = new window.Event('input'); input.value = '43'; - await input.dispatchEvent(event); + input.dispatchEvent(event); + flushSync(); assert.equal(component.count, 43); assert.htmlEqual( @@ -46,7 +48,8 @@ export default test({ // empty string should be treated as null input.value = ''; - await input.dispatchEvent(event); + input.dispatchEvent(event); + flushSync(); assert.equal(component.count, null); assert.htmlEqual( diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-radio-group/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-radio-group/_config.js index 6a34d7cd5b..b0d5064383 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-radio-group/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-radio-group/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; const values = [{ name: 'Alpha' }, { name: 'Beta' }, { name: 'Gamma' }]; @@ -37,7 +38,7 @@ export default test({

Beta

`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const inputs = target.querySelectorAll('input'); assert.equal(inputs[0].checked, false); assert.equal(inputs[1].checked, true); @@ -46,7 +47,8 @@ export default test({ const event = new window.Event('change'); inputs[0].checked = true; - await inputs[0].dispatchEvent(event); + inputs[0].dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-range-change-with-max/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-range-change-with-max/_config.js index c56f2d6d6f..1c5a41ced3 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-range-change-with-max/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-range-change-with-max/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -13,7 +14,7 @@ export default test({

10 of 10

`, - async test({ assert, target, window }) { + test({ assert, target, window }) { const input = target.querySelector('input'); ok(input); assert.equal(input.value, '10'); @@ -25,8 +26,8 @@ export default test({ const button = target.querySelector('button'); ok(button); - await button.dispatchEvent(new window.Event('click', { bubbles: true })); - await Promise.resolve(); + button.dispatchEvent(new window.Event('click', { bubbles: true })); + flushSync(); assert.equal(input.value, '20'); assert.htmlEqual( diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-range/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-range/_config.js index d7aa15433f..9c3eecf370 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-range/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-range/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -15,7 +16,7 @@ export default test({

number 42

`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const input = target.querySelector('input'); ok(input); assert.equal(input.value, '42'); @@ -23,7 +24,8 @@ export default test({ const event = new window.Event('input'); input.value = '43'; - await input.dispatchEvent(event); + input.dispatchEvent(event); + flushSync(); assert.equal(component.count, 43); assert.htmlEqual( diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-text-contextual-deconflicted/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-text-contextual-deconflicted/_config.js index 4917e8427e..45403898ae 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-text-contextual-deconflicted/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-text-contextual-deconflicted/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -15,7 +16,7 @@ export default test({

x

`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const inputs = [...target.querySelectorAll('input')]; const event = new window.Event('input'); @@ -23,9 +24,10 @@ export default test({ inputs[0].value = 'b'; inputs[1].value = 'y'; - await inputs[0].dispatchEvent(event); - await inputs[1].dispatchEvent(event); - await Promise.resolve(); + inputs[0].dispatchEvent(event); + flushSync(); + inputs[1].dispatchEvent(event); + flushSync(); assert.equal(component.foo, 'b'); assert.equal(component.items[0], 'y'); diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-text-contextual-reactive/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-text-contextual-reactive/_config.js index d8fd4c72f3..d20e4a1e88 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-text-contextual-reactive/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-text-contextual-reactive/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -45,7 +46,7 @@ export default test({

remaining:one / done:two / remaining:three

`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { /** * @param {number} i * @param {string} text @@ -88,8 +89,8 @@ export default test({ ` ); - await set_text(1, 'four'); - await Promise.resolve(); + set_text(1, 'four'); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -113,8 +114,8 @@ export default test({ { done: false, text: 'four' } ]); - await set_done(0, true); - await Promise.resolve(); + set_done(0, true); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-text-contextual/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-text-contextual/_config.js index 088691854e..9922ce1c78 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-text-contextual/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-text-contextual/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -29,7 +30,7 @@ export default test({ `, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const inputs = [...target.querySelectorAll('input')]; const items = component.items; const event = new window.Event('input'); @@ -37,8 +38,8 @@ export default test({ assert.equal(inputs[0].value, 'one'); inputs[1].value = 'four'; - await inputs[1].dispatchEvent(event); - await Promise.resolve(); + inputs[1].dispatchEvent(event); + flushSync(); assert.equal(items[1], 'four'); assert.htmlEqual( diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-text-deconflicted/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-text-deconflicted/_config.js index ea05ae8e1e..43e0eec907 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-text-deconflicted/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-text-deconflicted/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -15,7 +16,7 @@ export default test({ `, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const input = target.querySelector('input'); ok(input); assert.equal(input.value, 'world'); @@ -23,7 +24,8 @@ export default test({ const event = new window.Event('input'); input.value = 'everybody'; - await input.dispatchEvent(event); + input.dispatchEvent(event); + flushSync(); assert.equal(input.value, 'everybody'); assert.htmlEqual( diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-text-deep-computed-dynamic/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-text-deep-computed-dynamic/_config.js index eab5776eb0..77089cd01d 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-text-deep-computed-dynamic/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-text-deep-computed-dynamic/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -18,7 +19,7 @@ export default test({
{"foo":"a","bar":"b","baz":"c"}
`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const input = target.querySelector('input'); ok(input); const event = new window.Event('input'); @@ -27,7 +28,8 @@ export default test({ // edit bar input.value = 'e'; - await input.dispatchEvent(event); + input.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -42,7 +44,8 @@ export default test({ assert.equal(input.value, 'c'); input.value = 'f'; - await input.dispatchEvent(event); + input.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -57,7 +60,8 @@ export default test({ assert.equal(input.value, 'a'); input.value = 'd'; - await input.dispatchEvent(event); + input.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-text-deep-computed/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-text-deep-computed/_config.js index 039ddcba69..188b3360b5 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-text-deep-computed/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-text-deep-computed/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -15,7 +16,7 @@ export default test({

hello alice

`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const input = target.querySelector('input'); ok(input); @@ -24,7 +25,8 @@ export default test({ const event = new window.Event('input'); input.value = 'bob'; - await input.dispatchEvent(event); + input.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-text-deep-contextual-computed-dynamic/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-text-deep-contextual-computed-dynamic/_config.js index 548fd8f4e4..51e4e12f5f 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-text-deep-contextual-computed-dynamic/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-text-deep-contextual-computed-dynamic/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -18,7 +19,7 @@ export default test({
{"foo":"a","bar":"b","baz":"c"}
`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const input = target.querySelector('input'); ok(input); const event = new window.Event('input'); @@ -27,8 +28,8 @@ export default test({ // edit bar input.value = 'e'; - await input.dispatchEvent(event); - await Promise.resolve(); + input.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -43,8 +44,8 @@ export default test({ assert.equal(input.value, 'c'); input.value = 'f'; - await input.dispatchEvent(event); - await Promise.resolve(); + input.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -59,8 +60,8 @@ export default test({ assert.equal(input.value, 'a'); input.value = 'd'; - await input.dispatchEvent(event); - await Promise.resolve(); + input.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-text-deep-contextual/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-text-deep-contextual/_config.js index dc486ec9ba..fad359625a 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-text-deep-contextual/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-text-deep-contextual/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -19,16 +20,16 @@ export default test({

three

`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const inputs = [...target.querySelectorAll('input')]; assert.equal(inputs[0].value, 'one'); - const event = new window.Event('input'); + const event = new window.Event('input', { bubbles: true }); inputs[1].value = 'four'; - await inputs[1].dispatchEvent(event); - await Promise.resolve(); + inputs[1].dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-text-deep/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-text-deep/_config.js index 8a8a2aba6b..8a4dfc0f78 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-text-deep/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-text-deep/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -15,7 +16,7 @@ export default test({

hello alice

`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const input = target.querySelector('input'); ok(input); @@ -24,7 +25,8 @@ export default test({ const event = new window.Event('input'); input.value = 'bob'; - await input.dispatchEvent(event); + input.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-text/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-text/_config.js index 8720cfb409..f59b6d4f1c 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-input-text/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-text/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -15,7 +16,7 @@ export default test({

hello world

`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const input = target.querySelector('input'); ok(input); assert.equal(input.value, 'world'); @@ -23,7 +24,8 @@ export default test({ const event = new window.Event('input'); input.value = 'everybody'; - await input.dispatchEvent(event); + input.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-select-implicit-option-value/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-select-implicit-option-value/_config.js index 2babb062f2..1fea6c08f4 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-select-implicit-option-value/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-select-implicit-option-value/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -15,7 +16,7 @@ export default test({

foo: 2

`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const select = target.querySelector('select'); ok(select); const options = [...target.querySelectorAll('option')]; @@ -26,7 +27,8 @@ export default test({ const change = new window.Event('change'); options[2].selected = true; - await select.dispatchEvent(change); + select.dispatchEvent(change); + flushSync(); assert.equal(component.foo, 3); assert.htmlEqual( diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-select-multiple/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-select-multiple/_config.js index c2d18ae661..42c0e018e5 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-select-multiple/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-select-multiple/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -15,7 +16,7 @@ export default test({

selected: two, three

`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const select = target.querySelector('select'); ok(select); const options = [...target.querySelectorAll('option')]; @@ -23,7 +24,8 @@ export default test({ const change = new window.Event('change'); options[1].selected = false; - await select.dispatchEvent(change); + select.dispatchEvent(change); + flushSync(); assert.deepEqual(component.selected, ['three']); assert.htmlEqual( @@ -40,7 +42,8 @@ export default test({ ); options[0].selected = true; - await select.dispatchEvent(change); + select.dispatchEvent(change); + flushSync(); assert.deepEqual(component.selected, ['one', 'three']); assert.htmlEqual( diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-select-optgroup/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-select-optgroup/_config.js index 71c8152398..d9544b7c4d 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-select-optgroup/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-select-optgroup/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -23,7 +24,7 @@ export default test({ `, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const select = target.querySelector('select'); ok(select); @@ -35,7 +36,8 @@ export default test({ const change = new window.Event('change'); options[1].selected = true; - await select.dispatchEvent(change); + select.dispatchEvent(change); + flushSync(); assert.equal(component.name, 'World'); assert.htmlEqual( diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-select/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-select/_config.js index 8d467d45b4..5577ec2393 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-select/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-select/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -17,7 +18,7 @@ export default test({ return { selected: 'one' }; }, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const select = target.querySelector('select'); ok(select); @@ -29,7 +30,8 @@ export default test({ const change = new window.Event('change'); options[1].selected = true; - await select.dispatchEvent(change); + select.dispatchEvent(change); + flushSync(); assert.equal(component.selected, 'two'); assert.htmlEqual( diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-store-deep/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-store-deep/_config.js index 1de88c4a6c..4854d6dec6 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-store-deep/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-store-deep/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -11,7 +12,7 @@ export default test({

hello world

`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const input = target.querySelector('input'); ok(input); @@ -30,7 +31,8 @@ export default test({ }); input.value = 'everybody'; - await input.dispatchEvent(event); + input.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -40,7 +42,8 @@ export default test({ ` ); - await component.user.set({ name: 'goodbye' }); + component.user.set({ name: 'goodbye' }); + flushSync(); assert.equal(input.value, 'goodbye'); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-store-each/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-store-each/_config.js index 80f7b58975..d2df354ea6 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-store-each/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-store-each/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -9,12 +10,13 @@ export default test({ 0 `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const input = target.querySelector('input'); ok(input); input.checked = true; - await input.dispatchEvent(new window.Event('change', { bubbles: true })); + input.dispatchEvent(new window.Event('change', { bubbles: true })); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-store/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-store/_config.js index b8c4ab1f9a..a8ab343002 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-store/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-store/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -15,7 +16,7 @@ export default test({
world
`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const input = target.querySelector('input'); ok(input); assert.equal(input.value, 'world'); @@ -31,7 +32,8 @@ export default test({ }); input.value = 'everybody'; - await input.dispatchEvent(event); + input.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -43,7 +45,8 @@ export default test({ ` ); - await component.name.set('goodbye'); + component.name.set('goodbye'); + flushSync(); assert.equal(input.value, 'goodbye'); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-textarea/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-textarea/_config.js index 96536883e5..7b8525279f 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-textarea/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-textarea/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -15,7 +16,7 @@ export default test({

some text

`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const textarea = target.querySelector('textarea'); ok(textarea); assert.equal(textarea.value, 'some text'); @@ -23,7 +24,8 @@ export default test({ const event = new window.Event('input'); textarea.value = 'hello'; - await textarea.dispatchEvent(event); + textarea.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-this-and-value/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-this-and-value/_config.js index 18b2bc9089..6bffe1b469 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-this-and-value/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-this-and-value/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -11,13 +12,14 @@ export default test({

value: initial

`, - async test({ assert, target, window }) { + test({ assert, target, window }) { const input = target.querySelector('input'); ok(input); const event = new window.Event('input'); input.value = 'changed'; - await input.dispatchEvent(event); + input.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-using-props/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-using-props/_config.js index 672932653c..1134b20d0c 100644 --- a/packages/svelte/tests/runtime-legacy/samples/binding-using-props/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/binding-using-props/_config.js @@ -1,13 +1,15 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ - async test({ assert, target, window }) { + test({ assert, target, window }) { const input = target.querySelector('input'); ok(input); const event = new window.Event('input'); input.value = 'changed'; - await input.dispatchEvent(event); + input.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/bitmask-overflow-if/_config.js b/packages/svelte/tests/runtime-legacy/samples/bitmask-overflow-if/_config.js index c3fd125ea9..d6e04b8fa4 100644 --- a/packages/svelte/tests/runtime-legacy/samples/bitmask-overflow-if/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/bitmask-overflow-if/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -10,7 +11,8 @@ export default test({ async test({ assert, target, window }) { const button = target.querySelector('button'); - await button?.dispatchEvent(new window.MouseEvent('click', { bubbles: true })); + button?.dispatchEvent(new window.MouseEvent('click', { bubbles: true })); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/bitmask-overflow-slot-3/_config.js b/packages/svelte/tests/runtime-legacy/samples/bitmask-overflow-slot-3/_config.js index 9303a84511..c2f0e69ef5 100644 --- a/packages/svelte/tests/runtime-legacy/samples/bitmask-overflow-slot-3/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/bitmask-overflow-slot-3/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -7,10 +8,11 @@ export default test({ `, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { // change from inside const button = target.querySelector('button'); - await button?.dispatchEvent(new window.Event('click', { bubbles: true })); + button?.dispatchEvent(new window.Event('click', { bubbles: true })); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/bitmask-overflow-slot-4/_config.js b/packages/svelte/tests/runtime-legacy/samples/bitmask-overflow-slot-4/_config.js index 8fc86cd826..51e9d53ef0 100644 --- a/packages/svelte/tests/runtime-legacy/samples/bitmask-overflow-slot-4/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/bitmask-overflow-slot-4/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -8,10 +9,11 @@ export default test({ `, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { // change from inside const button = target.querySelector('button'); - await button?.dispatchEvent(new window.Event('click', { bubbles: true })); + button?.dispatchEvent(new window.Event('click', { bubbles: true })); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/bitmask-overflow-slot-5/_config.js b/packages/svelte/tests/runtime-legacy/samples/bitmask-overflow-slot-5/_config.js index ebec5b2ae9..768af95193 100644 --- a/packages/svelte/tests/runtime-legacy/samples/bitmask-overflow-slot-5/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/bitmask-overflow-slot-5/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -10,10 +11,11 @@ export default test({ `, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { // change from inside const button = target.querySelector('button'); - await button?.dispatchEvent(new window.Event('click', { bubbles: true })); + button?.dispatchEvent(new window.Event('click', { bubbles: true })); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/bitmask-overflow-slot-6/_config.js b/packages/svelte/tests/runtime-legacy/samples/bitmask-overflow-slot-6/_config.js index 33e55863ae..a905589f52 100644 --- a/packages/svelte/tests/runtime-legacy/samples/bitmask-overflow-slot-6/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/bitmask-overflow-slot-6/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; // overflow bitmask + slot missing `let:` @@ -9,10 +10,11 @@ export default test({ `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const button = target.querySelectorAll('button')[1]; const div = target.querySelector('div'); - await div?.dispatchEvent(new window.MouseEvent('click', { bubbles: true })); + div?.dispatchEvent(new window.MouseEvent('click', { bubbles: true })); + flushSync(); assert.htmlEqual( target.innerHTML, ` @@ -24,7 +26,8 @@ export default test({ ` ); - await button.dispatchEvent(new window.MouseEvent('click', { bubbles: true })); + button.dispatchEvent(new window.MouseEvent('click', { bubbles: true })); + flushSync(); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-legacy/samples/component-binding-accessors/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-binding-accessors/_config.js index 827c19ba3a..1a6c9039a7 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-binding-accessors/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-binding-accessors/_config.js @@ -1,20 +1,23 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ - async test({ assert, target, window }) { + test({ assert, target, window }) { const [input1, input2] = target.querySelectorAll('input'); assert.equal(input1.value, 'something'); assert.equal(input2.value, 'something'); input1.value = 'abc'; - await input1.dispatchEvent(new window.Event('input')); + input1.dispatchEvent(new window.Event('input')); + flushSync(); assert.equal(input1.value, 'abc'); assert.equal(input2.value, 'abc'); - await target + target .querySelector('button') ?.dispatchEvent(new window.MouseEvent('click', { bubbles: true })); + flushSync(); assert.equal(input1.value, 'Reset'); assert.equal(input2.value, 'Reset'); diff --git a/packages/svelte/tests/runtime-legacy/samples/component-binding-blowback-d/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-binding-blowback-d/_config.js index 54ce1a678f..aafce86336 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-binding-blowback-d/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-binding-blowback-d/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -9,11 +10,11 @@ export default test({

`, - async test({ assert, target, window }) { + test({ assert, target, window }) { const button = target.querySelectorAll('button')[1]; - await button.dispatchEvent(new window.Event('click', { bubbles: true })); - await Promise.resolve(); + button.dispatchEvent(new window.Event('click', { bubbles: true })); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/component-binding-blowback-e/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-binding-blowback-e/_config.js index 3867ef6a5e..1d5ead8b72 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-binding-blowback-e/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-binding-blowback-e/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -9,11 +10,11 @@ export default test({

`, - async test({ assert, target, window }) { + test({ assert, target, window }) { const button = target.querySelectorAll('button')[1]; - await button.dispatchEvent(new window.Event('click', { bubbles: true })); - await Promise.resolve(); + button.dispatchEvent(new window.Event('click', { bubbles: true })); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/component-binding-blowback-f/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-binding-blowback-f/_config.js index fd82716f4a..82a6dcefea 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-binding-blowback-f/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-binding-blowback-f/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -17,15 +18,11 @@ export default test({

`, - async test({ assert, target, window }) { + test({ assert, target, window }) { const button = target.querySelectorAll('button')[1]; - await button.dispatchEvent(new window.Event('click', { bubbles: true })); - // Multiple ticks necessary because each update is async - await Promise.resolve(); - await Promise.resolve(); - await Promise.resolve(); - await Promise.resolve(); + button.dispatchEvent(new window.Event('click', { bubbles: true })); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/component-binding-deep/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-binding-deep/_config.js index 0479b7c529..a8881cb1ed 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-binding-deep/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-binding-deep/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -11,14 +12,14 @@ export default test({

foo

`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const event = new window.MouseEvent('input'); const input = target.querySelector('input'); ok(input); input.value = 'blah'; - await input.dispatchEvent(event); - await Promise.resolve(); + input.dispatchEvent(event); + flushSync(); assert.deepEqual(component.deep, { name: 'blah' }); assert.htmlEqual( diff --git a/packages/svelte/tests/runtime-legacy/samples/component-binding-deep2/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-binding-deep2/_config.js index 0479b7c529..a8881cb1ed 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-binding-deep2/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-binding-deep2/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -11,14 +12,14 @@ export default test({

foo

`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const event = new window.MouseEvent('input'); const input = target.querySelector('input'); ok(input); input.value = 'blah'; - await input.dispatchEvent(event); - await Promise.resolve(); + input.dispatchEvent(event); + flushSync(); assert.deepEqual(component.deep, { name: 'blah' }); assert.htmlEqual( diff --git a/packages/svelte/tests/runtime-legacy/samples/component-binding-each-nested/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-binding-each-nested/_config.js index 6b8c50a023..1826f96913 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-binding-each-nested/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-binding-each-nested/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -13,13 +14,13 @@ export default test({

foo, bar, baz

`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const event = new window.MouseEvent('input'); const inputs = target.querySelectorAll('input'); inputs[0].value = 'blah'; - await inputs[0].dispatchEvent(event); - await Promise.resolve(); + inputs[0].dispatchEvent(event); + flushSync(); assert.deepEqual(component.a, [{ name: 'blah' }, { name: 'bar' }, { name: 'baz' }]); assert.htmlEqual( diff --git a/packages/svelte/tests/runtime-legacy/samples/component-binding-each/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-binding-each/_config.js index 8c8fad3748..5242488d1f 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-binding-each/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-binding-each/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -13,13 +14,13 @@ export default test({

foo, bar, baz

`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const event = new window.MouseEvent('input'); const inputs = target.querySelectorAll('input'); inputs[0].value = 'blah'; - await inputs[0].dispatchEvent(event); - await Promise.resolve(); + inputs[0].dispatchEvent(event); + flushSync(); assert.deepEqual(component.a, ['blah', 'bar', 'baz']); assert.htmlEqual( diff --git a/packages/svelte/tests/runtime-legacy/samples/component-binding-infinite-loop/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-binding-infinite-loop/_config.js index 57b3388ab4..e7759ccc87 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-binding-infinite-loop/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-binding-infinite-loop/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -28,12 +29,12 @@ export default test({

1

`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const click = new window.MouseEvent('click', { bubbles: true }); const spans = target.querySelectorAll('span'); - await spans[0].dispatchEvent(click); - await Promise.resolve(); + spans[0].dispatchEvent(click); + flushSync(); assert.equal(component.currentIdentifier, 1); assert.htmlEqual( @@ -65,8 +66,8 @@ export default test({ ` ); - await spans[0].dispatchEvent(click); - await Promise.resolve(); + spans[0].dispatchEvent(click); + flushSync(); assert.equal(component.currentIdentifier, null); assert.htmlEqual( diff --git a/packages/svelte/tests/runtime-legacy/samples/component-binding-nested/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-binding-nested/_config.js index e81c2580f6..630ddef5dc 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-binding-nested/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-binding-nested/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -15,11 +16,12 @@ export default test({

baz x: initial

`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const click = new window.MouseEvent('click', { bubbles: true }); const buttons = [...target.querySelectorAll('button')]; - await buttons[0].dispatchEvent(click); + buttons[0].dispatchEvent(click); + flushSync(); assert.equal(component.x, 'p'); assert.htmlEqual( @@ -35,7 +37,8 @@ export default test({ ` ); - await buttons[1].dispatchEvent(click); + buttons[1].dispatchEvent(click); + flushSync(); assert.equal(component.x, 'q'); assert.htmlEqual( @@ -51,7 +54,8 @@ export default test({ ` ); - await buttons[2].dispatchEvent(click); + buttons[2].dispatchEvent(click); + flushSync(); assert.equal(component.x, 'r'); assert.htmlEqual( diff --git a/packages/svelte/tests/runtime-legacy/samples/component-binding-non-leaky/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-binding-non-leaky/_config.js index da9c55eb1a..4a079d6fc6 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-binding-non-leaky/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-binding-non-leaky/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -11,7 +12,8 @@ export default test({ const button = target.querySelector('button'); ok(button); - await button.dispatchEvent(click); + button.dispatchEvent(click); + flushSync(); assert.equal(component.x, undefined); assert.htmlEqual( @@ -22,7 +24,8 @@ export default test({ ` ); - await button.dispatchEvent(click); + button.dispatchEvent(click); + flushSync(); assert.equal(component.x, undefined); assert.htmlEqual( diff --git a/packages/svelte/tests/runtime-legacy/samples/component-binding-parent-supercedes-child/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-binding-parent-supercedes-child/_config.js index b63198d2bc..fa20032eb0 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-binding-parent-supercedes-child/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-binding-parent-supercedes-child/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -6,12 +7,13 @@ export default test({

count: 10

`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const click = new window.MouseEvent('click', { bubbles: true }); const button = target.querySelector('button'); ok(button); - await button.dispatchEvent(click); + button.dispatchEvent(click); + flushSync(); assert.equal(component.x, 11); assert.htmlEqual( @@ -22,7 +24,8 @@ export default test({ ` ); - await button.dispatchEvent(click); + button.dispatchEvent(click); + flushSync(); assert.equal(component.x, 12); assert.htmlEqual( diff --git a/packages/svelte/tests/runtime-legacy/samples/component-binding-reactive-statement/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-binding-reactive-statement/_config.js index fa9fe3f3f4..dbd8a5d1a5 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-binding-reactive-statement/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-binding-reactive-statement/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -6,12 +7,13 @@ export default test({ `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const event = new window.MouseEvent('click', { bubbles: true }); const buttons = target.querySelectorAll('button'); - await buttons[0].dispatchEvent(event); + buttons[0].dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, ` @@ -20,7 +22,8 @@ export default test({ ` ); - await buttons[1].dispatchEvent(event); + buttons[1].dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, ` @@ -30,7 +33,8 @@ export default test({ ); // reactive update, reset to 2 - await buttons[0].dispatchEvent(event); + buttons[0].dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, ` @@ -40,7 +44,8 @@ export default test({ ); // bound to main, reset to 2 - await buttons[1].dispatchEvent(event); + buttons[1].dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-legacy/samples/component-binding-self-destroying/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-binding-self-destroying/_config.js index afea1a59f8..fcd468dc9d 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-binding-self-destroying/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-binding-self-destroying/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -9,10 +10,11 @@ export default test({ `, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const click = new window.MouseEvent('click', { bubbles: true }); - await target.querySelector('button')?.dispatchEvent(click); + target.querySelector('button')?.dispatchEvent(click); + flushSync(); assert.equal(component.show, false); assert.htmlEqual( @@ -22,7 +24,8 @@ export default test({ ` ); - await target.querySelector('button')?.dispatchEvent(click); + target.querySelector('button')?.dispatchEvent(click); + flushSync(); assert.equal(component.show, true); assert.htmlEqual( diff --git a/packages/svelte/tests/runtime-legacy/samples/component-binding-store/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-binding-store/_config.js index c41af3ea56..dfa86868ff 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-binding-store/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-binding-store/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -12,7 +13,7 @@ export default test({
`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { let count = 0; component.callback = () => { count++; @@ -21,8 +22,8 @@ export default test({ const [input1, input2] = target.querySelectorAll('input'); input1.value = '1'; - await input1.dispatchEvent(new window.Event('input')); - await Promise.resolve(); + input1.dispatchEvent(new window.Event('input')); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -37,8 +38,8 @@ export default test({ assert.equal(count, 1); input2.value = '123'; - await input2.dispatchEvent(new window.Event('input')); - await Promise.resolve(); + input2.dispatchEvent(new window.Event('input')); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -53,8 +54,8 @@ export default test({ assert.equal(count, 2); input1.value = '456'; - await input1.dispatchEvent(new window.Event('input')); - await Promise.resolve(); + input1.dispatchEvent(new window.Event('input')); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/component-binding/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-binding/_config.js index 07a3441f4c..40eacb5a5d 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-binding/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-binding/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -6,12 +7,13 @@ export default test({

count: 0

`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const click = new window.MouseEvent('click', { bubbles: true }); const button = target.querySelector('button'); ok(button); - await button.dispatchEvent(click); + button.dispatchEvent(click); + flushSync(); assert.equal(component.x, 1); assert.htmlEqual( @@ -22,7 +24,8 @@ export default test({ ` ); - await button.dispatchEvent(click); + button.dispatchEvent(click); + flushSync(); assert.equal(component.x, 2); assert.htmlEqual( diff --git a/packages/svelte/tests/runtime-legacy/samples/component-prop-object/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-prop-object/_config.js index d37a72a2ee..96815e80f8 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-prop-object/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-prop-object/_config.js @@ -1,10 +1,12 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: `child: 0 parent: 0 `, - async test({ assert, target }) { - await target.querySelector('button')?.click(); + test({ assert, target }) { + target.querySelector('button')?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, `child: 1 parent: 1 `); } }); diff --git a/packages/svelte/tests/runtime-legacy/samples/component-slot-attribute-order/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-slot-attribute-order/_config.js index 3e85f77b80..a79720ea3e 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-slot-attribute-order/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-slot-attribute-order/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -6,10 +7,11 @@ export default test({ `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const [btn, btn1, btn2] = target.querySelectorAll('button'); - await btn.dispatchEvent(new window.MouseEvent('click', { bubbles: true })); + btn.dispatchEvent(new window.MouseEvent('click', { bubbles: true })); + flushSync(); assert.equal(btn1.disabled, true); assert.equal(btn2.disabled, true); diff --git a/packages/svelte/tests/runtime-legacy/samples/component-slot-fallback-2/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-slot-fallback-2/_config.js index ca5dda00f9..cdc011af82 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-slot-fallback-2/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-slot-fallback-2/_config.js @@ -1,19 +1,22 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ' ', ssrHtml: ' ', - async test({ assert, target, component, window }) { + test({ assert, target, component, window }) { const [input1, input2, inputFallback] = target.querySelectorAll('input'); // TODO this works differently now, deduplicates to one subscription - ok? // assert.equal(component.getSubscriberCount(), 3); input1.value = 'a'; - await input1.dispatchEvent(new window.Event('input')); + input1.dispatchEvent(new window.Event('input')); + flushSync(); input1.value = 'ab'; - await input1.dispatchEvent(new window.Event('input')); + input1.dispatchEvent(new window.Event('input')); + flushSync(); assert.equal(input1.value, 'ab'); assert.equal(input2.value, 'ab'); assert.equal(inputFallback.value, 'ab'); diff --git a/packages/svelte/tests/runtime-legacy/samples/component-slot-fallback-5/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-slot-fallback-5/_config.js index dc80693d7f..cd1f446d0c 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-slot-fallback-5/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-slot-fallback-5/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -6,13 +7,14 @@ export default test({
Icon B
`, - async test({ assert, target, window }) { + test({ assert, target, window }) { const btn = target.querySelector('button'); ok(btn); const clickEvent = new window.MouseEvent('click', { bubbles: true }); - await btn.dispatchEvent(clickEvent); + btn.dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -22,7 +24,8 @@ export default test({ ` ); - await btn.dispatchEvent(clickEvent); + btn.dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/component-slot-fallback-6/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-slot-fallback-6/_config.js index aa1792ebb3..fac8e94fe9 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-slot-fallback-6/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-slot-fallback-6/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; // $$props reactivity in slot fallback @@ -11,12 +12,13 @@ export default test({ {"value":""} `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const input = target.querySelector('input'); ok(input); input.value = 'abc'; - await input.dispatchEvent(new window.Event('input')); + input.dispatchEvent(new window.Event('input')); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/component-slot-let-b/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-slot-let-b/_config.js index 993dabf2dc..bb699d4a9f 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-slot-let-b/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-slot-let-b/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -6,11 +7,12 @@ export default test({ 0 `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const button = target.querySelector('button'); const click = new window.MouseEvent('click', { bubbles: true }); - await button?.dispatchEvent(click); + button?.dispatchEvent(click); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/component-slot-let-c/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-slot-let-c/_config.js index 9a10e0577c..51f2b473f4 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-slot-let-c/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-slot-let-c/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -6,11 +7,12 @@ export default test({ 0 () `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const button = target.querySelector('button'); const click = new window.MouseEvent('click', { bubbles: true }); - await button?.dispatchEvent(click); + button?.dispatchEvent(click); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/component-slot-let-d/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-slot-let-d/_config.js index 49de834cb1..47e917d43a 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-slot-let-d/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-slot-let-d/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -7,11 +8,12 @@ export default test({ `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const div = target.querySelector('div'); const click = new window.MouseEvent('click', { bubbles: true }); - await div?.dispatchEvent(click); + div?.dispatchEvent(click); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/component-slot-let-destructured-2/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-slot-let-destructured-2/_config.js index 31d8a72d2b..e89458160f 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-slot-let-destructured-2/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-slot-let-destructured-2/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -15,11 +16,12 @@ export default test({ `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const [button1, button2, button3] = target.querySelectorAll('button'); const event = new window.MouseEvent('click', { bubbles: true }); - await button1.dispatchEvent(event); + button1.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, ` @@ -38,7 +40,8 @@ export default test({ ` ); - await button2.dispatchEvent(event); + button2.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, ` @@ -57,7 +60,8 @@ export default test({ ` ); - await button3.dispatchEvent(event); + button3.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-legacy/samples/component-slot-let-scope-3/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-slot-let-scope-3/_config.js index 5ebd0ac13a..44a820edc8 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-slot-let-scope-3/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-slot-let-scope-3/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -10,11 +11,12 @@ export default test({ `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const button = target.querySelector('button'); ok(button); - await button.dispatchEvent(new window.MouseEvent('click', { bubbles: true })); + button.dispatchEvent(new window.MouseEvent('click', { bubbles: true })); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/component-slot-nested-if/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-slot-nested-if/_config.js index 35b109f811..2ea0504dda 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-slot-nested-if/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-slot-nested-if/_config.js @@ -1,15 +1,17 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ html: ` `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const input = target.querySelector('input'); ok(input); input.value = 'a'; - await input.dispatchEvent(new window.Event('input')); + input.dispatchEvent(new window.Event('input')); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -20,7 +22,8 @@ export default test({ ); input.value = 'abc'; - await input.dispatchEvent(new window.Event('input')); + input.dispatchEvent(new window.Event('input')); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/component-svelte-fragment-let-b/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-svelte-fragment-let-b/_config.js index 993dabf2dc..bb699d4a9f 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-svelte-fragment-let-b/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-svelte-fragment-let-b/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -6,11 +7,12 @@ export default test({ 0 `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const button = target.querySelector('button'); const click = new window.MouseEvent('click', { bubbles: true }); - await button?.dispatchEvent(click); + button?.dispatchEvent(click); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/component-svelte-fragment-let-c/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-svelte-fragment-let-c/_config.js index 9a10e0577c..51f2b473f4 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-svelte-fragment-let-c/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-svelte-fragment-let-c/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -6,11 +7,12 @@ export default test({ 0 () `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const button = target.querySelector('button'); const click = new window.MouseEvent('click', { bubbles: true }); - await button?.dispatchEvent(click); + button?.dispatchEvent(click); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/component-svelte-fragment-let-d/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-svelte-fragment-let-d/_config.js index 49de834cb1..47e917d43a 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-svelte-fragment-let-d/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-svelte-fragment-let-d/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -7,11 +8,12 @@ export default test({ `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const div = target.querySelector('div'); const click = new window.MouseEvent('click', { bubbles: true }); - await div?.dispatchEvent(click); + div?.dispatchEvent(click); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/component-svelte-fragment-let-destructured-2/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-svelte-fragment-let-destructured-2/_config.js index 31d8a72d2b..e89458160f 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-svelte-fragment-let-destructured-2/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-svelte-fragment-let-destructured-2/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -15,11 +16,12 @@ export default test({ `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const [button1, button2, button3] = target.querySelectorAll('button'); const event = new window.MouseEvent('click', { bubbles: true }); - await button1.dispatchEvent(event); + button1.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, ` @@ -38,7 +40,8 @@ export default test({ ` ); - await button2.dispatchEvent(event); + button2.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, ` @@ -57,7 +60,8 @@ export default test({ ` ); - await button3.dispatchEvent(event); + button3.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-legacy/samples/component-template-inline-mutation/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-template-inline-mutation/_config.js index aa403357b4..1920fe6575 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-template-inline-mutation/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-template-inline-mutation/_config.js @@ -1,15 +1,17 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ - async test({ assert, target }) { + test({ assert, target }) { const btns = target.querySelectorAll('button'); const event = new window.MouseEvent('click', { bubbles: true }); - await btns[0].dispatchEvent(event); - await btns[0].dispatchEvent(event); - await btns[1].dispatchEvent(event); - await btns[1].dispatchEvent(event); - await btns[1].dispatchEvent(event); + btns[0].dispatchEvent(event); + btns[0].dispatchEvent(event); + btns[1].dispatchEvent(event); + btns[1].dispatchEvent(event); + btns[1].dispatchEvent(event); + flushSync(); assert.equal(btns[1].innerHTML, '3'); } diff --git a/packages/svelte/tests/runtime-legacy/samples/component-yield-placement/_config.js b/packages/svelte/tests/runtime-legacy/samples/component-yield-placement/_config.js index d9505d48c8..be64151449 100644 --- a/packages/svelte/tests/runtime-legacy/samples/component-yield-placement/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/component-yield-placement/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -14,11 +15,12 @@ export default test({ `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const button = target.querySelector('button'); const click = new window.MouseEvent('click', { bubbles: true }); - await button?.dispatchEvent(click); + button?.dispatchEvent(click); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/const-tag-invalidate/_config.js b/packages/svelte/tests/runtime-legacy/samples/const-tag-invalidate/_config.js index 331d1f622b..9c7a4a320d 100644 --- a/packages/svelte/tests/runtime-legacy/samples/const-tag-invalidate/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/const-tag-invalidate/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -6,11 +7,11 @@ export default test({
[N] B
[N] C
`, - async test({ target, assert, window }) { + test({ target, assert, window }) { const [btn1, btn2, btn3] = target.querySelectorAll('button'); - await btn1.dispatchEvent(new window.MouseEvent('click', { bubbles: true })); - await btn2.dispatchEvent(new window.MouseEvent('click', { bubbles: true })); - await Promise.resolve(); + btn1.dispatchEvent(new window.MouseEvent('click', { bubbles: true })); + btn2.dispatchEvent(new window.MouseEvent('click', { bubbles: true })); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -21,8 +22,8 @@ export default test({ ` ); - await btn2.dispatchEvent(new window.MouseEvent('click', { bubbles: true })); - await Promise.resolve(); + btn2.dispatchEvent(new window.MouseEvent('click', { bubbles: true })); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -33,8 +34,8 @@ export default test({ ` ); - await btn3.dispatchEvent(new window.MouseEvent('click', { bubbles: true })); - await Promise.resolve(); + btn3.dispatchEvent(new window.MouseEvent('click', { bubbles: true })); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/context-api/_config.js b/packages/svelte/tests/runtime-legacy/samples/context-api/_config.js index 7f7290ba91..f02c0a4432 100644 --- a/packages/svelte/tests/runtime-legacy/samples/context-api/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/context-api/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -15,11 +16,12 @@ export default test({ `, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const click = new window.MouseEvent('click', { bubbles: true }); let buttons = target.querySelectorAll('button'); - await buttons[1].dispatchEvent(click); + buttons[1].dispatchEvent(click); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -54,7 +56,8 @@ export default test({ buttons = target.querySelectorAll('button'); - await buttons[1].dispatchEvent(click); + buttons[1].dispatchEvent(click); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/custom-method/_config.js b/packages/svelte/tests/runtime-legacy/samples/custom-method/_config.js index 4338b2a59f..3d85874654 100644 --- a/packages/svelte/tests/runtime-legacy/samples/custom-method/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/custom-method/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -6,13 +7,14 @@ export default test({

0

`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const button = target.querySelector('button'); ok(button); const event = new window.MouseEvent('click', { bubbles: true }); - await button.dispatchEvent(event); + button.dispatchEvent(event); + flushSync(); assert.equal(component.counter, 1); assert.htmlEqual( target.innerHTML, @@ -22,7 +24,8 @@ export default test({ ` ); - await button.dispatchEvent(event); + button.dispatchEvent(event); + flushSync(); assert.equal(component.counter, 2); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/destructuring-one-value-reactive/_config.js b/packages/svelte/tests/runtime-legacy/samples/destructuring-one-value-reactive/_config.js index 299fa14e2b..eb885e4d48 100644 --- a/packages/svelte/tests/runtime-legacy/samples/destructuring-one-value-reactive/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/destructuring-one-value-reactive/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -5,9 +6,10 @@ export default test({ `, - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/dynamic-component-evals-props-once/_config.js b/packages/svelte/tests/runtime-legacy/samples/dynamic-component-evals-props-once/_config.js index eb02214ae8..ff3f22ac61 100644 --- a/packages/svelte/tests/runtime-legacy/samples/dynamic-component-evals-props-once/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/dynamic-component-evals-props-once/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -9,7 +10,8 @@ export default test({ async test({ assert, component, window, target }) { const button = target.querySelector('button'); // @ts-ignore - await button.dispatchEvent(new window.Event('click')); + button.dispatchEvent(new window.Event('click')); + flushSync(); assert.htmlEqual( target.innerHTML, ` @@ -19,7 +21,8 @@ export default test({ ); assert.equal(component.n, 2); // @ts-ignore - await button.dispatchEvent(new window.Event('click')); + button.dispatchEvent(new window.Event('click')); + flushSync(); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-legacy/samples/dynamic-component-spread-props/_config.js b/packages/svelte/tests/runtime-legacy/samples/dynamic-component-spread-props/_config.js index 8e224b3eb3..643066abb5 100644 --- a/packages/svelte/tests/runtime-legacy/samples/dynamic-component-spread-props/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/dynamic-component-spread-props/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -8,10 +9,11 @@ export default test({ `, - async test({ assert, window, target }) { + test({ assert, window, target }) { const button = target.querySelector('button'); // @ts-ignore - await button.dispatchEvent(new window.Event('click')); + button.dispatchEvent(new window.Event('click')); + flushSync(); assert.htmlEqual( target.innerHTML, ` @@ -22,7 +24,8 @@ export default test({ ` ); // @ts-ignore - await button.dispatchEvent(new window.Event('click')); + button.dispatchEvent(new window.Event('click')); + flushSync(); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-legacy/samples/each-block-destructured-object-binding/_config.js b/packages/svelte/tests/runtime-legacy/samples/each-block-destructured-object-binding/_config.js index 377a3503d8..18bd70b9ac 100644 --- a/packages/svelte/tests/runtime-legacy/samples/each-block-destructured-object-binding/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/each-block-destructured-object-binding/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -19,12 +20,12 @@ export default test({

Doctor Who

`, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const inputs = target.querySelectorAll('input'); inputs[1].value = 'Oz'; - await inputs[1].dispatchEvent(new window.Event('input')); - await Promise.resolve(); + inputs[1].dispatchEvent(new window.Event('input')); + flushSync(); const { people } = component; diff --git a/packages/svelte/tests/runtime-legacy/samples/each-block-keyed-bind-group/_config.js b/packages/svelte/tests/runtime-legacy/samples/each-block-keyed-bind-group/_config.js index 5df9a03e8b..e993f73963 100644 --- a/packages/svelte/tests/runtime-legacy/samples/each-block-keyed-bind-group/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/each-block-keyed-bind-group/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -9,13 +10,13 @@ export default test({ `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const [input1, input2, input3, input4, input5] = target.querySelectorAll('input'); const event = new window.Event('change'); input3.checked = true; - await input3.dispatchEvent(event); - await Promise.resolve(); + input3.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -35,8 +36,8 @@ export default test({ assert.equal(input5.checked, false); input4.checked = true; - await input4.dispatchEvent(event); - await Promise.resolve(); + input4.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -56,8 +57,8 @@ export default test({ assert.equal(input5.checked, false); input3.checked = false; - await input3.dispatchEvent(event); - await Promise.resolve(); + input3.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/each-block-keyed-dynamic-2/_config.js b/packages/svelte/tests/runtime-legacy/samples/each-block-keyed-dynamic-2/_config.js index 846351c092..a19d789c78 100644 --- a/packages/svelte/tests/runtime-legacy/samples/each-block-keyed-dynamic-2/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/each-block-keyed-dynamic-2/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -7,12 +8,13 @@ export default test({
    `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const button = target.querySelector('button'); ok(button); const event = new window.MouseEvent('click', { bubbles: true }); - await button.dispatchEvent(event); + button.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/each-block-keyed-index-in-event-handler/_config.js b/packages/svelte/tests/runtime-legacy/samples/each-block-keyed-index-in-event-handler/_config.js index a1fc90ff50..997ca61ecf 100644 --- a/packages/svelte/tests/runtime-legacy/samples/each-block-keyed-index-in-event-handler/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/each-block-keyed-index-in-event-handler/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -7,11 +8,12 @@ export default test({ `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const click = new window.MouseEvent('click', { bubbles: true }); - await target.querySelectorAll('button')[1].dispatchEvent(click); - await target.querySelectorAll('button')[1].dispatchEvent(click); + target.querySelectorAll('button')[1].dispatchEvent(click); + target.querySelectorAll('button')[1].dispatchEvent(click); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/each-block-scope-shadow-bind-2/_config.js b/packages/svelte/tests/runtime-legacy/samples/each-block-scope-shadow-bind-2/_config.js index 940f0308ef..d362c4b6d1 100644 --- a/packages/svelte/tests/runtime-legacy/samples/each-block-scope-shadow-bind-2/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/each-block-scope-shadow-bind-2/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -9,13 +10,13 @@ export default test({ Hello `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const input = target.querySelector('input'); ok(input); input.value = 'abcd'; - await input.dispatchEvent(new window.Event('input')); - await Promise.resolve(); + input.dispatchEvent(new window.Event('input')); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/each-block-scope-shadow-bind-3/_config.js b/packages/svelte/tests/runtime-legacy/samples/each-block-scope-shadow-bind-3/_config.js index 538dcee572..6c096f7581 100644 --- a/packages/svelte/tests/runtime-legacy/samples/each-block-scope-shadow-bind-3/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/each-block-scope-shadow-bind-3/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -26,11 +27,11 @@ export default test({ `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const [input1, input2, input3, input4] = target.querySelectorAll('input'); input1.value = 'Awesome'; - await input1.dispatchEvent(new window.Event('input')); - await Promise.resolve(); + input1.dispatchEvent(new window.Event('input')); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -49,8 +50,8 @@ export default test({ ); input2.value = 'Svelte'; - await input2.dispatchEvent(new window.Event('input')); - await Promise.resolve(); + input2.dispatchEvent(new window.Event('input')); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -69,8 +70,8 @@ export default test({ ); input3.value = 'Foo'; - await input3.dispatchEvent(new window.Event('input')); - await Promise.resolve(); + input3.dispatchEvent(new window.Event('input')); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -89,8 +90,8 @@ export default test({ ); input4.value = 'Bar'; - await input4.dispatchEvent(new window.Event('input')); - await Promise.resolve(); + input4.dispatchEvent(new window.Event('input')); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/each-block-scope-shadow-bind-4/_config.js b/packages/svelte/tests/runtime-legacy/samples/each-block-scope-shadow-bind-4/_config.js index 53a88a1880..54c71f80ac 100644 --- a/packages/svelte/tests/runtime-legacy/samples/each-block-scope-shadow-bind-4/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/each-block-scope-shadow-bind-4/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -15,7 +16,7 @@ export default test({ `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const input = target.querySelector('input'); ok(input); @@ -23,8 +24,8 @@ export default test({ ok(button); input.value = 'Awesome'; - await input.dispatchEvent(new window.Event('input')); - await Promise.resolve(); + input.dispatchEvent(new window.Event('input')); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -37,8 +38,8 @@ export default test({ ` ); - await button.dispatchEvent(new window.MouseEvent('click', { bubbles: true })); - await Promise.resolve(); + button.dispatchEvent(new window.MouseEvent('click', { bubbles: true })); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -54,8 +55,8 @@ export default test({ assert.equal(input.value, 'World'); input.value = 'Svelte'; - await input.dispatchEvent(new window.Event('input')); - await Promise.resolve(); + input.dispatchEvent(new window.Event('input')); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/each-block-scope-shadow-bind/_config.js b/packages/svelte/tests/runtime-legacy/samples/each-block-scope-shadow-bind/_config.js index 940f0308ef..d362c4b6d1 100644 --- a/packages/svelte/tests/runtime-legacy/samples/each-block-scope-shadow-bind/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/each-block-scope-shadow-bind/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -9,13 +10,13 @@ export default test({ Hello `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const input = target.querySelector('input'); ok(input); input.value = 'abcd'; - await input.dispatchEvent(new window.Event('input')); - await Promise.resolve(); + input.dispatchEvent(new window.Event('input')); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/each-blocks-assignment-2/_config.js b/packages/svelte/tests/runtime-legacy/samples/each-blocks-assignment-2/_config.js index f8f36034ea..ed7ecbf927 100644 --- a/packages/svelte/tests/runtime-legacy/samples/each-blocks-assignment-2/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/each-blocks-assignment-2/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -5,12 +6,12 @@ export default test({ foo `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const button = target.querySelector('button'); const clickEvent = new window.MouseEvent('click', { bubbles: true }); - await button?.dispatchEvent(clickEvent); - await Promise.resolve(); + button?.dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/each-blocks-assignment/_config.js b/packages/svelte/tests/runtime-legacy/samples/each-blocks-assignment/_config.js index ac53742f19..c4aa3fb891 100644 --- a/packages/svelte/tests/runtime-legacy/samples/each-blocks-assignment/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/each-blocks-assignment/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -10,12 +11,12 @@ export default test({ 3 `, - async test({ assert, target, window }) { + test({ assert, target, window }) { let [incrementBtn, ...buttons] = target.querySelectorAll('button'); const clickEvent = new window.MouseEvent('click', { bubbles: true }); - await buttons[0].dispatchEvent(clickEvent); - await Promise.resolve(); + buttons[0].dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -30,8 +31,8 @@ export default test({ ` ); - await buttons[0].dispatchEvent(clickEvent); - await Promise.resolve(); + buttons[0].dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -46,9 +47,10 @@ export default test({ ` ); - await buttons[2].dispatchEvent(clickEvent); - await buttons[2].dispatchEvent(clickEvent); - await Promise.resolve(); + buttons[2].dispatchEvent(clickEvent); + flushSync(); + buttons[2].dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -63,8 +65,8 @@ export default test({ ` ); - await incrementBtn.dispatchEvent(clickEvent); - await Promise.resolve(); + incrementBtn.dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -83,8 +85,8 @@ export default test({ [incrementBtn, ...buttons] = target.querySelectorAll('button'); - await buttons[3].dispatchEvent(clickEvent); - await Promise.resolve(); + buttons[3].dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/empty-component-destroy/_config.js b/packages/svelte/tests/runtime-legacy/samples/empty-component-destroy/_config.js index d6f1b5a07e..f49b9fdde5 100644 --- a/packages/svelte/tests/runtime-legacy/samples/empty-component-destroy/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/empty-component-destroy/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -5,12 +6,14 @@ export default test({ `, - async test({ assert, target, window, logs }) { + test({ assert, target, window, logs }) { const button = target.querySelector('button'); const event = new window.MouseEvent('click'); // @ts-ignore - await button.dispatchEvent(event); + button.dispatchEvent(event); + flushSync(); + assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-legacy/samples/event-handler-destructured/_config.js b/packages/svelte/tests/runtime-legacy/samples/event-handler-destructured/_config.js index 92f4245ca8..35e9c6752c 100644 --- a/packages/svelte/tests/runtime-legacy/samples/event-handler-destructured/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/event-handler-destructured/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -5,13 +6,14 @@ export default test({ `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const button = target.querySelector('button'); ok(button); const event = new window.MouseEvent('click', { bubbles: true }); - await button.dispatchEvent(event); + button.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-legacy/samples/event-handler-dynamic-2/_config.js b/packages/svelte/tests/runtime-legacy/samples/event-handler-dynamic-2/_config.js index e48a99997c..681fa25d7b 100644 --- a/packages/svelte/tests/runtime-legacy/samples/event-handler-dynamic-2/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/event-handler-dynamic-2/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -8,29 +9,37 @@ export default test({ `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const [toggle, handler_a, handler_b] = target.querySelectorAll('button'); const p = target.querySelector('p'); ok(p); const event = new window.MouseEvent('click', { bubbles: true }); - await handler_a.dispatchEvent(event); + handler_a.dispatchEvent(event); + flushSync(); assert.equal(p.innerHTML, '1'); - await toggle.dispatchEvent(event); + toggle.dispatchEvent(event); + flushSync(); - await handler_a.dispatchEvent(event); + handler_a.dispatchEvent(event); + flushSync(); assert.equal(p.innerHTML, '2'); - await toggle.dispatchEvent(event); + toggle.dispatchEvent(event); + flushSync(); - await handler_b.dispatchEvent(event); + handler_b.dispatchEvent(event); + flushSync(); assert.equal(p.innerHTML, '1'); - await toggle.dispatchEvent(event); + toggle.dispatchEvent(event); + flushSync(); + + handler_b.dispatchEvent(event); + flushSync(); - await handler_b.dispatchEvent(event); assert.equal(p.innerHTML, '2'); } }); diff --git a/packages/svelte/tests/runtime-legacy/samples/event-handler-dynamic-bound-var/_config.js b/packages/svelte/tests/runtime-legacy/samples/event-handler-dynamic-bound-var/_config.js index d245174d9a..afb0fbcc54 100644 --- a/packages/svelte/tests/runtime-legacy/samples/event-handler-dynamic-bound-var/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/event-handler-dynamic-bound-var/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -5,13 +6,14 @@ export default test({ Hello World `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const button = target.querySelector('button'); ok(button); const event = new window.MouseEvent('click', { bubbles: true }); - await button.dispatchEvent(event); + button.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-legacy/samples/event-handler-dynamic-expression/_config.js b/packages/svelte/tests/runtime-legacy/samples/event-handler-dynamic-expression/_config.js index e361009847..04d9469ede 100644 --- a/packages/svelte/tests/runtime-legacy/samples/event-handler-dynamic-expression/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/event-handler-dynamic-expression/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -8,13 +9,16 @@ export default test({ const event = new window.MouseEvent('click', { bubbles: true }); - await button.dispatchEvent(event); + button.dispatchEvent(event); + flushSync(); assert.htmlEqual(target.innerHTML, ''); - await button.dispatchEvent(event); + button.dispatchEvent(event); + flushSync(); assert.htmlEqual(target.innerHTML, ''); - await button.dispatchEvent(event); + button.dispatchEvent(event); + flushSync(); assert.htmlEqual(target.innerHTML, ''); } }); diff --git a/packages/svelte/tests/runtime-legacy/samples/event-handler-dynamic-hash/_config.js b/packages/svelte/tests/runtime-legacy/samples/event-handler-dynamic-hash/_config.js index 4cb916471c..33710f18ed 100644 --- a/packages/svelte/tests/runtime-legacy/samples/event-handler-dynamic-hash/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/event-handler-dynamic-hash/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -10,7 +11,7 @@ export default test({ `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const [updateButton1, updateButton2, button] = target.querySelectorAll('button'); const event = new window.MouseEvent('click', { bubbles: true }); @@ -20,7 +21,8 @@ export default test({ err = e.message; }); - await button.dispatchEvent(event); + button.dispatchEvent(event); + flushSync(); assert.equal(err, '', err); assert.htmlEqual( target.innerHTML, @@ -34,8 +36,10 @@ export default test({ ` ); - await updateButton1.dispatchEvent(event); - await button.dispatchEvent(event); + updateButton1.dispatchEvent(event); + flushSync(); + button.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, ` @@ -48,8 +52,9 @@ export default test({ ` ); - await updateButton2.dispatchEvent(event); - await button.dispatchEvent(event); + updateButton2.dispatchEvent(event); + button.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-legacy/samples/event-handler-dynamic/_config.js b/packages/svelte/tests/runtime-legacy/samples/event-handler-dynamic/_config.js index 4cb916471c..979ed7a60e 100644 --- a/packages/svelte/tests/runtime-legacy/samples/event-handler-dynamic/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/event-handler-dynamic/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -10,7 +11,7 @@ export default test({ `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const [updateButton1, updateButton2, button] = target.querySelectorAll('button'); const event = new window.MouseEvent('click', { bubbles: true }); @@ -20,7 +21,8 @@ export default test({ err = e.message; }); - await button.dispatchEvent(event); + button.dispatchEvent(event); + flushSync(); assert.equal(err, '', err); assert.htmlEqual( target.innerHTML, @@ -34,8 +36,9 @@ export default test({ ` ); - await updateButton1.dispatchEvent(event); - await button.dispatchEvent(event); + updateButton1.dispatchEvent(event); + button.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, ` @@ -48,8 +51,9 @@ export default test({ ` ); - await updateButton2.dispatchEvent(event); - await button.dispatchEvent(event); + updateButton2.dispatchEvent(event); + button.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-legacy/samples/event-handler-each-context-invalidation/_config.js b/packages/svelte/tests/runtime-legacy/samples/event-handler-each-context-invalidation/_config.js index 3ffbe42d5a..885422b469 100644 --- a/packages/svelte/tests/runtime-legacy/samples/event-handler-each-context-invalidation/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/event-handler-each-context-invalidation/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -8,12 +9,13 @@ export default test({

    on: 1

    `, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const buttons = target.querySelectorAll('button'); const event = new window.MouseEvent('click', { bubbles: true }); - await buttons[0].dispatchEvent(event); - await Promise.resolve(); + buttons[0].dispatchEvent(event); + flushSync(); + assert.htmlEqual( target.innerHTML, ` @@ -24,8 +26,9 @@ export default test({ ` ); - await buttons[2].dispatchEvent(event); - await Promise.resolve(); + buttons[2].dispatchEvent(event); + flushSync(); + assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-legacy/samples/event-handler-each-deconflicted/_config.js b/packages/svelte/tests/runtime-legacy/samples/event-handler-each-deconflicted/_config.js index cda08132e6..98433eda04 100644 --- a/packages/svelte/tests/runtime-legacy/samples/event-handler-each-deconflicted/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/event-handler-each-deconflicted/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -11,11 +12,13 @@ export default test({

    clicked: neither

    `, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const buttons = target.querySelectorAll('button'); const event = new window.MouseEvent('click', { bubbles: true }); - await buttons[0].dispatchEvent(event); + buttons[0].dispatchEvent(event); + flushSync(); + assert.equal(component.clicked, 'foo'); assert.htmlEqual( target.innerHTML, @@ -26,7 +29,9 @@ export default test({ ` ); - await buttons[1].dispatchEvent(event); + buttons[1].dispatchEvent(event); + flushSync(); + assert.equal(component.clicked, 'bar'); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/event-handler-each/_config.js b/packages/svelte/tests/runtime-legacy/samples/event-handler-each/_config.js index d638b35a58..aa97c5d24a 100644 --- a/packages/svelte/tests/runtime-legacy/samples/event-handler-each/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/event-handler-each/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -15,11 +16,13 @@ export default test({

    selected: foo

    `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const buttons = target.querySelectorAll('button'); const event = new window.MouseEvent('click', { bubbles: true }); - await buttons[1].dispatchEvent(event); + buttons[1].dispatchEvent(event); + flushSync(); + assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-legacy/samples/event-handler-modifier-once-duplicated/_config.js b/packages/svelte/tests/runtime-legacy/samples/event-handler-modifier-once-duplicated/_config.js index ab139e137f..7ab1508673 100644 --- a/packages/svelte/tests/runtime-legacy/samples/event-handler-modifier-once-duplicated/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/event-handler-modifier-once-duplicated/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -11,14 +12,18 @@ export default test({ const event = new window.MouseEvent('click', { bubbles: true }); - await buttons[0].dispatchEvent(event); + buttons[0].dispatchEvent(event); + flushSync(); + assert.htmlEqual( target.innerHTML, ` ` ); - await buttons[1].dispatchEvent(event); + buttons[1].dispatchEvent(event); + flushSync(); + assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-legacy/samples/event-handler-sanitize/_config.js b/packages/svelte/tests/runtime-legacy/samples/event-handler-sanitize/_config.js index 3a030adca4..4986ac9de2 100644 --- a/packages/svelte/tests/runtime-legacy/samples/event-handler-sanitize/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/event-handler-sanitize/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -13,7 +14,9 @@ export default test({ ok(button); const event = new window.MouseEvent('some-event'); - await div.dispatchEvent(event); + div.dispatchEvent(event); + flushSync(); + assert.htmlEqual( target.innerHTML, ` @@ -23,7 +26,9 @@ export default test({ ` ); - await button.click(); + button.click(); + flushSync(); + assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-legacy/samples/event-handler/_config.js b/packages/svelte/tests/runtime-legacy/samples/event-handler/_config.js index be7a9c7288..0e437cdeb6 100644 --- a/packages/svelte/tests/runtime-legacy/samples/event-handler/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/event-handler/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -5,13 +6,15 @@ export default test({ `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const button = target.querySelector('button'); ok(button); const event = new window.MouseEvent('click', { bubbles: true }); - await button.dispatchEvent(event); + button.dispatchEvent(event); + flushSync(); + assert.htmlEqual( target.innerHTML, ` @@ -20,7 +23,9 @@ export default test({ ` ); - await button.dispatchEvent(event); + button.dispatchEvent(event); + flushSync(); + assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-legacy/samples/globals-not-overwritten-by-bindings/_config.js b/packages/svelte/tests/runtime-legacy/samples/globals-not-overwritten-by-bindings/_config.js index 80cb03edb9..6ffb1b7370 100644 --- a/packages/svelte/tests/runtime-legacy/samples/globals-not-overwritten-by-bindings/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/globals-not-overwritten-by-bindings/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -51,14 +52,15 @@ export default test({ }; }, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const input = /** @type {HTMLInputElement} */ ( document.querySelectorAll('input[type="checkbox"]')[2] ); const change = new window.Event('change'); input.checked = true; - await input.dispatchEvent(change); + input.dispatchEvent(change); + flushSync(); assert.ok(component.todos.third.done); assert.htmlEqual( diff --git a/packages/svelte/tests/runtime-legacy/samples/if-block-else-update/_config.js b/packages/svelte/tests/runtime-legacy/samples/if-block-else-update/_config.js index 36b355e945..bed9ff6611 100644 --- a/packages/svelte/tests/runtime-legacy/samples/if-block-else-update/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/if-block-else-update/_config.js @@ -1,12 +1,15 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ - async test({ assert, target, window }) { + test({ assert, target, window }) { const [btn1, btn2] = target.querySelectorAll('button'); const clickEvent = new window.Event('click', { bubbles: true }); - await btn2.dispatchEvent(clickEvent); + btn2.dispatchEvent(clickEvent); + flushSync(); + assert.htmlEqual( target.innerHTML, ` @@ -19,7 +22,9 @@ export default test({ ` ); - await btn1.dispatchEvent(clickEvent); + btn1.dispatchEvent(clickEvent); + flushSync(); + assert.htmlEqual( target.innerHTML, ` @@ -32,7 +37,9 @@ export default test({ ` ); - await btn2.dispatchEvent(clickEvent); + btn2.dispatchEvent(clickEvent); + flushSync(); + assert.htmlEqual( target.innerHTML, ` @@ -45,7 +52,9 @@ export default test({ ` ); - await btn1.dispatchEvent(clickEvent); + btn1.dispatchEvent(clickEvent); + flushSync(); + assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-legacy/samples/inline-style-become-undefined/_config.js b/packages/svelte/tests/runtime-legacy/samples/inline-style-become-undefined/_config.js index 59181bb6ce..4e2d400fd5 100644 --- a/packages/svelte/tests/runtime-legacy/samples/inline-style-become-undefined/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/inline-style-become-undefined/_config.js @@ -1,14 +1,15 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ - async test({ assert, target, window }) { + test({ assert, target, window }) { const div = target.querySelector('div'); ok(div); const click = new window.MouseEvent('click', { bubbles: true }); assert.htmlEqual(target.innerHTML, '
    '); - await div.dispatchEvent(click); - await Promise.resolve(); + div.dispatchEvent(click); + flushSync(); assert.htmlEqual(target.innerHTML, '
    '); } }); diff --git a/packages/svelte/tests/runtime-legacy/samples/inline-style-directive-shorthand-declaration-only/_config.js b/packages/svelte/tests/runtime-legacy/samples/inline-style-directive-shorthand-declaration-only/_config.js index dfcd5a31fe..b71b056434 100644 --- a/packages/svelte/tests/runtime-legacy/samples/inline-style-directive-shorthand-declaration-only/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/inline-style-directive-shorthand-declaration-only/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -7,7 +8,7 @@ export default test({ `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const [p1, p2] = target.querySelectorAll('p'); assert.equal(window.getComputedStyle(p1).color, 'red'); @@ -16,7 +17,7 @@ export default test({ const btn = target.querySelector('button'); console.log(btn); btn?.click(); - await Promise.resolve(); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/instrumentation-script-destructuring/_config.js b/packages/svelte/tests/runtime-legacy/samples/instrumentation-script-destructuring/_config.js index e9ec80cf18..4d111c60a8 100644 --- a/packages/svelte/tests/runtime-legacy/samples/instrumentation-script-destructuring/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/instrumentation-script-destructuring/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -8,11 +9,12 @@ export default test({

    x: 0

    `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const buttons = target.querySelectorAll('button'); const click = new window.MouseEvent('click', { bubbles: true }); - await buttons[0].dispatchEvent(click); + buttons[0].dispatchEvent(click); + flushSync(); assert.htmlEqual( target.innerHTML, ` @@ -23,7 +25,8 @@ export default test({ ` ); - await buttons[1].dispatchEvent(click); + buttons[1].dispatchEvent(click); + flushSync(); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-legacy/samples/instrumentation-script-loop-scope/_config.js b/packages/svelte/tests/runtime-legacy/samples/instrumentation-script-loop-scope/_config.js index d269944d97..14717a95ec 100644 --- a/packages/svelte/tests/runtime-legacy/samples/instrumentation-script-loop-scope/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/instrumentation-script-loop-scope/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -6,11 +7,13 @@ export default test({

    x: 0

    `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const buttons = target.querySelectorAll('button'); const click = new window.MouseEvent('click', { bubbles: true }); - await buttons[0].dispatchEvent(click); + buttons[0].dispatchEvent(click); + flushSync(); + assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-legacy/samples/instrumentation-script-multiple-assignments/_config.js b/packages/svelte/tests/runtime-legacy/samples/instrumentation-script-multiple-assignments/_config.js index 1645d87a77..cd13cc73ac 100644 --- a/packages/svelte/tests/runtime-legacy/samples/instrumentation-script-multiple-assignments/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/instrumentation-script-multiple-assignments/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -11,11 +12,12 @@ export default test({

    bar: 0

    `, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const button = target.querySelector('button'); const click = new window.MouseEvent('click', { bubbles: true }); - await button?.dispatchEvent(click); + button?.dispatchEvent(click); + flushSync(); assert.equal(component.foo, 4); assert.equal(component.bar, 2); diff --git a/packages/svelte/tests/runtime-legacy/samples/instrumentation-script-update/_config.js b/packages/svelte/tests/runtime-legacy/samples/instrumentation-script-update/_config.js index c18060047b..a7673f2573 100644 --- a/packages/svelte/tests/runtime-legacy/samples/instrumentation-script-update/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/instrumentation-script-update/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -6,11 +7,12 @@ export default test({

    x: 0

    `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const buttons = target.querySelectorAll('button'); const click = new window.MouseEvent('click', { bubbles: true }); - await buttons[0].dispatchEvent(click); + buttons[0].dispatchEvent(click); + flushSync(); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-legacy/samples/instrumentation-template-destructuring/_config.js b/packages/svelte/tests/runtime-legacy/samples/instrumentation-template-destructuring/_config.js index e9ec80cf18..b2c0e80831 100644 --- a/packages/svelte/tests/runtime-legacy/samples/instrumentation-template-destructuring/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/instrumentation-template-destructuring/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -12,7 +13,9 @@ export default test({ const buttons = target.querySelectorAll('button'); const click = new window.MouseEvent('click', { bubbles: true }); - await buttons[0].dispatchEvent(click); + buttons[0].dispatchEvent(click); + flushSync(); + assert.htmlEqual( target.innerHTML, ` @@ -23,7 +26,9 @@ export default test({ ` ); - await buttons[1].dispatchEvent(click); + buttons[1].dispatchEvent(click); + flushSync(); + assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-legacy/samples/instrumentation-template-loop-scope/_config.js b/packages/svelte/tests/runtime-legacy/samples/instrumentation-template-loop-scope/_config.js index d269944d97..14717a95ec 100644 --- a/packages/svelte/tests/runtime-legacy/samples/instrumentation-template-loop-scope/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/instrumentation-template-loop-scope/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -6,11 +7,13 @@ export default test({

    x: 0

    `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const buttons = target.querySelectorAll('button'); const click = new window.MouseEvent('click', { bubbles: true }); - await buttons[0].dispatchEvent(click); + buttons[0].dispatchEvent(click); + flushSync(); + assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-legacy/samples/instrumentation-template-multiple-assignments/_config.js b/packages/svelte/tests/runtime-legacy/samples/instrumentation-template-multiple-assignments/_config.js index 1645d87a77..cd13cc73ac 100644 --- a/packages/svelte/tests/runtime-legacy/samples/instrumentation-template-multiple-assignments/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/instrumentation-template-multiple-assignments/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -11,11 +12,12 @@ export default test({

    bar: 0

    `, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const button = target.querySelector('button'); const click = new window.MouseEvent('click', { bubbles: true }); - await button?.dispatchEvent(click); + button?.dispatchEvent(click); + flushSync(); assert.equal(component.foo, 4); assert.equal(component.bar, 2); diff --git a/packages/svelte/tests/runtime-legacy/samples/instrumentation-template-update/_config.js b/packages/svelte/tests/runtime-legacy/samples/instrumentation-template-update/_config.js index c18060047b..a7673f2573 100644 --- a/packages/svelte/tests/runtime-legacy/samples/instrumentation-template-update/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/instrumentation-template-update/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -6,11 +7,12 @@ export default test({

    x: 0

    `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const buttons = target.querySelectorAll('button'); const click = new window.MouseEvent('click', { bubbles: true }); - await buttons[0].dispatchEvent(click); + buttons[0].dispatchEvent(click); + flushSync(); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-legacy/samples/instrumentation-update-expression/_config.js b/packages/svelte/tests/runtime-legacy/samples/instrumentation-update-expression/_config.js index d58be61a36..a3c5b2a825 100644 --- a/packages/svelte/tests/runtime-legacy/samples/instrumentation-update-expression/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/instrumentation-update-expression/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -9,24 +10,28 @@ export default test({ `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const [foo, bar] = target.querySelectorAll('p'); const [button1, button2, button3, button4] = target.querySelectorAll('button'); const event = new window.MouseEvent('click', { bubbles: true }); - await button1.dispatchEvent(event); + button1.dispatchEvent(event); + flushSync(); assert.equal(foo.innerHTML, '1'); assert.equal(bar.innerHTML, '0'); - await button2.dispatchEvent(event); + button2.dispatchEvent(event); + flushSync(); assert.equal(foo.innerHTML, '2'); assert.equal(bar.innerHTML, '0'); - await button3.dispatchEvent(event); + button3.dispatchEvent(event); + flushSync(); assert.equal(foo.innerHTML, '2'); assert.equal(bar.innerHTML, '1'); - await button4.dispatchEvent(event); + button4.dispatchEvent(event); + flushSync(); assert.equal(foo.innerHTML, '2'); assert.equal(bar.innerHTML, '2'); } diff --git a/packages/svelte/tests/runtime-legacy/samples/invalidation-in-if-condition/_config.js b/packages/svelte/tests/runtime-legacy/samples/invalidation-in-if-condition/_config.js index 881cba8c13..02f43929d8 100644 --- a/packages/svelte/tests/runtime-legacy/samples/invalidation-in-if-condition/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/invalidation-in-if-condition/_config.js @@ -1,21 +1,25 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ html: '', - async test({ assert, target, window }) { + test({ assert, target, window }) { const button = target.querySelector('button'); ok(button); const click = new window.MouseEvent('click', { bubbles: true }); - await button.dispatchEvent(click); + button.dispatchEvent(click); + flushSync(); assert.htmlEqual(target.innerHTML, ''); - await button.dispatchEvent(click); + button.dispatchEvent(click); + flushSync(); assert.htmlEqual(target.innerHTML, ''); - await button.dispatchEvent(click); + button.dispatchEvent(click); + flushSync(); assert.htmlEqual(target.innerHTML, ''); } }); diff --git a/packages/svelte/tests/runtime-legacy/samples/key-block-component-slot/_config.js b/packages/svelte/tests/runtime-legacy/samples/key-block-component-slot/_config.js index 8265e5b62f..837d1d112b 100644 --- a/packages/svelte/tests/runtime-legacy/samples/key-block-component-slot/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/key-block-component-slot/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; /** @type {string[]} */ @@ -13,14 +14,14 @@ export default test({ logs = []; }, - async test({ assert, target }) { + test({ assert, target }) { assert.deepEqual(logs, ['mount']); const button = target.querySelector('button'); const click = new window.MouseEvent('click', { bubbles: true }); - await button?.dispatchEvent(click); - await Promise.resolve(); + button?.dispatchEvent(click); + flushSync(); assert.deepEqual(logs, ['mount', 'unmount', 'mount']); } diff --git a/packages/svelte/tests/runtime-legacy/samples/key-block-static-if/_config.js b/packages/svelte/tests/runtime-legacy/samples/key-block-static-if/_config.js index 0aa126ddc6..baa6ac3a7e 100644 --- a/packages/svelte/tests/runtime-legacy/samples/key-block-static-if/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/key-block-static-if/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -10,7 +11,8 @@ export default test({ async test({ assert, target, window }) { const button = target.querySelector('button'); - await button?.dispatchEvent(new window.Event('click', { bubbles: true })); + button?.dispatchEvent(new window.Event('click', { bubbles: true })); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/mutation-tracking-across-sibling-scopes/_config.js b/packages/svelte/tests/runtime-legacy/samples/mutation-tracking-across-sibling-scopes/_config.js index b67753cffc..fbbc749b6d 100644 --- a/packages/svelte/tests/runtime-legacy/samples/mutation-tracking-across-sibling-scopes/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/mutation-tracking-across-sibling-scopes/_config.js @@ -1,7 +1,8 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ - async test({ assert, component, target }) { + test({ assert, component, target }) { assert.htmlEqual(component.div.innerHTML, '
    +
    -
    '); const event = new window.Event('change'); @@ -9,8 +10,8 @@ export default test({ ok(input); input.checked = false; - await input.dispatchEvent(event); - await Promise.resolve(); + input.dispatchEvent(event); + flushSync(); assert.htmlEqual(component.div.innerHTML, '
    -
    -
    '); } diff --git a/packages/svelte/tests/runtime-legacy/samples/nested-destructure-assignment-2/_config.js b/packages/svelte/tests/runtime-legacy/samples/nested-destructure-assignment-2/_config.js index 9e41e8074e..a8451373c4 100644 --- a/packages/svelte/tests/runtime-legacy/samples/nested-destructure-assignment-2/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/nested-destructure-assignment-2/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -17,10 +18,11 @@ export default test({ `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const button = target.querySelector('button'); const clickEvent = new window.Event('click', { bubbles: true }); - await button?.dispatchEvent(clickEvent); + button?.dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/nested-destructure-assignment/_config.js b/packages/svelte/tests/runtime-legacy/samples/nested-destructure-assignment/_config.js index 021f851197..79b68dd931 100644 --- a/packages/svelte/tests/runtime-legacy/samples/nested-destructure-assignment/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/nested-destructure-assignment/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -17,10 +18,11 @@ export default test({ `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const button = target.querySelector('button'); const clickEvent = new window.Event('click', { bubbles: true }); - await button?.dispatchEvent(clickEvent); + button?.dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/prop-no-change/_config.js b/packages/svelte/tests/runtime-legacy/samples/prop-no-change/_config.js index 71720f3528..905c2a6226 100644 --- a/packages/svelte/tests/runtime-legacy/samples/prop-no-change/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/prop-no-change/_config.js @@ -1,9 +1,11 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ - async test({ assert, logs, target }) { + test({ assert, logs, target }) { assert.deepEqual(logs, ['primitive', 'object']); - await target.querySelector('button')?.click(); + target.querySelector('button')?.click(); + flushSync(); assert.deepEqual(logs, ['primitive', 'object', 'object']); } }); diff --git a/packages/svelte/tests/runtime-legacy/samples/props-reactive-slot/_config.js b/packages/svelte/tests/runtime-legacy/samples/props-reactive-slot/_config.js index b6b3ee3a04..85edf41dae 100644 --- a/packages/svelte/tests/runtime-legacy/samples/props-reactive-slot/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/props-reactive-slot/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -6,11 +7,12 @@ export default test({ `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const btn = target.querySelector('button'); const clickEvent = new window.MouseEvent('click', { bubbles: true }); - await btn?.dispatchEvent(clickEvent); + btn?.dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/props-reassign/_config.js b/packages/svelte/tests/runtime-legacy/samples/props-reassign/_config.js index d5760f7a77..b9ddd39238 100644 --- a/packages/svelte/tests/runtime-legacy/samples/props-reassign/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/props-reassign/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -7,10 +8,11 @@ export default test({ `, - async test({ assert, target }) { + test({ assert, target }) { const [btn1, btn2] = target.querySelectorAll('button'); - await btn1.click(); + btn1.click(); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -21,7 +23,8 @@ export default test({ ` ); - await btn2.click(); + btn2.click(); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/raw-mustache-as-root/_config.js b/packages/svelte/tests/runtime-legacy/samples/raw-mustache-as-root/_config.js index ee75954855..63a4b8aed3 100644 --- a/packages/svelte/tests/runtime-legacy/samples/raw-mustache-as-root/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/raw-mustache-as-root/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -6,15 +7,14 @@ export default test({

    Another first line

    This line should be last.

    `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const btn = target.querySelector('button'); ok(btn); const clickEvent = new window.MouseEvent('click', { bubbles: true }); - await btn.dispatchEvent(clickEvent); - await Promise.resolve(); // TODO: We use a pre_effect for $:, changing to computed will make this line redundant - await Promise.resolve(); // additional tick to rerender + btn.dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -25,9 +25,8 @@ export default test({ ` ); - await btn.dispatchEvent(clickEvent); - await Promise.resolve(); // TODO: We use a pre_effect for $:, changing to computed will make this line redundant - await Promise.resolve(); // additional tick to rerender + btn.dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/raw-mustache-inside-slot/_config.js b/packages/svelte/tests/runtime-legacy/samples/raw-mustache-inside-slot/_config.js index a8d9c3e11f..63a4b8aed3 100644 --- a/packages/svelte/tests/runtime-legacy/samples/raw-mustache-inside-slot/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/raw-mustache-inside-slot/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -6,14 +7,14 @@ export default test({

    Another first line

    This line should be last.

    `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const btn = target.querySelector('button'); ok(btn); const clickEvent = new window.MouseEvent('click', { bubbles: true }); - await btn.dispatchEvent(clickEvent); - await Promise.resolve(); // additional tick to rerender + btn.dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -24,8 +25,8 @@ export default test({ ` ); - await btn.dispatchEvent(clickEvent); - await Promise.resolve(); // additional tick to rerender + btn.dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/reactive-compound-operator/_config.js b/packages/svelte/tests/runtime-legacy/samples/reactive-compound-operator/_config.js index 03e69eac3c..9eecf4a7a5 100644 --- a/packages/svelte/tests/runtime-legacy/samples/reactive-compound-operator/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/reactive-compound-operator/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -11,7 +12,8 @@ export default test({ const button = target.querySelector('button'); ok(button); - await button.dispatchEvent(click); + button.dispatchEvent(click); + flushSync(); assert.equal(component.x, 2); assert.htmlEqual( @@ -22,7 +24,8 @@ export default test({ ` ); - await button.dispatchEvent(click); + button.dispatchEvent(click); + flushSync(); assert.equal(component.x, 6); assert.htmlEqual( diff --git a/packages/svelte/tests/runtime-legacy/samples/reactive-function-called-reassigned/_config.js b/packages/svelte/tests/runtime-legacy/samples/reactive-function-called-reassigned/_config.js index ee28fb43c3..dacf6ffbc5 100644 --- a/packages/svelte/tests/runtime-legacy/samples/reactive-function-called-reassigned/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/reactive-function-called-reassigned/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; /** @type {string[]} */ @@ -17,7 +18,7 @@ export default test({ before_test() { called = 0; }, - async test({ assert, target, window }) { + test({ assert, target, window }) { assert.equal(called, 1); const input = target.querySelector('input'); @@ -25,7 +26,8 @@ export default test({ const event = new window.Event('input'); input.value = 'h'; - await input.dispatchEvent(event); + input.dispatchEvent(event); + flushSync(); assert.equal(called, 2); assert.equal(value.length, 3); diff --git a/packages/svelte/tests/runtime-legacy/samples/reactive-statement-indirect/_config.js b/packages/svelte/tests/runtime-legacy/samples/reactive-statement-indirect/_config.js index 96fe6ded05..4cc21b0db9 100644 --- a/packages/svelte/tests/runtime-legacy/samples/reactive-statement-indirect/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/reactive-statement-indirect/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -5,12 +6,12 @@ export default test({

    2

    `, - async test({ assert, target }) { - await target + test({ assert, target }) { + target .querySelector('button') ?.dispatchEvent(new window.MouseEvent('click', { bubbles: true })); - await Promise.resolve(); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/reactive-update-expression/_config.js b/packages/svelte/tests/runtime-legacy/samples/reactive-update-expression/_config.js index 8df0d32e9d..38494fee8a 100644 --- a/packages/svelte/tests/runtime-legacy/samples/reactive-update-expression/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/reactive-update-expression/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -6,14 +7,15 @@ export default test({

    count: 1

    `, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const click = new window.MouseEvent('click', { bubbles: true }); const button = target.querySelector('button'); ok(button); assert.equal(component.x, 1); - await button.dispatchEvent(click); + button.dispatchEvent(click); + flushSync(); assert.equal(component.x, 3); assert.htmlEqual( @@ -24,7 +26,8 @@ export default test({ ` ); - await button.dispatchEvent(click); + button.dispatchEvent(click); + flushSync(); assert.equal(component.x, 5); assert.htmlEqual( diff --git a/packages/svelte/tests/runtime-legacy/samples/reactive-value-mutate-const/_config.js b/packages/svelte/tests/runtime-legacy/samples/reactive-value-mutate-const/_config.js index 55f4777c1a..03d973fc0b 100644 --- a/packages/svelte/tests/runtime-legacy/samples/reactive-value-mutate-const/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/reactive-value-mutate-const/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -6,12 +7,12 @@ export default test({
    {}
    `, - async test({ assert, target }) { + test({ assert, target }) { const button = target.querySelector('button'); const click = new window.MouseEvent('click', { bubbles: true }); - await button?.dispatchEvent(click); - await Promise.resolve(); + button?.dispatchEvent(click); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/rest-props-reassign/_config.js b/packages/svelte/tests/runtime-legacy/samples/rest-props-reassign/_config.js index 4e8638eab2..694ba871ed 100644 --- a/packages/svelte/tests/runtime-legacy/samples/rest-props-reassign/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/rest-props-reassign/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -7,10 +8,11 @@ export default test({ `, - async test({ assert, target }) { + test({ assert, target }) { const [btn1, btn2] = target.querySelectorAll('button'); - await btn1.click(); + btn1.click(); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -21,7 +23,8 @@ export default test({ ` ); - await btn2.click(); + btn2.click(); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/rest-props-without-props/_config.js b/packages/svelte/tests/runtime-legacy/samples/rest-props-without-props/_config.js index ff97265fb5..a210563ec3 100644 --- a/packages/svelte/tests/runtime-legacy/samples/rest-props-without-props/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/rest-props-without-props/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -10,11 +11,12 @@ export default test({
    `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const [btn1, btn2, btn3, btn4] = target.querySelectorAll('button'); const clickEvent = new window.Event('click', { bubbles: true }); - await btn1.dispatchEvent(clickEvent); + btn1.dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -26,8 +28,8 @@ export default test({ ` ); - await btn2.dispatchEvent(clickEvent); - await Promise.resolve(); + btn2.dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -39,8 +41,8 @@ export default test({ ` ); - await btn3.dispatchEvent(clickEvent); - await Promise.resolve(); + btn3.dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -52,8 +54,8 @@ export default test({ ` ); - await btn4.dispatchEvent(clickEvent); - await Promise.resolve(); + btn4.dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/rest-props/_config.js b/packages/svelte/tests/runtime-legacy/samples/rest-props/_config.js index 2ee0a7e2b6..969843b83b 100644 --- a/packages/svelte/tests/runtime-legacy/samples/rest-props/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/rest-props/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -12,11 +13,12 @@ export default test({ `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const [btn1, btn2, btn3, btn4] = target.querySelectorAll('button'); const clickEvent = new window.Event('click', { bubbles: true }); - await btn1.dispatchEvent(clickEvent); + btn1.dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -29,8 +31,8 @@ export default test({ ` ); - await btn2.dispatchEvent(clickEvent); - await Promise.resolve(); + btn2.dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -43,8 +45,8 @@ export default test({ ` ); - await btn3.dispatchEvent(clickEvent); - await Promise.resolve(); + btn3.dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -57,8 +59,8 @@ export default test({ ` ); - await btn4.dispatchEvent(clickEvent); - await Promise.resolve(); + btn4.dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/select-lazy-options/_config.js b/packages/svelte/tests/runtime-legacy/samples/select-lazy-options/_config.js index 03714f0875..88a8281f44 100644 --- a/packages/svelte/tests/runtime-legacy/samples/select-lazy-options/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/select-lazy-options/_config.js @@ -1,8 +1,10 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ async test({ assert, target }) { - await target.querySelector('button')?.click(); + target.querySelector('button')?.click(); + flushSync(); await Promise.resolve(); const options = target.querySelectorAll('option'); diff --git a/packages/svelte/tests/runtime-legacy/samples/spread-component-with-bind/_config.js b/packages/svelte/tests/runtime-legacy/samples/spread-component-with-bind/_config.js index ade62ee209..3dbf2d3e58 100644 --- a/packages/svelte/tests/runtime-legacy/samples/spread-component-with-bind/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/spread-component-with-bind/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ @@ -11,12 +12,13 @@ export default test({ `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const input = target.querySelector('input'); ok(input); input.value = 'bar'; - await input.dispatchEvent(new window.Event('input')); + input.dispatchEvent(new window.Event('input')); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/spread-element-input-select-multiple/_config.js b/packages/svelte/tests/runtime-legacy/samples/spread-element-input-select-multiple/_config.js index 1670bb0c31..cdbf94ace5 100644 --- a/packages/svelte/tests/runtime-legacy/samples/spread-element-input-select-multiple/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/spread-element-input-select-multiple/_config.js @@ -1,7 +1,8 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const [input1, input2] = target.querySelectorAll('input'); const select = target.querySelector('select'); ok(select); @@ -15,7 +16,8 @@ export default test({ const event = new window.Event('change'); input1.checked = false; - await input1.dispatchEvent(event); + input1.dispatchEvent(event); + flushSync(); selections = Array.from(select.selectedOptions); assert.equal(selections.length, 1); @@ -23,10 +25,11 @@ export default test({ assert.ok(selections.includes(option2)); input2.checked = false; - await input2.dispatchEvent(event); + input2.dispatchEvent(event); + flushSync(); input1.checked = true; - await input1.dispatchEvent(event); - + input1.dispatchEvent(event); + flushSync(); selections = Array.from(select.selectedOptions); assert.equal(selections.length, 1); assert.ok(selections.includes(option1)); diff --git a/packages/svelte/tests/runtime-legacy/samples/store-assignment-updates-property/_config.js b/packages/svelte/tests/runtime-legacy/samples/store-assignment-updates-property/_config.js index 7e3c3bcc9c..c901a425a5 100644 --- a/packages/svelte/tests/runtime-legacy/samples/store-assignment-updates-property/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/store-assignment-updates-property/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -8,11 +9,12 @@ export default test({ `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const [btn1, btn2] = target.querySelectorAll('button'); const click = new window.MouseEvent('click', { bubbles: true }); - await btn1.dispatchEvent(click); + btn1.dispatchEvent(click); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -24,7 +26,8 @@ export default test({ ` ); - await btn2.dispatchEvent(click); + btn2.dispatchEvent(click); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/store-assignment-updates/_config.js b/packages/svelte/tests/runtime-legacy/samples/store-assignment-updates/_config.js index 85054029c3..35e0425d3d 100644 --- a/packages/svelte/tests/runtime-legacy/samples/store-assignment-updates/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/store-assignment-updates/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; import { writable } from 'svelte/store'; @@ -11,13 +12,14 @@ export default test({

    doubled: 0

    `, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const button = target.querySelector('button'); ok(button); const click = new window.MouseEvent('click', { bubbles: true }); - await button.dispatchEvent(click); + button.dispatchEvent(click); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -27,7 +29,8 @@ export default test({ ` ); - await component.count.set(42); + component.count.set(42); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/store-auto-subscribe-implicit/_config.js b/packages/svelte/tests/runtime-legacy/samples/store-auto-subscribe-implicit/_config.js index 65403b047b..a6be345b6b 100644 --- a/packages/svelte/tests/runtime-legacy/samples/store-auto-subscribe-implicit/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/store-auto-subscribe-implicit/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; import { writable } from 'svelte/store'; @@ -10,13 +11,14 @@ export default test({ `, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const button = target.querySelector('button'); ok(button); const click = new window.MouseEvent('click', { bubbles: true }); - await button.dispatchEvent(click); + button.dispatchEvent(click); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -25,7 +27,8 @@ export default test({ ` ); - await component.count.set(42); + component.count.set(42); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/store-auto-subscribe/_config.js b/packages/svelte/tests/runtime-legacy/samples/store-auto-subscribe/_config.js index 65403b047b..a6be345b6b 100644 --- a/packages/svelte/tests/runtime-legacy/samples/store-auto-subscribe/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/store-auto-subscribe/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; import { writable } from 'svelte/store'; @@ -10,13 +11,14 @@ export default test({ `, - async test({ assert, component, target, window }) { + test({ assert, component, target, window }) { const button = target.querySelector('button'); ok(button); const click = new window.MouseEvent('click', { bubbles: true }); - await button.dispatchEvent(click); + button.dispatchEvent(click); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -25,7 +27,8 @@ export default test({ ` ); - await component.count.set(42); + component.count.set(42); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/store-each-binding-deep/_config.js b/packages/svelte/tests/runtime-legacy/samples/store-each-binding-deep/_config.js index 672932653c..1134b20d0c 100644 --- a/packages/svelte/tests/runtime-legacy/samples/store-each-binding-deep/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/store-each-binding-deep/_config.js @@ -1,13 +1,15 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ - async test({ assert, target, window }) { + test({ assert, target, window }) { const input = target.querySelector('input'); ok(input); const event = new window.Event('input'); input.value = 'changed'; - await input.dispatchEvent(event); + input.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/store-each-binding-destructuring/_config.js b/packages/svelte/tests/runtime-legacy/samples/store-each-binding-destructuring/_config.js index 672932653c..1134b20d0c 100644 --- a/packages/svelte/tests/runtime-legacy/samples/store-each-binding-destructuring/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/store-each-binding-destructuring/_config.js @@ -1,13 +1,15 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ - async test({ assert, target, window }) { + test({ assert, target, window }) { const input = target.querySelector('input'); ok(input); const event = new window.Event('input'); input.value = 'changed'; - await input.dispatchEvent(event); + input.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/store-each-binding/_config.js b/packages/svelte/tests/runtime-legacy/samples/store-each-binding/_config.js index 672932653c..1134b20d0c 100644 --- a/packages/svelte/tests/runtime-legacy/samples/store-each-binding/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/store-each-binding/_config.js @@ -1,13 +1,15 @@ +import { flushSync } from 'svelte'; import { ok, test } from '../../test'; export default test({ - async test({ assert, target, window }) { + test({ assert, target, window }) { const input = target.querySelector('input'); ok(input); const event = new window.Event('input'); input.value = 'changed'; - await input.dispatchEvent(event); + input.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/store-resubscribe/_config.js b/packages/svelte/tests/runtime-legacy/samples/store-resubscribe/_config.js index bd2d48a714..5c9229e7cf 100644 --- a/packages/svelte/tests/runtime-legacy/samples/store-resubscribe/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/store-resubscribe/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -7,11 +8,12 @@ export default test({ `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const buttons = target.querySelectorAll('button'); const click = new window.MouseEvent('click', { bubbles: true }); - await buttons[0].dispatchEvent(click); + buttons[0].dispatchEvent(click); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -22,7 +24,8 @@ export default test({ ` ); - await buttons[1].dispatchEvent(click); + buttons[1].dispatchEvent(click); + flushSync(); assert.htmlEqual( target.innerHTML, @@ -33,7 +36,8 @@ export default test({ ` ); - await buttons[0].dispatchEvent(click); + buttons[0].dispatchEvent(click); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/transition-js-events-in-out/_config.js b/packages/svelte/tests/runtime-legacy/samples/transition-js-events-in-out/_config.js index 785f51a4fa..5c4e6ea611 100644 --- a/packages/svelte/tests/runtime-legacy/samples/transition-js-events-in-out/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/transition-js-events-in-out/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -36,6 +37,8 @@ export default test({ await raf.tick(100); assert.equal(component.intro_count, 0); + flushSync(); + assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-legacy/samples/transition-js-if-outro-unrelated-component-binding-update/_config.js b/packages/svelte/tests/runtime-legacy/samples/transition-js-if-outro-unrelated-component-binding-update/_config.js index 63827a1962..ccab0ca834 100644 --- a/packages/svelte/tests/runtime-legacy/samples/transition-js-if-outro-unrelated-component-binding-update/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/transition-js-if-outro-unrelated-component-binding-update/_config.js @@ -1,10 +1,12 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ - async test({ assert, target, window, raf }) { + test({ assert, target, window, raf }) { const button = target.querySelector('button'); const event = new window.MouseEvent('click', { bubbles: true }); - await button?.dispatchEvent(event); + button?.dispatchEvent(event); + flushSync(); raf.tick(500); assert.htmlEqual(target.innerHTML, ''); } diff --git a/packages/svelte/tests/runtime-legacy/samples/window-binding-resize/_config.js b/packages/svelte/tests/runtime-legacy/samples/window-binding-resize/_config.js index 584fa02d45..62d24e7f1a 100644 --- a/packages/svelte/tests/runtime-legacy/samples/window-binding-resize/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/window-binding-resize/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -22,7 +23,7 @@ export default test({ mode: ['client', 'hydrate'], - async test({ assert, target, window }) { + test({ assert, target, window }) { const event = new window.Event('resize'); Object.defineProperties(window, { @@ -40,7 +41,8 @@ export default test({ } }); - await window.dispatchEvent(event); + window.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/window-binding-scroll-store/_config.js b/packages/svelte/tests/runtime-legacy/samples/window-binding-scroll-store/_config.js index 3a0f3ccd73..115c3cfd38 100644 --- a/packages/svelte/tests/runtime-legacy/samples/window-binding-scroll-store/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/window-binding-scroll-store/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; /** @type {Window['scrollTo']} */ @@ -21,7 +22,7 @@ export default test({ window.scrollTo = original_scrollTo; }, - async test({ assert, target, window }) { + test({ assert, target, window }) { assert.equal(window.scrollY, 0); const event = new window.Event('scroll'); @@ -32,7 +33,8 @@ export default test({ } }); - await window.dispatchEvent(event); + window.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-legacy/samples/window-event-context/_config.js b/packages/svelte/tests/runtime-legacy/samples/window-event-context/_config.js index 42b8359059..775ea17bbb 100644 --- a/packages/svelte/tests/runtime-legacy/samples/window-event-context/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/window-event-context/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -12,11 +13,13 @@ export default test({ async test({ assert, component, target, window }) { const event = new window.Event('click'); - await window.dispatchEvent(event); + window.dispatchEvent(event); + flushSync(); assert.equal(component.foo, false); assert.htmlEqual(target.innerHTML, 'false'); - await window.dispatchEvent(event); + window.dispatchEvent(event); + flushSync(); assert.equal(component.foo, true); assert.htmlEqual(target.innerHTML, 'true'); } diff --git a/packages/svelte/tests/runtime-legacy/samples/window-event/_config.js b/packages/svelte/tests/runtime-legacy/samples/window-event/_config.js index e77a1f48b9..ac072aced2 100644 --- a/packages/svelte/tests/runtime-legacy/samples/window-event/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/window-event/_config.js @@ -1,9 +1,10 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: '
    x
    ', - async test({ assert, target, window }) { + test({ assert, target, window }) { const event = new window.Event('resize'); Object.defineProperties(window, { @@ -17,8 +18,8 @@ export default test({ } }); - await window.dispatchEvent(event); - await Promise.resolve(); + window.dispatchEvent(event); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-runes/samples/ambiguous-source/_config.js b/packages/svelte/tests/runtime-runes/samples/ambiguous-source/_config.js index 2775015dff..9da297dcaf 100644 --- a/packages/svelte/tests/runtime-runes/samples/ambiguous-source/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/ambiguous-source/_config.js @@ -1,11 +1,13 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ``, - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/attribute-spread-reactivitiy/_config.js b/packages/svelte/tests/runtime-runes/samples/attribute-spread-reactivitiy/_config.js index 9baec30b4f..77edb47731 100644 --- a/packages/svelte/tests/runtime-runes/samples/attribute-spread-reactivitiy/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/attribute-spread-reactivitiy/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -7,11 +8,11 @@ export default test({
    \nChecked:\nfalse`, - async test({ assert, target }) { + test({ assert, target }) { const input = target.querySelector('input'); - await input?.click(); + input?.click(); + flushSync(); + assert.htmlEqual(target.innerHTML, `
    \nChecked:\ntrue`); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/bindings-form-reset/_config.js b/packages/svelte/tests/runtime-runes/samples/bindings-form-reset/_config.js index 069d183177..853f6a404a 100644 --- a/packages/svelte/tests/runtime-runes/samples/bindings-form-reset/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/bindings-form-reset/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -10,7 +11,8 @@ export default test({ ); await target.querySelector('button')?.click(); - await Promise.resolve(); + flushSync(); + assert.htmlEqual( p?.innerHTML || '', `{"text":"","checkbox":false,"radio_group":null,"checkbox_group":[],"select":"a","textarea":""}` diff --git a/packages/svelte/tests/runtime-runes/samples/class-frozen-state-object/_config.js b/packages/svelte/tests/runtime-runes/samples/class-frozen-state-object/_config.js index 79a0d13bdd..4b043a75e2 100644 --- a/packages/svelte/tests/runtime-runes/samples/class-frozen-state-object/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/class-frozen-state-object/_config.js @@ -1,15 +1,18 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ``, - async test({ assert, target, logs }) { + test({ assert, target, logs }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); assert.deepEqual(logs, ['read only', 'read only']); diff --git a/packages/svelte/tests/runtime-runes/samples/class-frozen-state/_config.js b/packages/svelte/tests/runtime-runes/samples/class-frozen-state/_config.js index 436ce99798..8a7fcc66a0 100644 --- a/packages/svelte/tests/runtime-runes/samples/class-frozen-state/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/class-frozen-state/_config.js @@ -1,15 +1,18 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ``, - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/class-private-frozen-state-object/_config.js b/packages/svelte/tests/runtime-runes/samples/class-private-frozen-state-object/_config.js index 79a0d13bdd..4b043a75e2 100644 --- a/packages/svelte/tests/runtime-runes/samples/class-private-frozen-state-object/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/class-private-frozen-state-object/_config.js @@ -1,15 +1,18 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ``, - async test({ assert, target, logs }) { + test({ assert, target, logs }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); assert.deepEqual(logs, ['read only', 'read only']); diff --git a/packages/svelte/tests/runtime-runes/samples/class-private-frozen-state/_config.js b/packages/svelte/tests/runtime-runes/samples/class-private-frozen-state/_config.js index 436ce99798..8a7fcc66a0 100644 --- a/packages/svelte/tests/runtime-runes/samples/class-private-frozen-state/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/class-private-frozen-state/_config.js @@ -1,15 +1,18 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ``, - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/class-private-state-increment/_config.js b/packages/svelte/tests/runtime-runes/samples/class-private-state-increment/_config.js index c7ea1a16db..9f7c3aec9b 100644 --- a/packages/svelte/tests/runtime-runes/samples/class-private-state-increment/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/class-private-state-increment/_config.js @@ -1,15 +1,18 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ``, - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/class-private-state-init/_config.js b/packages/svelte/tests/runtime-runes/samples/class-private-state-init/_config.js index 436ce99798..8a7fcc66a0 100644 --- a/packages/svelte/tests/runtime-runes/samples/class-private-state-init/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/class-private-state-init/_config.js @@ -1,15 +1,18 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ``, - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/class-private-state-proxy/_config.js b/packages/svelte/tests/runtime-runes/samples/class-private-state-proxy/_config.js index 436ce99798..8a7fcc66a0 100644 --- a/packages/svelte/tests/runtime-runes/samples/class-private-state-proxy/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/class-private-state-proxy/_config.js @@ -1,15 +1,18 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ``, - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/class-private-state/_config.js b/packages/svelte/tests/runtime-runes/samples/class-private-state/_config.js index 436ce99798..8a7fcc66a0 100644 --- a/packages/svelte/tests/runtime-runes/samples/class-private-state/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/class-private-state/_config.js @@ -1,15 +1,18 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ``, - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/class-state-deep-update/_config.js b/packages/svelte/tests/runtime-runes/samples/class-state-deep-update/_config.js index e9ef53f95f..27e0579bb2 100644 --- a/packages/svelte/tests/runtime-runes/samples/class-state-deep-update/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/class-state-deep-update/_config.js @@ -1,15 +1,20 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ``, - async test({ assert, target }) { + test({ assert, target }) { const [btn1, btn2] = target.querySelectorAll('button'); - await btn1?.click(); + btn1?.click(); + flushSync(); + assert.htmlEqual(target.innerHTML, ``); - await btn2?.click(); + btn2?.click(); + flushSync(); + assert.htmlEqual(target.innerHTML, ``); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/class-state-derived-fn/_config.js b/packages/svelte/tests/runtime-runes/samples/class-state-derived-fn/_config.js index 54e9e296fc..141d994a2f 100644 --- a/packages/svelte/tests/runtime-runes/samples/class-state-derived-fn/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/class-state-derived-fn/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -6,10 +7,11 @@ export default test({

    doubled: 0

    `, - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual( target.innerHTML, ` @@ -18,7 +20,8 @@ export default test({ ` ); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-runes/samples/class-state-derived-private/_config.js b/packages/svelte/tests/runtime-runes/samples/class-state-derived-private/_config.js index 54e9e296fc..141d994a2f 100644 --- a/packages/svelte/tests/runtime-runes/samples/class-state-derived-private/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/class-state-derived-private/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -6,10 +7,11 @@ export default test({

    doubled: 0

    `, - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual( target.innerHTML, ` @@ -18,7 +20,8 @@ export default test({ ` ); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-runes/samples/class-state-derived/_config.js b/packages/svelte/tests/runtime-runes/samples/class-state-derived/_config.js index 54e9e296fc..141d994a2f 100644 --- a/packages/svelte/tests/runtime-runes/samples/class-state-derived/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/class-state-derived/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -6,10 +7,11 @@ export default test({

    doubled: 0

    `, - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual( target.innerHTML, ` @@ -18,7 +20,8 @@ export default test({ ` ); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-runes/samples/class-state-increment/_config.js b/packages/svelte/tests/runtime-runes/samples/class-state-increment/_config.js index c7ea1a16db..9f7c3aec9b 100644 --- a/packages/svelte/tests/runtime-runes/samples/class-state-increment/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/class-state-increment/_config.js @@ -1,15 +1,18 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ``, - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/class-state-init-conflict/_config.js b/packages/svelte/tests/runtime-runes/samples/class-state-init-conflict/_config.js index 436ce99798..8a7fcc66a0 100644 --- a/packages/svelte/tests/runtime-runes/samples/class-state-init-conflict/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/class-state-init-conflict/_config.js @@ -1,15 +1,18 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ``, - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/class-state-init-eager-2/_config.js b/packages/svelte/tests/runtime-runes/samples/class-state-init-eager-2/_config.js index 6d49c0436f..6dd1762e30 100644 --- a/packages/svelte/tests/runtime-runes/samples/class-state-init-eager-2/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/class-state-init-eager-2/_config.js @@ -1,15 +1,18 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ``, - async test({ assert, target, logs }) { + test({ assert, target, logs }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); assert.deepEqual(logs, [undefined]); diff --git a/packages/svelte/tests/runtime-runes/samples/class-state-init-eager-3/_config.js b/packages/svelte/tests/runtime-runes/samples/class-state-init-eager-3/_config.js index 6d49c0436f..6dd1762e30 100644 --- a/packages/svelte/tests/runtime-runes/samples/class-state-init-eager-3/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/class-state-init-eager-3/_config.js @@ -1,15 +1,18 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ``, - async test({ assert, target, logs }) { + test({ assert, target, logs }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); assert.deepEqual(logs, [undefined]); diff --git a/packages/svelte/tests/runtime-runes/samples/class-state-init-eager/_config.js b/packages/svelte/tests/runtime-runes/samples/class-state-init-eager/_config.js index 4da3fffc5e..cea45924a9 100644 --- a/packages/svelte/tests/runtime-runes/samples/class-state-init-eager/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/class-state-init-eager/_config.js @@ -1,15 +1,18 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ``, - async test({ assert, target, logs }) { + test({ assert, target, logs }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); assert.deepEqual(logs, [100]); diff --git a/packages/svelte/tests/runtime-runes/samples/class-state-init/_config.js b/packages/svelte/tests/runtime-runes/samples/class-state-init/_config.js index 436ce99798..8a7fcc66a0 100644 --- a/packages/svelte/tests/runtime-runes/samples/class-state-init/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/class-state-init/_config.js @@ -1,15 +1,18 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ``, - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/class-state-proxy/_config.js b/packages/svelte/tests/runtime-runes/samples/class-state-proxy/_config.js index 436ce99798..8a7fcc66a0 100644 --- a/packages/svelte/tests/runtime-runes/samples/class-state-proxy/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/class-state-proxy/_config.js @@ -1,15 +1,18 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ``, - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/class-state-public-private/_config.js b/packages/svelte/tests/runtime-runes/samples/class-state-public-private/_config.js index 7601ea5fd5..db67cb10f5 100644 --- a/packages/svelte/tests/runtime-runes/samples/class-state-public-private/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/class-state-public-private/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -9,7 +10,9 @@ export default test({ async test({ assert, target }) { const [btn1, btn2] = target.querySelectorAll('button'); - await btn1?.click(); + btn1?.click(); + flushSync(); + assert.htmlEqual( target.innerHTML, ` @@ -18,7 +21,9 @@ export default test({ ` ); - await btn2?.click(); + btn2?.click(); + flushSync(); + assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-runes/samples/class-state-with-literal/_config.js b/packages/svelte/tests/runtime-runes/samples/class-state-with-literal/_config.js index 5c9ce546c9..d2252ef0fd 100644 --- a/packages/svelte/tests/runtime-runes/samples/class-state-with-literal/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/class-state-with-literal/_config.js @@ -1,15 +1,18 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ``, - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/class-state/_config.js b/packages/svelte/tests/runtime-runes/samples/class-state/_config.js index 436ce99798..8a7fcc66a0 100644 --- a/packages/svelte/tests/runtime-runes/samples/class-state/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/class-state/_config.js @@ -1,15 +1,18 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ``, - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/component-let-directive/_config.js b/packages/svelte/tests/runtime-runes/samples/component-let-directive/_config.js index 386a3831b0..91c5fc418f 100644 --- a/packages/svelte/tests/runtime-runes/samples/component-let-directive/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/component-let-directive/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -6,9 +7,10 @@ export default test({

    named slot count is not state

    `, - test: async ({ assert, target }) => { + test: ({ assert, target }) => { const button = target.querySelector('button'); - await button?.click(); + button?.click(); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-runes/samples/derived-direct/_config.js b/packages/svelte/tests/runtime-runes/samples/derived-direct/_config.js index 09bd0a9aad..2ce8bf7e3f 100644 --- a/packages/svelte/tests/runtime-runes/samples/derived-direct/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/derived-direct/_config.js @@ -1,12 +1,14 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ``, - async test({ assert, target, window }) { + test({ assert, target, window }) { const btn = target.querySelector('button'); const clickEvent = new window.Event('click', { bubbles: true }); - await btn?.dispatchEvent(clickEvent); + btn?.dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual(target.innerHTML, ``); } diff --git a/packages/svelte/tests/runtime-runes/samples/derived-fn-destructure/_config.js b/packages/svelte/tests/runtime-runes/samples/derived-fn-destructure/_config.js index 71c7e40ed5..698fce15c4 100644 --- a/packages/svelte/tests/runtime-runes/samples/derived-fn-destructure/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/derived-fn-destructure/_config.js @@ -1,13 +1,15 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ mode: ['server'], html: ``, - async test({ assert, target, window, logs }) { + test({ assert, target, window, logs }) { const btn = target.querySelector('button'); const clickEvent = new window.Event('click', { bubbles: true }); - await btn?.dispatchEvent(clickEvent); + btn?.dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual(target.innerHTML, ``); assert.deepEqual(logs, ['create_derived']); diff --git a/packages/svelte/tests/runtime-runes/samples/derived-fn/_config.js b/packages/svelte/tests/runtime-runes/samples/derived-fn/_config.js index 09bd0a9aad..2ce8bf7e3f 100644 --- a/packages/svelte/tests/runtime-runes/samples/derived-fn/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/derived-fn/_config.js @@ -1,12 +1,14 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ``, - async test({ assert, target, window }) { + test({ assert, target, window }) { const btn = target.querySelector('button'); const clickEvent = new window.Event('click', { bubbles: true }); - await btn?.dispatchEvent(clickEvent); + btn?.dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual(target.innerHTML, ``); } diff --git a/packages/svelte/tests/runtime-runes/samples/derived-indirect-arrow-fn/_config.js b/packages/svelte/tests/runtime-runes/samples/derived-indirect-arrow-fn/_config.js index 09bd0a9aad..e896f69d44 100644 --- a/packages/svelte/tests/runtime-runes/samples/derived-indirect-arrow-fn/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/derived-indirect-arrow-fn/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -6,7 +7,8 @@ export default test({ async test({ assert, target, window }) { const btn = target.querySelector('button'); const clickEvent = new window.Event('click', { bubbles: true }); - await btn?.dispatchEvent(clickEvent); + btn?.dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual(target.innerHTML, ``); } diff --git a/packages/svelte/tests/runtime-runes/samples/derived-indirect-fn-2/_config.js b/packages/svelte/tests/runtime-runes/samples/derived-indirect-fn-2/_config.js index 09bd0a9aad..2ce8bf7e3f 100644 --- a/packages/svelte/tests/runtime-runes/samples/derived-indirect-fn-2/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/derived-indirect-fn-2/_config.js @@ -1,12 +1,14 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ``, - async test({ assert, target, window }) { + test({ assert, target, window }) { const btn = target.querySelector('button'); const clickEvent = new window.Event('click', { bubbles: true }); - await btn?.dispatchEvent(clickEvent); + btn?.dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual(target.innerHTML, ``); } diff --git a/packages/svelte/tests/runtime-runes/samples/derived-indirect-fn/_config.js b/packages/svelte/tests/runtime-runes/samples/derived-indirect-fn/_config.js index 09bd0a9aad..2ce8bf7e3f 100644 --- a/packages/svelte/tests/runtime-runes/samples/derived-indirect-fn/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/derived-indirect-fn/_config.js @@ -1,12 +1,14 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ``, - async test({ assert, target, window }) { + test({ assert, target, window }) { const btn = target.querySelector('button'); const clickEvent = new window.Event('click', { bubbles: true }); - await btn?.dispatchEvent(clickEvent); + btn?.dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual(target.innerHTML, ``); } diff --git a/packages/svelte/tests/runtime-runes/samples/derived-proxy/_config.js b/packages/svelte/tests/runtime-runes/samples/derived-proxy/_config.js index 32340d018a..219cea79ea 100644 --- a/packages/svelte/tests/runtime-runes/samples/derived-proxy/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/derived-proxy/_config.js @@ -1,15 +1,18 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ``, - async test({ assert, target }) { + test({ assert, target }) { const [btn1, btn2] = target.querySelectorAll('button'); - await btn1?.click(); + btn1?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); - await btn2?.click(); + btn2?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/destructure-derived-event/_config.js b/packages/svelte/tests/runtime-runes/samples/destructure-derived-event/_config.js index 6ad462cddb..187cc4faba 100644 --- a/packages/svelte/tests/runtime-runes/samples/destructure-derived-event/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/destructure-derived-event/_config.js @@ -1,9 +1,11 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ - async test({ assert, target, logs }) { + test({ assert, target, logs }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.deepEqual(logs, ['works!']); } diff --git a/packages/svelte/tests/runtime-runes/samples/each-mutation/_config.js b/packages/svelte/tests/runtime-runes/samples/each-mutation/_config.js index 0dac8c623b..81920136d8 100644 --- a/packages/svelte/tests/runtime-runes/samples/each-mutation/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/each-mutation/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -7,18 +8,18 @@ export default test({ `, - async test({ assert, target }) { + test({ assert, target }) { const [btn1, btn2, btn3] = target.querySelectorAll('button'); // ensure each click runs in its own rerender task - await btn1.click(); - await Promise.resolve(); + btn1.click(); + flushSync(); - await btn2.click(); - await Promise.resolve(); + btn2.click(); + flushSync(); - await btn3.click(); - await Promise.resolve(); + btn3.click(); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-runes/samples/effect/_config.js b/packages/svelte/tests/runtime-runes/samples/effect/_config.js index 384356dc07..c836a2e593 100644 --- a/packages/svelte/tests/runtime-runes/samples/effect/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/effect/_config.js @@ -1,11 +1,12 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ - async test({ assert, target, logs }) { + test({ assert, target, logs }) { const [b1, b2] = target.querySelectorAll('button'); b1.click(); b2.click(); - await Promise.resolve(); + flushSync(); assert.deepEqual(logs, [0, 1]); } diff --git a/packages/svelte/tests/runtime-runes/samples/effects-order/_config.js b/packages/svelte/tests/runtime-runes/samples/effects-order/_config.js index e4ca2d72a6..42d82f4973 100644 --- a/packages/svelte/tests/runtime-runes/samples/effects-order/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/effects-order/_config.js @@ -1,11 +1,12 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ - async test({ assert, target, logs }) { + test({ assert, target, logs }) { const [b1, b2] = target.querySelectorAll('button'); b1.click(); b2.click(); - await Promise.resolve(); + flushSync(); assert.deepEqual(logs, ['first0', 'second0', 'first1', 'second1']); } diff --git a/packages/svelte/tests/runtime-runes/samples/event-arguments-2/_config.js b/packages/svelte/tests/runtime-runes/samples/event-arguments-2/_config.js index f2e6c67f8a..4af1ce0070 100644 --- a/packages/svelte/tests/runtime-runes/samples/event-arguments-2/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/event-arguments-2/_config.js @@ -1,13 +1,14 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ``, - async test({ assert, target }) { + test({ assert, target }) { const [b1] = target.querySelectorAll('button'); b1?.click(); - await Promise.resolve(); + flushSync(); assert.htmlEqual(target.innerHTML, ''); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/event-arguments/_config.js b/packages/svelte/tests/runtime-runes/samples/event-arguments/_config.js index f2e6c67f8a..4af1ce0070 100644 --- a/packages/svelte/tests/runtime-runes/samples/event-arguments/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/event-arguments/_config.js @@ -1,13 +1,14 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ``, - async test({ assert, target }) { + test({ assert, target }) { const [b1] = target.querySelectorAll('button'); b1?.click(); - await Promise.resolve(); + flushSync(); assert.htmlEqual(target.innerHTML, ''); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/event-attribute-after-binding/_config.js b/packages/svelte/tests/runtime-runes/samples/event-attribute-after-binding/_config.js index e5ec3698e5..b141e87c9d 100644 --- a/packages/svelte/tests/runtime-runes/samples/event-attribute-after-binding/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/event-attribute-after-binding/_config.js @@ -1,18 +1,21 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ - async test({ assert, target }) { + test({ assert, target }) { const [i1, i2] = target.querySelectorAll('input'); i1?.click(); - await Promise.resolve(); + flushSync(); + assert.htmlEqual( target.innerHTML, 'true true false false ' ); i2?.click(); - await Promise.resolve(); + flushSync(); + assert.htmlEqual( target.innerHTML, 'true true true true ' diff --git a/packages/svelte/tests/runtime-runes/samples/event-attribute-after-spread/_config.js b/packages/svelte/tests/runtime-runes/samples/event-attribute-after-spread/_config.js index 09975947e6..f520d92e8a 100644 --- a/packages/svelte/tests/runtime-runes/samples/event-attribute-after-spread/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/event-attribute-after-spread/_config.js @@ -1,12 +1,12 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ - async test({ assert, target }) { + test({ assert, target }) { const input = target.querySelector('input'); input?.dispatchEvent(new Event('input', { bubbles: true })); - - await Promise.resolve(); + flushSync(); assert.htmlEqual(target.innerHTML, 'true '); } diff --git a/packages/svelte/tests/runtime-runes/samples/event-attribute-capture/_config.js b/packages/svelte/tests/runtime-runes/samples/event-attribute-capture/_config.js index a0ab696532..4ce0c516ed 100644 --- a/packages/svelte/tests/runtime-runes/samples/event-attribute-capture/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/event-attribute-capture/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -8,11 +9,11 @@ export default test({ `, - async test({ assert, target }) { + test({ assert, target }) { const button = target.querySelector('button'); button?.click(); - await Promise.resolve(); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-runes/samples/event-attribute-spread-capture/_config.js b/packages/svelte/tests/runtime-runes/samples/event-attribute-spread-capture/_config.js index a0ab696532..4ce0c516ed 100644 --- a/packages/svelte/tests/runtime-runes/samples/event-attribute-spread-capture/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/event-attribute-spread-capture/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -8,11 +9,11 @@ export default test({ `, - async test({ assert, target }) { + test({ assert, target }) { const button = target.querySelector('button'); button?.click(); - await Promise.resolve(); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-runes/samples/event-attribute-window/_config.js b/packages/svelte/tests/runtime-runes/samples/event-attribute-window/_config.js index 1efebf69b7..970064516c 100644 --- a/packages/svelte/tests/runtime-runes/samples/event-attribute-window/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/event-attribute-window/_config.js @@ -1,11 +1,12 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: `

    0

    `, - async test({ assert, target }) { + test({ assert, target }) { target.click(); - await Promise.resolve(); + flushSync(); assert.htmlEqual(target.innerHTML, '

    1

    '); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/event-exported/_config.js b/packages/svelte/tests/runtime-runes/samples/event-exported/_config.js index 6dd1f8181e..e8eedc2e96 100644 --- a/packages/svelte/tests/runtime-runes/samples/event-exported/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/event-exported/_config.js @@ -1,17 +1,18 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ mode: ['client'], - async test({ assert, target }) { + test({ assert, target }) { const [b1, b2] = target.querySelectorAll('button'); b1?.click(); - await Promise.resolve(); + flushSync(); assert.htmlEqual(target.innerHTML, ''); b2?.click(); - await Promise.resolve(); + flushSync(); assert.htmlEqual(target.innerHTML, ''); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/event-listener-spread/_config.js b/packages/svelte/tests/runtime-runes/samples/event-listener-spread/_config.js index 43084e6809..26e442228b 100644 --- a/packages/svelte/tests/runtime-runes/samples/event-listener-spread/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/event-listener-spread/_config.js @@ -1,13 +1,14 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ``, - async test({ assert, target }) { + test({ assert, target }) { const button = target.querySelector('button'); button?.click(); - await Promise.resolve(); + flushSync(); assert.htmlEqual(target.innerHTML, ''); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/event-used-in-component-and-element/_config.js b/packages/svelte/tests/runtime-runes/samples/event-used-in-component-and-element/_config.js index 6dd1f8181e..e8eedc2e96 100644 --- a/packages/svelte/tests/runtime-runes/samples/event-used-in-component-and-element/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/event-used-in-component-and-element/_config.js @@ -1,17 +1,18 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ mode: ['client'], - async test({ assert, target }) { + test({ assert, target }) { const [b1, b2] = target.querySelectorAll('button'); b1?.click(); - await Promise.resolve(); + flushSync(); assert.htmlEqual(target.innerHTML, ''); b2?.click(); - await Promise.resolve(); + flushSync(); assert.htmlEqual(target.innerHTML, ''); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/exports-1/_config.js b/packages/svelte/tests/runtime-runes/samples/exports-1/_config.js index 0e447e7055..96323bd0c6 100644 --- a/packages/svelte/tests/runtime-runes/samples/exports-1/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/exports-1/_config.js @@ -1,7 +1,8 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ - async test({ assert, target, component }) { + test({ assert, target, component }) { assert.htmlEqual( target.innerHTML, '

    clicks: 0

    ' @@ -9,21 +10,21 @@ export default test({ const [incrementButton, decrementButton, doubleButton] = target.querySelectorAll('button'); incrementButton?.click(); - await Promise.resolve(); + flushSync(); assert.htmlEqual( target.innerHTML, '

    clicks: 1

    ' ); doubleButton?.click(); - await Promise.resolve(); + flushSync(); assert.htmlEqual( target.innerHTML, '

    clicks: 2

    ' ); decrementButton?.click(); - await Promise.resolve(); + flushSync(); assert.htmlEqual( target.innerHTML, '

    clicks: 1

    ' diff --git a/packages/svelte/tests/runtime-runes/samples/exports-2/_config.js b/packages/svelte/tests/runtime-runes/samples/exports-2/_config.js index 0e447e7055..96323bd0c6 100644 --- a/packages/svelte/tests/runtime-runes/samples/exports-2/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/exports-2/_config.js @@ -1,7 +1,8 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ - async test({ assert, target, component }) { + test({ assert, target, component }) { assert.htmlEqual( target.innerHTML, '

    clicks: 0

    ' @@ -9,21 +10,21 @@ export default test({ const [incrementButton, decrementButton, doubleButton] = target.querySelectorAll('button'); incrementButton?.click(); - await Promise.resolve(); + flushSync(); assert.htmlEqual( target.innerHTML, '

    clicks: 1

    ' ); doubleButton?.click(); - await Promise.resolve(); + flushSync(); assert.htmlEqual( target.innerHTML, '

    clicks: 2

    ' ); decrementButton?.click(); - await Promise.resolve(); + flushSync(); assert.htmlEqual( target.innerHTML, '

    clicks: 1

    ' diff --git a/packages/svelte/tests/runtime-runes/samples/exports-3/_config.js b/packages/svelte/tests/runtime-runes/samples/exports-3/_config.js index 6eb043db3d..cf22671d9f 100644 --- a/packages/svelte/tests/runtime-runes/samples/exports-3/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/exports-3/_config.js @@ -1,12 +1,13 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ - async test({ assert, target }) { + test({ assert, target }) { assert.htmlEqual(target.innerHTML, `0 0 `); const [btn] = target.querySelectorAll('button'); btn?.click(); - await Promise.resolve(); + flushSync(); assert.htmlEqual(target.innerHTML, '1 2 '); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/inspect-derived/_config.js b/packages/svelte/tests/runtime-runes/samples/inspect-derived/_config.js index a8c47665b5..f115c15dfe 100644 --- a/packages/svelte/tests/runtime-runes/samples/inspect-derived/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/inspect-derived/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; /** @@ -17,14 +18,14 @@ export default test({ }; }, - async test({ assert, target }) { + test({ assert, target }) { const button = target.querySelector('button'); button?.click(); - await Promise.resolve(); + flushSync(); button?.click(); - await Promise.resolve(); + flushSync(); assert.deepEqual(log, ['init', 'X', 'update', 'XX', 'update', 'XXX']); } diff --git a/packages/svelte/tests/runtime-runes/samples/invalidate-effect/_config.js b/packages/svelte/tests/runtime-runes/samples/invalidate-effect/_config.js index b4ba660ad4..1562c8f88c 100644 --- a/packages/svelte/tests/runtime-runes/samples/invalidate-effect/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/invalidate-effect/_config.js @@ -1,12 +1,13 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ - async test({ assert, target }) { + test({ assert, target }) { assert.htmlEqual(target.innerHTML, 'a\n `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const [multiplier, count] = target.querySelectorAll('button'); const clickEvent = new window.Event('click', { bubbles: true }); const span = /** @type {HTMLSpanElement} */ (target.querySelector('span')); @@ -19,16 +20,20 @@ export default test({ const expect_span_to_be = (count, multiplier) => assert.htmlEqual(span.innerHTML, `${count} * ${multiplier} = ${count * multiplier}`); - await count.dispatchEvent(clickEvent); + count.dispatchEvent(clickEvent); + flushSync(); expect_span_to_be(1, 2); - await multiplier.dispatchEvent(clickEvent); + multiplier.dispatchEvent(clickEvent); + flushSync(); expect_span_to_be(1, 3); - await count.dispatchEvent(clickEvent); + count.dispatchEvent(clickEvent); + flushSync(); expect_span_to_be(2, 3); - await multiplier.dispatchEvent(clickEvent); + multiplier.dispatchEvent(clickEvent); + flushSync(); expect_span_to_be(2, 4); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/mutation/_config.js b/packages/svelte/tests/runtime-runes/samples/mutation/_config.js index af8ead3929..9c666942f0 100644 --- a/packages/svelte/tests/runtime-runes/samples/mutation/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/mutation/_config.js @@ -1,16 +1,19 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ``, - async test({ assert, target, window }) { + test({ assert, target, window }) { const btn = target.querySelector('button'); const clickEvent = new window.Event('click', { bubbles: true }); - await btn?.dispatchEvent(clickEvent); + btn?.dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual(target.innerHTML, ``); - await btn?.dispatchEvent(clickEvent); + btn?.dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual(target.innerHTML, ``); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/nested-destructure-assignment/_config.js b/packages/svelte/tests/runtime-runes/samples/nested-destructure-assignment/_config.js index 905e8b5d29..497939900e 100644 --- a/packages/svelte/tests/runtime-runes/samples/nested-destructure-assignment/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/nested-destructure-assignment/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -14,10 +15,11 @@ export default test({

    16

    `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const button = target.querySelector('button'); const clickEvent = new window.Event('click', { bubbles: true }); - await button?.dispatchEvent(clickEvent); + button?.dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-runes/samples/not-actual-runes/_config.js b/packages/svelte/tests/runtime-runes/samples/not-actual-runes/_config.js index 8d4d781076..83cd12f640 100644 --- a/packages/svelte/tests/runtime-runes/samples/not-actual-runes/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/not-actual-runes/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -6,9 +7,10 @@ export default test({ `, - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-runes/samples/pre-effect/_config.js b/packages/svelte/tests/runtime-runes/samples/pre-effect/_config.js index 384356dc07..c836a2e593 100644 --- a/packages/svelte/tests/runtime-runes/samples/pre-effect/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/pre-effect/_config.js @@ -1,11 +1,12 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ - async test({ assert, target, logs }) { + test({ assert, target, logs }) { const [b1, b2] = target.querySelectorAll('button'); b1.click(); b2.click(); - await Promise.resolve(); + flushSync(); assert.deepEqual(logs, [0, 1]); } diff --git a/packages/svelte/tests/runtime-runes/samples/props-alias/_config.js b/packages/svelte/tests/runtime-runes/samples/props-alias/_config.js index 0fc80f0df5..a0ab706edc 100644 --- a/packages/svelte/tests/runtime-runes/samples/props-alias/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/props-alias/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -9,14 +10,14 @@ export default test({ `, - async test({ assert, target, component }) { + test({ assert, target, component }) { const [b1, b2, b3, b4] = target.querySelectorAll('button'); b1.click(); b2.click(); b3.click(); b4.click(); - await Promise.resolve(); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-runes/samples/props-bound-fallback/_config.js b/packages/svelte/tests/runtime-runes/samples/props-bound-fallback/_config.js index 3839cb0250..d04d8884ca 100644 --- a/packages/svelte/tests/runtime-runes/samples/props-bound-fallback/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/props-bound-fallback/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; // Tests that fallback value is propagated up correctly when the inner component @@ -6,10 +7,11 @@ export default test({ accessors: false, // so that prop actually becomes $.prop and not $.prop_source html: `0`, - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, `1`); }, diff --git a/packages/svelte/tests/runtime-runes/samples/props-bound-to-normal/_config.js b/packages/svelte/tests/runtime-runes/samples/props-bound-to-normal/_config.js index aaf8f3b193..39eadeac90 100644 --- a/packages/svelte/tests/runtime-runes/samples/props-bound-to-normal/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/props-bound-to-normal/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -6,16 +7,19 @@ export default test({ async test({ assert, target }) { const [btn1, btn2, btn3] = target.querySelectorAll('button'); - await btn1.click(); - await Promise.resolve(); + btn1.click(); + flushSync(); + assert.htmlEqual(target.innerHTML, ``); - await btn3.click(); - await Promise.resolve(); + btn3.click(); + flushSync(); + assert.htmlEqual(target.innerHTML, ``); - await btn2.click(); - await Promise.resolve(); + btn2.click(); + flushSync(); + assert.htmlEqual(target.innerHTML, ``); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/props-bound/_config.js b/packages/svelte/tests/runtime-runes/samples/props-bound/_config.js index 0fc80f0df5..a0ab706edc 100644 --- a/packages/svelte/tests/runtime-runes/samples/props-bound/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/props-bound/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -9,14 +10,14 @@ export default test({ `, - async test({ assert, target, component }) { + test({ assert, target, component }) { const [b1, b2, b3, b4] = target.querySelectorAll('button'); b1.click(); b2.click(); b3.click(); b4.click(); - await Promise.resolve(); + flushSync(); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/tests/runtime-runes/samples/props-default-value-behavior/_config.js b/packages/svelte/tests/runtime-runes/samples/props-default-value-behavior/_config.js index 47f48b5c20..0b337d7bcb 100644 --- a/packages/svelte/tests/runtime-runes/samples/props-default-value-behavior/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/props-default-value-behavior/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; // Tests that default values apply every time and that they propagate back correctly for bindings @@ -59,7 +60,7 @@ export default test({ `, - async test({ assert, target }) { + test({ assert, target }) { const [ btn_5_1, btn_undefined_1, @@ -77,7 +78,8 @@ export default test({ btn_undefined_2.click(); btn_undefined_3.click(); btn_undefined_4.click(); - await Promise.resolve(); + flushSync(); + assert.htmlEqual( target.innerHTML, ` @@ -140,7 +142,8 @@ export default test({ btn_5_2.click(); btn_5_3.click(); btn_5_4.click(); - await Promise.resolve(); + flushSync(); + assert.htmlEqual( target.innerHTML, ` @@ -199,8 +202,9 @@ export default test({ ` ); - await btn_all_10.click(); - await Promise.resolve(); + btn_all_10.click(); + flushSync(); + assert.htmlEqual( target.innerHTML, ` @@ -259,8 +263,9 @@ export default test({ ` ); - await btn_all_undefined.click(); - await Promise.resolve(); + btn_all_undefined.click(); + flushSync(); + assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-runes/samples/props-spread-fallback/_config.js b/packages/svelte/tests/runtime-runes/samples/props-spread-fallback/_config.js index 40ad73aa87..2fc8dd0fb9 100644 --- a/packages/svelte/tests/runtime-runes/samples/props-spread-fallback/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/props-spread-fallback/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; // Tests that fallback values are kept as long as the prop is not defined in the case of a spread @@ -9,10 +10,11 @@ export default test({

    true fallback

    `, - async test({ assert, target }) { + test({ assert, target }) { const [propA, propB] = target.querySelectorAll('button'); - await propA.click(); + propA.click(); + flushSync(); assert.htmlEqual( target.innerHTML, ` @@ -22,7 +24,8 @@ export default test({ ` ); - await propB.click(); + propB.click(); + flushSync(); assert.htmlEqual( target.innerHTML, ` @@ -32,7 +35,8 @@ export default test({ ` ); - await propA.click(); + propA.click(); + flushSync(); assert.htmlEqual( target.innerHTML, ` @@ -42,7 +46,8 @@ export default test({ ` ); - await propB.click(); + propB.click(); + flushSync(); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-runes/samples/readonly-state-replace/_config.js b/packages/svelte/tests/runtime-runes/samples/readonly-state-replace/_config.js index 41d9e4061a..38163eb526 100644 --- a/packages/svelte/tests/runtime-runes/samples/readonly-state-replace/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/readonly-state-replace/_config.js @@ -1,10 +1,11 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ - async test({ assert, target }) { + test({ assert, target }) { const [b1] = target.querySelectorAll('button'); b1.click(); - await Promise.resolve(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); } diff --git a/packages/svelte/tests/runtime-runes/samples/readonly-state/_config.js b/packages/svelte/tests/runtime-runes/samples/readonly-state/_config.js index 384356dc07..c836a2e593 100644 --- a/packages/svelte/tests/runtime-runes/samples/readonly-state/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/readonly-state/_config.js @@ -1,11 +1,12 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ - async test({ assert, target, logs }) { + test({ assert, target, logs }) { const [b1, b2] = target.querySelectorAll('button'); b1.click(); b2.click(); - await Promise.resolve(); + flushSync(); assert.deepEqual(logs, [0, 1]); } diff --git a/packages/svelte/tests/runtime-runes/samples/runes-in-module-context/_config.js b/packages/svelte/tests/runtime-runes/samples/runes-in-module-context/_config.js index 09bd0a9aad..2ce8bf7e3f 100644 --- a/packages/svelte/tests/runtime-runes/samples/runes-in-module-context/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/runes-in-module-context/_config.js @@ -1,12 +1,14 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ``, - async test({ assert, target, window }) { + test({ assert, target, window }) { const btn = target.querySelector('button'); const clickEvent = new window.Event('click', { bubbles: true }); - await btn?.dispatchEvent(clickEvent); + btn?.dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual(target.innerHTML, ``); } diff --git a/packages/svelte/tests/runtime-runes/samples/snippet-argument-destructured-multiple/_config.js b/packages/svelte/tests/runtime-runes/samples/snippet-argument-destructured-multiple/_config.js index e756ff5cc2..ccd32ffe8c 100644 --- a/packages/svelte/tests/runtime-runes/samples/snippet-argument-destructured-multiple/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/snippet-argument-destructured-multiple/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -6,10 +7,11 @@ export default test({ `, - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-runes/samples/snippet-argument-destructured/_config.js b/packages/svelte/tests/runtime-runes/samples/snippet-argument-destructured/_config.js index b7b3133c30..5638cb79ca 100644 --- a/packages/svelte/tests/runtime-runes/samples/snippet-argument-destructured/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/snippet-argument-destructured/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -6,10 +7,11 @@ export default test({ `, - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-runes/samples/snippet-argument-multiple/_config.js b/packages/svelte/tests/runtime-runes/samples/snippet-argument-multiple/_config.js index e756ff5cc2..ccd32ffe8c 100644 --- a/packages/svelte/tests/runtime-runes/samples/snippet-argument-multiple/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/snippet-argument-multiple/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -6,10 +7,11 @@ export default test({ `, - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-runes/samples/snippet-argument/_config.js b/packages/svelte/tests/runtime-runes/samples/snippet-argument/_config.js index b7b3133c30..5638cb79ca 100644 --- a/packages/svelte/tests/runtime-runes/samples/snippet-argument/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/snippet-argument/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -6,10 +7,11 @@ export default test({ `, - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-runes/samples/snippet-complicated-defaults/_config.js b/packages/svelte/tests/runtime-runes/samples/snippet-complicated-defaults/_config.js index 4a403b3281..9b21023bf0 100644 --- a/packages/svelte/tests/runtime-runes/samples/snippet-complicated-defaults/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/snippet-complicated-defaults/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -14,17 +15,22 @@ export default test({ assert.htmlEqual(count?.innerHTML ?? '', 'Count: 0'); assert.htmlEqual(fallback_count?.innerHTML ?? '', 'Fallback count: 0'); - await increment?.click(); + increment?.click(); + flushSync(); assert.htmlEqual(count?.innerHTML ?? '', 'Count: 1'); assert.htmlEqual(fallback_count?.innerHTML ?? '', 'Fallback count: 0'); - await change_ref?.click(); - await increment?.click(); + change_ref?.click(); + flushSync(); + increment?.click(); + flushSync(); assert.htmlEqual(count?.innerHTML ?? '', 'Count: 1'); assert.htmlEqual(fallback_count?.innerHTML ?? '', 'Fallback count: 1'); - await change_ref?.click(); - await increment?.click(); + change_ref?.click(); + flushSync(); + increment?.click(); + flushSync(); assert.htmlEqual(count?.innerHTML ?? '', 'Count: 2'); assert.htmlEqual(fallback_count?.innerHTML ?? '', 'Fallback count: 1'); } diff --git a/packages/svelte/tests/runtime-runes/samples/snippet-const/_config.js b/packages/svelte/tests/runtime-runes/samples/snippet-const/_config.js index 8867993dbb..d0c32d4097 100644 --- a/packages/svelte/tests/runtime-runes/samples/snippet-const/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/snippet-const/_config.js @@ -1,16 +1,19 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ``, - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); assert.htmlEqual(target.innerHTML, ''); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ''); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ''); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/snippet-expressions/_config.js b/packages/svelte/tests/runtime-runes/samples/snippet-expressions/_config.js index 99568fe493..e411862c8f 100644 --- a/packages/svelte/tests/runtime-runes/samples/snippet-expressions/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/snippet-expressions/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -20,9 +21,10 @@ export default test({ `, - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-runes/samples/snippet-optional-arguments/_config.js b/packages/svelte/tests/runtime-runes/samples/snippet-optional-arguments/_config.js index 203cb1c432..6007d56cfe 100644 --- a/packages/svelte/tests/runtime-runes/samples/snippet-optional-arguments/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/snippet-optional-arguments/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -8,7 +9,8 @@ export default test({ assert.htmlEqual(count?.innerHTML ?? '', '0'); assert.htmlEqual(fallback?.innerHTML ?? '', 'fallback'); - await count?.click(); + count?.click(); + flushSync(); assert.htmlEqual(count?.innerHTML ?? '', '1'); assert.htmlEqual(fallback?.innerHTML ?? '', 'fallback'); } diff --git a/packages/svelte/tests/runtime-runes/samples/snippet-prop-explicit/_config.js b/packages/svelte/tests/runtime-runes/samples/snippet-prop-explicit/_config.js index b7b3133c30..5638cb79ca 100644 --- a/packages/svelte/tests/runtime-runes/samples/snippet-prop-explicit/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/snippet-prop-explicit/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -6,10 +7,11 @@ export default test({ `, - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-runes/samples/snippet-prop-implicit/_config.js b/packages/svelte/tests/runtime-runes/samples/snippet-prop-implicit/_config.js index b7b3133c30..5638cb79ca 100644 --- a/packages/svelte/tests/runtime-runes/samples/snippet-prop-implicit/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/snippet-prop-implicit/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -6,10 +7,11 @@ export default test({ `, - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-runes/samples/snippet-prop-reactive/_config.js b/packages/svelte/tests/runtime-runes/samples/snippet-prop-reactive/_config.js index 89d4713cc0..fb5ee6b14b 100644 --- a/packages/svelte/tests/runtime-runes/samples/snippet-prop-reactive/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/snippet-prop-reactive/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -6,9 +7,10 @@ export default test({ `, - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-runes/samples/snippet-reactive/_config.js b/packages/svelte/tests/runtime-runes/samples/snippet-reactive/_config.js index 89d4713cc0..fb5ee6b14b 100644 --- a/packages/svelte/tests/runtime-runes/samples/snippet-reactive/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/snippet-reactive/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -6,9 +7,10 @@ export default test({ `, - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-runes/samples/state-snapshot/_config.js b/packages/svelte/tests/runtime-runes/samples/state-snapshot/_config.js index 1088a5189c..bcbb4819df 100644 --- a/packages/svelte/tests/runtime-runes/samples/state-snapshot/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/state-snapshot/_config.js @@ -1,12 +1,14 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: `[{"a":0}] `, - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, `[{"a":0}] `); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/state-space/_config.js b/packages/svelte/tests/runtime-runes/samples/state-space/_config.js index 2f7c0d88ac..2850ae43ef 100644 --- a/packages/svelte/tests/runtime-runes/samples/state-space/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/state-space/_config.js @@ -1,12 +1,14 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: `
    `, - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual( target.innerHTML, `
    updated
    ` diff --git a/packages/svelte/tests/runtime-runes/samples/state-undefined/_config.js b/packages/svelte/tests/runtime-runes/samples/state-undefined/_config.js index e012718f83..624096fae9 100644 --- a/packages/svelte/tests/runtime-runes/samples/state-undefined/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/state-undefined/_config.js @@ -1,12 +1,15 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ``, - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); + assert.htmlEqual(target.innerHTML, ``); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/store-subscribe-effect-init/_config.js b/packages/svelte/tests/runtime-runes/samples/store-subscribe-effect-init/_config.js index 5672e0806d..4983b8dba9 100644 --- a/packages/svelte/tests/runtime-runes/samples/store-subscribe-effect-init/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/store-subscribe-effect-init/_config.js @@ -1,17 +1,20 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: ``, - async test({ assert, target, logs }) { + test({ assert, target, logs }) { const btn = target.querySelector('button'); assert.deepEqual(logs, [1]); - await btn?.click(); + btn?.click(); + flushSync(); assert.deepEqual(logs, [1, 2]); - await btn?.click(); + btn?.click(); + flushSync(); assert.deepEqual(logs, [1, 2, 3]); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/typescript/_config.js b/packages/svelte/tests/runtime-runes/samples/typescript/_config.js index 2115ae298a..7c9552b7b2 100644 --- a/packages/svelte/tests/runtime-runes/samples/typescript/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/typescript/_config.js @@ -1,11 +1,13 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ html: '', - async test({ assert, target }) { + test({ assert, target }) { const btn = target.querySelector('button'); - await btn?.click(); + btn?.click(); + flushSync(); assert.htmlEqual(target.innerHTML, ``); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/untracked/_config.js b/packages/svelte/tests/runtime-runes/samples/untracked/_config.js index c3a3f87c5c..f4cde486ec 100644 --- a/packages/svelte/tests/runtime-runes/samples/untracked/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/untracked/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -6,12 +7,13 @@ export default test({ `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const [b1, b2] = target.querySelectorAll('button'); b1.click(); b2.click(); - await Promise.resolve(); + flushSync(); + assert.htmlEqual( target.innerHTML, ` @@ -21,7 +23,8 @@ export default test({ ); b1.click(); - await Promise.resolve(); + flushSync(); + assert.htmlEqual( target.innerHTML, ` @@ -31,7 +34,8 @@ export default test({ ); b2.click(); - await Promise.resolve(); + flushSync(); + assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-runes/samples/wrapped-$state-2/_config.js b/packages/svelte/tests/runtime-runes/samples/wrapped-$state-2/_config.js index 0f64191847..95668cc0b5 100644 --- a/packages/svelte/tests/runtime-runes/samples/wrapped-$state-2/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/wrapped-$state-2/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -5,9 +6,10 @@ export default test({ `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const clickEvent = new window.Event('click', { bubbles: true }); - await target.querySelector('button')?.dispatchEvent(clickEvent); + target.querySelector('button')?.dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/tests/runtime-runes/samples/wrapped-$state/_config.js b/packages/svelte/tests/runtime-runes/samples/wrapped-$state/_config.js index 5c2bf9e6b4..7238fedca7 100644 --- a/packages/svelte/tests/runtime-runes/samples/wrapped-$state/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/wrapped-$state/_config.js @@ -1,3 +1,4 @@ +import { flushSync } from 'svelte'; import { test } from '../../test'; export default test({ @@ -6,10 +7,11 @@ export default test({

    x

    `, - async test({ assert, target, window }) { + test({ assert, target, window }) { const clickEvent = new window.Event('click', { bubbles: true }); - await target.querySelector('button')?.dispatchEvent(clickEvent); + target.querySelector('button')?.dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual( target.innerHTML, ` @@ -20,7 +22,8 @@ export default test({ ` ); - await target.querySelectorAll('button')[1].dispatchEvent(clickEvent); + target.querySelectorAll('button')[1].dispatchEvent(clickEvent); + flushSync(); assert.htmlEqual( target.innerHTML, `
    (index){column}
    {key} + {#if typeof row.key === 'string'} + {row.key} {:else} - + {#if typeof value === 'string'} + {value} + {:else} + + {/if} +