Skip to content

Commit

Permalink
Added missing test.
Browse files Browse the repository at this point in the history
  • Loading branch information
Kamil Piechaczek committed Dec 3, 2018
1 parent 84f4f02 commit 636535b
Showing 1 changed file with 47 additions and 1 deletion.
48 changes: 47 additions & 1 deletion tests/commands/bootstrap.js
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ describe( 'commands/bootstrap', () => {
} );
} );

it( 'tries to install missing packages once again if git ends with unexpected error', function() {
it( 'tries to install missing packages once again if git ends with unexpected error (#1)', function() {
this.timeout( 5500 );

stubs.fs.existsSync.returns( false );
Expand Down Expand Up @@ -180,6 +180,52 @@ describe( 'commands/bootstrap', () => {
expect( response.logs.info[ 0 ] ).to.equal( 'Git clone log.' );
} );
} );

it( 'tries to install missing packages once again if git ends with unexpected error (#2)', function() {
this.timeout( 5500 );

stubs.fs.existsSync.returns( false );

stubs.exec.onFirstCall().returns( Promise.reject( [
'exec: Cloning into \'/some/path\'...',
'remote: Enumerating objects: 6, done.',
'remote: Counting objects: 100% (6/6), done.',
'remote: Compressing objects: 100% (6/6), done.',
'packet_write_wait: Connection to 000.00.000.000 port 22: Broken pipe',
'fatal: the remote end hung up unexpectedly',
'fatal: early EOF',
'fatal: index-pack failed'
].join( '\n' ) ) );

stubs.exec.onSecondCall().returns( Promise.resolve( 'Git clone log.' ) );

return bootstrapCommand.execute( data )
.then( response => {
expect( stubs.exec.calledTwice ).to.equal( true );

const firstCommand = stubs.exec.firstCall.args[ 0 ].split( ' && ' );

// Clone the repository for the first time. It failed.
expect( firstCommand[ 0 ] )
.to.equal( 'git clone --progress "git@github.com/organization/test-package.git" "packages/test-package"' );
// Change the directory to cloned package.
expect( firstCommand[ 1 ] ).to.equal( 'cd "packages/test-package"' );
// And check out to proper branch.
expect( firstCommand[ 2 ] ).to.equal( 'git checkout --quiet master' );

const secondCommand = stubs.exec.secondCall.args[ 0 ].split( ' && ' );

// Clone the repository for the second time. It succeed.
expect( secondCommand[ 0 ] )
.to.equal( 'git clone --progress "git@github.com/organization/test-package.git" "packages/test-package"' );
// Change the directory to cloned package.
expect( secondCommand[ 1 ] ).to.equal( 'cd "packages/test-package"' );
// And check out to proper branch.
expect( secondCommand[ 2 ] ).to.equal( 'git checkout --quiet master' );

expect( response.logs.info[ 0 ] ).to.equal( 'Git clone log.' );
} );
} );
} );

describe( 'afterExecute()', () => {
Expand Down

0 comments on commit 636535b

Please sign in to comment.