@@ -27,12 +27,18 @@ const genFileExists = f => existsSync(join(genPath, f));
27
27
28
28
describe ( 'create-react-app' , ( ) => {
29
29
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 ) ;
31
34
expect ( stderr ) . toContain ( 'Please specify the project directory' ) ;
32
35
} ) ;
33
36
34
37
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 ) ;
36
42
37
43
// Assert for the generated files
38
44
generatedFiles . forEach ( file => expect ( genFileExists ( file ) ) . toBeTruthy ( ) ) ;
@@ -46,11 +52,14 @@ describe('create-react-app', () => {
46
52
const pkgJson = join ( genPath , 'package.json' ) ;
47
53
writeFileSync ( pkgJson , '{ "foo": "bar" }' ) ;
48
54
49
- const { stdout } = await run ( [ projectName ] , {
55
+ const { code , stdout } = await run ( [ projectName ] , {
50
56
cwd : __dirname ,
51
57
reject : false ,
52
58
} ) ;
53
59
60
+ // Assert for exit code
61
+ expect ( code ) . toBe ( 1 ) ;
62
+
54
63
// Assert for the expected message
55
64
expect ( stdout ) . toContain (
56
65
`The directory ${ projectName } contains files that could conflict`
@@ -62,18 +71,24 @@ describe('create-react-app', () => {
62
71
await mkdirp ( genPath ) ;
63
72
64
73
// 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 ) ;
66
78
67
79
// Assert for the generated files
68
80
generatedFiles . forEach ( file => expect ( genFileExists ( file ) ) . toBeTruthy ( ) ) ;
69
81
} ) ;
70
82
71
83
it ( 'uses yarn as the package manager' , async ( ) => {
72
- await run ( [ projectName ] , {
84
+ const { code } = await run ( [ projectName ] , {
73
85
cwd : __dirname ,
74
86
env : { npm_config_user_agent : 'yarn' } ,
75
87
} ) ;
76
88
89
+ // Assert for exit code
90
+ expect ( code ) . toBe ( 0 ) ;
91
+
77
92
// Assert for the generated files
78
93
const generatedFilesWithYarn = [
79
94
...generatedFiles . filter ( file => file !== 'package-lock.json' ) ,
@@ -86,10 +101,13 @@ describe('create-react-app', () => {
86
101
} ) ;
87
102
88
103
it ( 'creates a project based on the typescript template' , async ( ) => {
89
- await run ( [ projectName , '--template' , 'typescript' ] , {
104
+ const { code } = await run ( [ projectName , '--template' , 'typescript' ] , {
90
105
cwd : __dirname ,
91
106
} ) ;
92
107
108
+ // Assert for exit code
109
+ expect ( code ) . toBe ( 0 ) ;
110
+
93
111
// Assert for the generated files
94
112
[ ...generatedFiles , 'tsconfig.json' ] . forEach ( file =>
95
113
expect ( genFileExists ( file ) ) . toBeTruthy ( )
0 commit comments