Svelte Storybook Mock
$ npx claude-code-templates@latest --command="svelte/svelte-storybook-mock" --yesRequires Claude Code. The command adds this command to your project's .claudedirectory — nothing runs on ToolZip's servers.
What's inside this command
Component source
/svelte:storybook-mock
Mock SvelteKit modules and functionality in Storybook stories for isolated component development.
Instructions
You are acting as the Svelte Storybook Specialist Agent focused on mocking SvelteKit modules. When setting up mocks:
- Module Mocking Overview:
Fully Supported:
- $app/environment - Browser and version info
- $app/paths - Base paths configuration
- $lib - Library imports
- @sveltejs/kit/* - Kit utilities
Experimental (Requires Mocking):
- $app/stores - Page, navigating, updated stores
- $app/navigation - Navigation functions
- $app/forms - Form enhancement
Not Supported:
- $env/dynamic/private - Server-only
- $env/static/private - Server-only
- $service-worker - Service worker context
- Store Mocking:
export const Default = {
parameters: {
sveltekit_experimental: {
stores: {
// Page store
page: {
url: new URL('https://example.com/products/123'),
params: { id: '123' },
route: {
id: '/products/[id]'
},
status: 200,
error: null,
data: {
product: {
id: '123',
name: 'Sample Product',
price: 99.99
}
},
form: null
},
// Navigating store
navigating: {
from: {
params: { id: '122' },
route: { id: '/products/[id]' },
url: new URL('https://example.com/products/122')
},
to: {
params: { id: '123' },
route: { id: '/products/[id]' },
url: new URL('https://example.com/products/123')
},
type: 'link',
delta: 1
},
// Updated store
updated: true
}
}
}
};
- Navigation Mocking:
parameters: {
sveltekit_experimental: {
navigation: {
goto: (url, options) => {
console.log('Navigating to:', url);
action('goto')(url, options);
},
pushState: (url, state) => {
console.log('Push state:', url, state);
action('pushState')(url, state);
},
replaceState: (url, state) => {
console.log('Replace state:', url, state);
action('replaceState')(url, state);
},
invalidate: (url) => {
console.log('Invalidate:', url);
action('invalidate')(url);
},
invalidateAll: () => {
console.log('Invalidate all');
action('invalidateAll')();
},
afterNavigate: {
from: null,
to: { url: new URL('https://example.com') },
type: 'enter'
}
}
}
}
- Form Enhancement Mocking:
parameters: {
sveltekit_experimental: {
forms: {
enhance: (form) => {
console.log('Form enhanced:', form);
// Return cleanup function
return {
destroy() {
console.log('Form enhancement cleaned up');
}
};
}
}
}
}
- Link Handling:
parameters: {
sveltekit_experimental: {
hrefs: {
// Exact match
'/products': (to, event) => {
console.log('Products link clicked');
event.preventDefault();
},
// Regex pattern
'/product/.*': {
callback: (to, event) => {
console.log('Product detail:', to);
},
asRegex: true
},
// API routes
'/api/.*': {
callback: (to, event) => {
event.preventDefault();
console.log('API call intercepted:', to);
},
asRegex: true
}
}
}
}
- Complex Mocking Scenarios:
Auth State:
const mockAuthenticatedUser = {
parameters: {
sveltekit_experimental: {
stores: {
page: {
data: {
user: {
id: '123',
email: 'user@example.com',
role: 'admin'
},
session: {
token: 'mock-jwt-token',
expiresAt: '2024-12-31'
}
}
}
}
}
}
};
Loading States:
const mockLoadingState = {
parameters: {
sveltekit_experimental: {
stores: {
navigating: {
from: { url: new URL('https://example.com') },
to: { url: new URL('https://example.com/products') }
}
}
}
}
};
Example Usage
User: "Mock SvelteKit stores for my ProductDetail component"
Assistant will:
- Analyze component's store dependencies
- Create comprehensive store mocks
- Mock page data with product info
- Set up navigation mocks
- Configure link handling
- Add form enhancement if needed
- Create multiple story variants
- Test different states (loading, error, success)
Related Claude Code Commands
Svelte Debug
A ready-to-install Claude Code component.
Svelte Test Coverage
A ready-to-install Claude Code component.
Svelte Component
Create new Svelte components with best practices, TypeScript support, and testing
Svelte Optimize
A ready-to-install Claude Code component.
Svelte Test Setup
A ready-to-install Claude Code component.
Svelte Test
A ready-to-install Claude Code component.
Catalog data and component content are sourced from the open-source davila7/claude-code-templates project (MIT license). ToolZip curates the listing and writes original descriptions; every component links back to its original source. Claude Code is a product of Anthropic. ToolZip is an independent catalog and is not affiliated with or endorsed by Anthropic.