@@ -35,36 +35,15 @@ describe('Vitest Browser Provider Schematic', () => {
3535 ) ;
3636 } ) ;
3737
38- it ( 'should add dependencies and update tsconfig.spec.json' , async ( ) => {
39- const options = {
40- project : 'app' ,
41- package : '@vitest/browser-playwright' ,
42- skipInstall : true ,
43- } ;
44-
45- const resultTree = await schematicRunner . runSchematic ( 'vitest-browser' , options , tree ) ;
46-
47- const packageJson = parse ( resultTree . readContent ( '/package.json' ) ) ;
48- expect ( packageJson . devDependencies [ '@vitest/browser-playwright' ] ) . toBeDefined ( ) ;
49- expect ( packageJson . devDependencies [ 'playwright' ] ) . toBeDefined ( ) ;
50-
51- const tsConfig = parse ( resultTree . readContent ( '/projects/app/tsconfig.spec.json' ) ) ;
52- expect ( tsConfig . compilerOptions . types ) . toContain ( 'vitest/globals' ) ;
53- expect ( tsConfig . compilerOptions . types ) . toContain ( '@vitest/browser-playwright' ) ;
54- expect ( tsConfig . compilerOptions . types ) . not . toContain ( 'jasmine' ) ;
55- } ) ;
56-
57- const browserProviderCases : { provider : string ; expectedBrowser : string } [ ] = [
58- { provider : '@vitest/browser-playwright' , expectedBrowser : 'chromium' } ,
59- { provider : '@vitest/browser-webdriverio' , expectedBrowser : 'chrome' } ,
60- { provider : '@vitest/browser-preview' , expectedBrowser : 'chromium' } ,
61- ] ;
62-
63- for ( const { provider, expectedBrowser } of browserProviderCases ) {
64- it ( `should add browsers option to angular.json for ${ provider } ` , async ( ) => {
38+ [
39+ { pkg : '@vitest/browser-playwright' , browser : 'chromium' , extraDeps : [ 'playwright' ] } ,
40+ { pkg : '@vitest/browser-webdriverio' , browser : 'chrome' , extraDeps : [ 'webdriverio' ] } ,
41+ { pkg : '@vitest/browser-preview' , browser : 'chromium' , extraDeps : [ ] as string [ ] } ,
42+ ] . forEach ( ( { pkg, browser, extraDeps } ) => {
43+ it ( `should add ${ browser } to browsers option in angular.json for ${ pkg } ` , async ( ) => {
6544 const options = {
6645 project : 'app' ,
67- package : provider ,
46+ package : pkg ,
6847 skipInstall : true ,
6948 } ;
7049
@@ -73,9 +52,30 @@ describe('Vitest Browser Provider Schematic', () => {
7352 const angularJson = parse ( resultTree . readContent ( '/angular.json' ) ) ;
7453 const project = angularJson . projects . app ;
7554 const targets = project . architect || project . targets ;
76- expect ( targets . test . options . browsers ) . toEqual ( [ expectedBrowser ] ) ;
55+ expect ( targets . test . options . browsers ) . toEqual ( [ browser ] ) ;
7756 } ) ;
78- }
57+
58+ it ( `should add dependencies and update tsconfig.spec.json for ${ pkg } ` , async ( ) => {
59+ const options = {
60+ project : 'app' ,
61+ package : pkg ,
62+ skipInstall : true ,
63+ } ;
64+
65+ const resultTree = await schematicRunner . runSchematic ( 'vitest-browser' , options , tree ) ;
66+
67+ const packageJson = parse ( resultTree . readContent ( '/package.json' ) ) ;
68+ expect ( packageJson . devDependencies [ pkg ] ) . toBeDefined ( ) ;
69+ for ( const dep of extraDeps ) {
70+ expect ( packageJson . devDependencies [ dep ] ) . toBeDefined ( ) ;
71+ }
72+
73+ const tsConfig = parse ( resultTree . readContent ( '/projects/app/tsconfig.spec.json' ) ) ;
74+ expect ( tsConfig . compilerOptions . types ) . toContain ( 'vitest/globals' ) ;
75+ expect ( tsConfig . compilerOptions . types ) . toContain ( pkg ) ;
76+ expect ( tsConfig . compilerOptions . types ) . not . toContain ( 'jasmine' ) ;
77+ } ) ;
78+ } ) ;
7979
8080 it ( 'should not overwrite existing browsers option in angular.json' , async ( ) => {
8181 // Set up existing browsers option
@@ -100,20 +100,6 @@ describe('Vitest Browser Provider Schematic', () => {
100100 expect ( updatedTargets . test . options . browsers ) . toEqual ( [ 'firefox' ] ) ;
101101 } ) ;
102102
103- it ( 'should add webdriverio dependency when @vitest/browser-webdriverio is used' , async ( ) => {
104- const options = {
105- project : 'app' ,
106- package : '@vitest/browser-webdriverio' ,
107- skipInstall : true ,
108- } ;
109-
110- const resultTree = await schematicRunner . runSchematic ( 'vitest-browser' , options , tree ) ;
111-
112- const packageJson = parse ( resultTree . readContent ( '/package.json' ) ) ;
113- expect ( packageJson . devDependencies [ '@vitest/browser-webdriverio' ] ) . toBeDefined ( ) ;
114- expect ( packageJson . devDependencies [ 'webdriverio' ] ) . toBeDefined ( ) ;
115- } ) ;
116-
117103 it ( 'should update tsconfig.spec.json for a library project' , async ( ) => {
118104 tree = await schematicRunner . runSchematic (
119105 'library' ,
0 commit comments