@@ -27,12 +27,18 @@ const genFileExists = f => existsSync(join(genPath, f));
2727
2828describe ( 'create-react-app' , ( ) => {
2929 it ( 'asks to supply an argument if none supplied' , async ( ) => {
30- const { stderr } = await run ( [ ] , { reject : false } ) ;
30+ const { code, stderr } = await run ( [ ] , { reject : false } ) ;
31+
32+ // Assertions
33+ expect ( code ) . toBe ( 1 ) ;
3134 expect ( stderr ) . toContain ( 'Please specify the project directory' ) ;
3235 } ) ;
3336
3437 it ( 'creates a project on supplying a name as the argument' , async ( ) => {
35- await run ( [ projectName ] , { cwd : __dirname } ) ;
38+ const { code } = await run ( [ projectName ] , { cwd : __dirname } ) ;
39+
40+ // Assert for exit code
41+ expect ( code ) . toBe ( 0 ) ;
3642
3743 // Assert for the generated files
3844 generatedFiles . forEach ( file => expect ( genFileExists ( file ) ) . toBeTruthy ( ) ) ;
@@ -46,11 +52,14 @@ describe('create-react-app', () => {
4652 const pkgJson = join ( genPath , 'package.json' ) ;
4753 writeFileSync ( pkgJson , '{ "foo": "bar" }' ) ;
4854
49- const { stdout } = await run ( [ projectName ] , {
55+ const { code , stdout } = await run ( [ projectName ] , {
5056 cwd : __dirname ,
5157 reject : false ,
5258 } ) ;
5359
60+ // Assert for exit code
61+ expect ( code ) . toBe ( 1 ) ;
62+
5463 // Assert for the expected message
5564 expect ( stdout ) . toContain (
5665 `The directory ${ projectName } contains files that could conflict`
@@ -62,18 +71,24 @@ describe('create-react-app', () => {
6271 await mkdirp ( genPath ) ;
6372
6473 // Create a project in the current directory
65- await run ( [ '.' ] , { cwd : genPath } ) ;
74+ const { code } = await run ( [ '.' ] , { cwd : genPath } ) ;
75+
76+ // Assert for exit code
77+ expect ( code ) . toBe ( 0 ) ;
6678
6779 // Assert for the generated files
6880 generatedFiles . forEach ( file => expect ( genFileExists ( file ) ) . toBeTruthy ( ) ) ;
6981 } ) ;
7082
7183 it ( 'uses yarn as the package manager' , async ( ) => {
72- await run ( [ projectName ] , {
84+ const { code } = await run ( [ projectName ] , {
7385 cwd : __dirname ,
7486 env : { npm_config_user_agent : 'yarn' } ,
7587 } ) ;
7688
89+ // Assert for exit code
90+ expect ( code ) . toBe ( 0 ) ;
91+
7792 // Assert for the generated files
7893 const generatedFilesWithYarn = [
7994 ...generatedFiles . filter ( file => file !== 'package-lock.json' ) ,
@@ -86,10 +101,13 @@ describe('create-react-app', () => {
86101 } ) ;
87102
88103 it ( 'creates a project based on the typescript template' , async ( ) => {
89- await run ( [ projectName , '--template' , 'typescript' ] , {
104+ const { code } = await run ( [ projectName , '--template' , 'typescript' ] , {
90105 cwd : __dirname ,
91106 } ) ;
92107
108+ // Assert for exit code
109+ expect ( code ) . toBe ( 0 ) ;
110+
93111 // Assert for the generated files
94112 [ ...generatedFiles , 'tsconfig.json' ] . forEach ( file =>
95113 expect ( genFileExists ( file ) ) . toBeTruthy ( )
0 commit comments