11import { dedent , defineAddon , defineAddonOptions } from '@sveltejs/cli-core' ;
2- import { array , imports , object , vite } from '@sveltejs/cli-core/js' ;
2+ import { array , imports , object , functions , vite } from '@sveltejs/cli-core/js' ;
33import { parseJson , parseScript } from '@sveltejs/cli-core/parsers' ;
44
55const options = defineAddonOptions ( )
@@ -25,11 +25,11 @@ export default defineAddon({
2525 const unitTesting = options . usages . includes ( 'unit' ) ;
2626 const componentTesting = options . usages . includes ( 'component' ) ;
2727
28- sv . devDependency ( 'vitest' , '^3.2.4 ' ) ;
28+ sv . devDependency ( 'vitest' , '^4.0.5 ' ) ;
2929
3030 if ( componentTesting ) {
31- sv . devDependency ( '@vitest/browser' , '^3.2.4 ' ) ;
32- sv . devDependency ( 'vitest-browser-svelte' , '^1.1.0 ' ) ;
31+ sv . devDependency ( '@vitest/browser-playwright ' , '^4.0.5 ' ) ;
32+ sv . devDependency ( 'vitest-browser-svelte' , '^2.0.1 ' ) ;
3333 sv . devDependency ( 'playwright' , '^1.56.1' ) ;
3434 }
3535
@@ -71,7 +71,7 @@ export default defineAddon({
7171 if ( content ) return content ;
7272
7373 return dedent `
74- import { page } from '@ vitest/browser/context ';
74+ import { page } from 'vitest/browser';
7575 import { describe, expect, it } from 'vitest';
7676 import { render } from 'vitest-browser-svelte';
7777 ${ kit ? "import Page from './+page.svelte';" : "import App from './App.svelte';" }
@@ -86,15 +86,6 @@ export default defineAddon({
8686 });
8787 ` ;
8888 } ) ;
89-
90- sv . file ( `vitest-setup-client.${ ext } ` , ( content ) => {
91- if ( content ) return content ;
92-
93- return dedent `
94- /// <reference types="@vitest/browser/matchers" />
95- /// <reference types="@vitest/browser/providers/playwright" />
96- ` ;
97- } ) ;
9889 }
9990
10091 sv . file ( files . viteConfig , ( content ) => {
@@ -104,15 +95,13 @@ export default defineAddon({
10495 extends : `./${ files . viteConfig } ` ,
10596 test : {
10697 name : 'client' ,
107- environment : 'browser' ,
10898 browser : {
10999 enabled : true ,
110- provider : 'playwright' ,
111- instances : [ { browser : 'chromium' } ]
100+ provider : functions . createCall ( { name : 'playwright' , args : [ ] } ) ,
101+ instances : [ { browser : 'chromium' , headless : true } ]
112102 } ,
113103 include : [ 'src/**/*.svelte.{test,spec}.{js,ts}' ] ,
114- exclude : [ 'src/lib/server/**' ] ,
115- setupFiles : [ `./vitest-setup-client.${ ext } ` ]
104+ exclude : [ 'src/lib/server/**' ]
116105 }
117106 } ) ;
118107
@@ -146,6 +135,8 @@ export default defineAddon({
146135 if ( unitTesting ) array . append ( workspaceArray , serverObjectExpression ) ;
147136
148137 // Manage imports
138+ if ( componentTesting )
139+ imports . addNamed ( ast , { imports : [ 'playwright' ] , from : '@vitest/browser-playwright' } ) ;
149140 const importName = 'defineConfig' ;
150141 const { statement, alias } = imports . find ( ast , { name : importName , from : 'vite' } ) ;
151142 if ( statement ) {
0 commit comments