2 failing tests fixes (#12121)

* For testing azdata Ext

* add back skipped test

* all tests fixed on linux

* For testing azdata Ext

* fix for mac

* brew upgrade test fix

* remove temp changes

* remove Logger.log calls from test

* _ for unused parameters
This commit is contained in:
Arvind Ranasaria
2020-09-09 17:59:57 -07:00
committed by GitHub
parent dad31bc387
commit 2d29ef7eca

View File

@@ -61,7 +61,7 @@ describe('azdata', function () {
sinon.stub(utils, 'searchForCmd').returns(Promise.resolve('/path/to/azdata')); sinon.stub(utils, 'searchForCmd').returns(Promise.resolve('/path/to/azdata'));
}); });
it.skip('successful install', async function (): Promise<void> { it('successful install', async function (): Promise<void> {
switch (process.platform) { switch (process.platform) {
case 'win32': case 'win32':
await testWin32SuccessfulInstall(); await testWin32SuccessfulInstall();
@@ -119,7 +119,7 @@ describe('azdata', function () {
}); });
it.skip('unsuccessful update', async function (): Promise<void> { it('unsuccessful update', async function (): Promise<void> {
switch (process.platform) { switch (process.platform) {
case 'win32': case 'win32':
await testWin32UnsuccessfulUpdate(); await testWin32UnsuccessfulUpdate();
@@ -144,23 +144,48 @@ describe('azdata', function () {
async function testLinuxUnsuccessfulUpdate() { async function testLinuxUnsuccessfulUpdate() {
const executeSudoCommandStub = sinon.stub(childProcess, 'executeSudoCommand').rejects(); const executeSudoCommandStub = sinon.stub(childProcess, 'executeSudoCommand').rejects();
const updatePromise = azdata.checkAndUpdateAzdata(oldAzdataMock); const updateDone = await azdata.checkAndUpdateAzdata(oldAzdataMock);
await should(updatePromise).be.rejected(); should(updateDone).be.false();
should(executeSudoCommandStub.calledOnce).be.true(); should(executeSudoCommandStub.calledOnce).be.true();
} }
async function testDarwinUnsuccessfulUpdate() { async function testDarwinUnsuccessfulUpdate() {
const executeCommandStub = sinon.stub(childProcess, 'executeCommand').rejects(); const brewInfoOutput = [{
const updatePromise = azdata.checkAndUpdateAzdata(oldAzdataMock); name: 'azdata-cli',
await should(updatePromise).be.rejected(); full_name: 'microsoft/azdata-cli-release/azdata-cli',
should(executeCommandStub.calledOnce).be.true(); versions: {
'stable': '9999.999.999',
'devel': null,
'head': null,
'bottle': true
}
}];
const executeCommandStub = sinon.stub(childProcess, 'executeCommand')
.onThirdCall() //third call is brew info azdata-cli --json which needs to return json of new available azdata versions.
.callsFake(async (_command: string, _args: string[]) => {
return Promise.resolve({
stderr: '',
stdout: JSON.stringify(brewInfoOutput)
});
})
.onCall(5) //6th call is the first one to do actual update, the call number are 0 indexed
.callsFake(async (_command: string, _args: string[]) => {
return Promise.reject(new Error('not Found'));
})
.callsFake(async (_command: string, _args: string[]) => { // by default return success
return Promise.resolve({stderr: '', stdout: 'success'});
});
const updateDone = await azdata.checkAndUpdateAzdata(oldAzdataMock);
should(updateDone).be.false();
should(executeCommandStub.callCount).equal(6);
} }
async function testWin32UnsuccessfulUpdate() { async function testWin32UnsuccessfulUpdate() {
sinon.stub(HttpClient, 'downloadFile').returns(Promise.resolve(__filename)); sinon.stub(HttpClient, 'downloadFile').returns(Promise.resolve(__filename));
sinon.stub(childProcess, 'executeCommand').rejects(); const executeCommandStub = sinon.stub(childProcess, 'executeCommand').rejects();
const updatePromise = azdata.checkAndUpdateAzdata(oldAzdataMock); const updateDone = await azdata.checkAndUpdateAzdata(oldAzdataMock);
await should(updatePromise).be.rejected(); should(updateDone).be.false();
should(executeCommandStub.calledOnce).be.true();
} }
async function testLinuxSuccessfulUpdate() { async function testLinuxSuccessfulUpdate() {
@@ -217,7 +242,10 @@ async function testWin32SuccessfulUpdate() {
async function testWin32SuccessfulInstall() { async function testWin32SuccessfulInstall() {
sinon.stub(HttpClient, 'downloadFile').returns(Promise.resolve(__filename)); sinon.stub(HttpClient, 'downloadFile').returns(Promise.resolve(__filename));
const executeCommandStub = sinon.stub(childProcess, 'executeCommand') const executeCommandStub = sinon.stub(childProcess, 'executeCommand')
.onFirstCall().rejects('not Found') .onFirstCall()
.callsFake(async (_command: string, _args: string[]) => {
return Promise.reject(new Error('not Found'));
})
.callsFake(async (command: string, args: string[]) => { .callsFake(async (command: string, args: string[]) => {
should(command).be.equal('msiexec'); should(command).be.equal('msiexec');
should(args[0]).be.equal('/qn'); should(args[0]).be.equal('/qn');
@@ -231,10 +259,12 @@ async function testWin32SuccessfulInstall() {
async function testDarwinSuccessfulInstall() { async function testDarwinSuccessfulInstall() {
const executeCommandStub = sinon.stub(childProcess, 'executeCommand') const executeCommandStub = sinon.stub(childProcess, 'executeCommand')
.onFirstCall().rejects('not Found') .onFirstCall()
.callsFake(async (_command: string, _args: string[]) => { .callsFake(async (_command: string, _args: string[]) => {
//should(_command).be.equal('brew'); return Promise.reject(new Error('not Found'));
return { stdout: '0.0.0', stderr: '' }; })
.callsFake(async (_command: string, _args: string[]) => {
return Promise.resolve({ stdout: '0.0.0', stderr: '' });
}); });
await azdata.checkAndInstallAzdata(); await azdata.checkAndInstallAzdata();
should(executeCommandStub.callCount).be.equal(5); should(executeCommandStub.callCount).be.equal(5);
@@ -242,12 +272,20 @@ async function testDarwinSuccessfulInstall() {
async function testLinuxSuccessfulInstall() { async function testLinuxSuccessfulInstall() {
const executeCommandStub = sinon.stub(childProcess, 'executeCommand') const executeCommandStub = sinon.stub(childProcess, 'executeCommand')
.onFirstCall().rejects('not Found') .onFirstCall()
.returns(Promise.resolve({ stdout: '0.0.0', stderr: '' })); .callsFake(async (_command: string, _args: string[]) => {
const executeSudoCommandStub = sinon.stub(childProcess, 'executeSudoCommand').returns(Promise.resolve({ stdout: '0.0.0', stderr: '' })); return Promise.reject(new Error('not Found'));
})
.callsFake(async (_command: string, _args: string[]) => {
return Promise.resolve({ stdout: '0.0.0', stderr: '' });
});
const executeSudoCommandStub = sinon.stub(childProcess, 'executeSudoCommand')
.callsFake(async (_command: string ) => {
return Promise.resolve({ stdout: 'success', stderr: '' });
});
await azdata.checkAndInstallAzdata(); await azdata.checkAndInstallAzdata();
should(executeSudoCommandStub.callCount).be.equal(6); should(executeSudoCommandStub.callCount).be.equal(6);
should(executeCommandStub.calledTwice).be.true(); should(executeCommandStub.calledThrice).be.true();
} }
async function testLinuxUnsuccessfulInstall() { async function testLinuxUnsuccessfulInstall() {