diff options
| author | Owen Jacobson <owen@grimoire.ca> | 2025-02-15 15:17:03 -0500 |
|---|---|---|
| committer | Owen Jacobson <owen@grimoire.ca> | 2025-02-21 17:49:38 -0500 |
| commit | fc0f1654a56d2247728a766f43e72ff169704888 (patch) | |
| tree | 945f44c9a90bf51de20c61a5a8c5ed82c2c05009 /vite.config.js | |
| parent | 36cadfe00cacc6a6523f9862d3f7a08a9d0ce611 (diff) | |
Hoist global state access out of individual components.
Access to "global" (maybe "external?") state is now handled at the top level of the component hierarchy, in `+page.svelte`, `+layout.svelte`, and their associated scripts. State is otherwise passed down through props, and changes are passed up through callbacks.
This is - hopefully - groundwork for refactoring state management a bit. I wanted to move access to state out to a smaller number of places, so that I have fewer places to update to implement reconnect logic. My broader goal is to make it easier to refactor these kinds of external side effects, as well, though no such changes are in this branch.
This change also makes testing a mile easier, since tests can interact with props and callbacks instead of emulating the whole HTTP request stack and the Pilcrow API. This change removes do-very-little tests.
Diffstat (limited to 'vite.config.js')
| -rw-r--r-- | vite.config.js | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/vite.config.js b/vite.config.js index e74647a..4bd448f 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1,14 +1,16 @@ import { sveltekit } from '@sveltejs/kit/vite'; import { defineConfig } from 'vite'; import { configDefaults } from 'vitest/config' +import { svelteTesting } from '@testing-library/svelte/vite' export default defineConfig({ - plugins: [sveltekit()], + plugins: [sveltekit(), svelteTesting()], test: { // If you are testing components client-side, you need to setup a DOM environment. // If not all your files should have this environment, you can use a // `// @vitest-environment jsdom` comment at the top of the test files instead. environment: 'jsdom', + restoreMocks: true, coverage: { thresholds: { statements: 49, @@ -26,7 +28,7 @@ export default defineConfig({ }, // Tell Vitest to use the `browser` entry points in `package.json` files, // even though it's running in Node - resolve: process.env.VITEST ? { conditions: ['browser'] } : undefined, + resolve: process.env.VITEST ? { conditions: ['browser'] } : undefined, server: { fs: { allow: [ |
