appstore and support: async'ify

This commit is contained in:
Girish Ramakrishnan
2021-08-18 15:54:53 -07:00
parent 200018a022
commit 03e22170da
16 changed files with 458 additions and 633 deletions

View File

@@ -30,54 +30,45 @@ describe('updatechecker', function () {
settings.setAutoupdatePattern(constants.AUTOUPDATE_PATTERN_NEVER, done);
});
it('no updates', function (done) {
it('no updates', async function () {
nock.cleanAll();
var scope = nock(mockApiServerOrigin)
const scope = nock(mockApiServerOrigin)
.get('/api/v1/boxupdate')
.query({ boxVersion: constants.VERSION, accessToken: appstoreToken, automatic: false })
.reply(204, { } );
updatechecker.checkForUpdates({ automatic: false }, function (error) {
expect(!error).to.be.ok();
expect(updatechecker.getUpdateInfo().box).to.not.be.ok();
expect(scope.isDone()).to.be.ok();
done();
});
await updatechecker.checkForUpdates({ automatic: false });
expect(updatechecker.getUpdateInfo().box).to.not.be.ok();
expect(scope.isDone()).to.be.ok();
});
it('new version', function (done) {
it('new version', async function () {
nock.cleanAll();
var scope = nock(mockApiServerOrigin)
const scope = nock(mockApiServerOrigin)
.get('/api/v1/boxupdate')
.query({ boxVersion: constants.VERSION, accessToken: appstoreToken, automatic: false })
.reply(200, { version: UPDATE_VERSION, changelog: [''], sourceTarballUrl: 'box.tar.gz', sourceTarballSigUrl: 'box.tar.gz.sig', boxVersionsUrl: 'box.versions', boxVersionsSigUrl: 'box.versions.sig' } );
updatechecker.checkForUpdates({ automatic: false }, function (error) {
expect(!error).to.be.ok();
expect(updatechecker.getUpdateInfo().box.version).to.be(UPDATE_VERSION);
expect(updatechecker.getUpdateInfo().box.sourceTarballUrl).to.be('box.tar.gz');
expect(scope.isDone()).to.be.ok();
done();
});
await updatechecker.checkForUpdates({ automatic: false });
expect(updatechecker.getUpdateInfo().box.version).to.be(UPDATE_VERSION);
expect(updatechecker.getUpdateInfo().box.sourceTarballUrl).to.be('box.tar.gz');
expect(scope.isDone()).to.be.ok();
});
it('bad response offers whatever was last valid', function (done) {
it('bad response offers whatever was last valid', async function () {
nock.cleanAll();
var scope = nock(mockApiServerOrigin)
const scope = nock(mockApiServerOrigin)
.get('/api/v1/boxupdate')
.query({ boxVersion: constants.VERSION, accessToken: appstoreToken, automatic: false })
.reply(404, { version: '2.0.0-pre.0', changelog: [''], sourceTarballUrl: 'box-pre.tar.gz' } );
updatechecker.checkForUpdates({ automatic: false }, function (error) {
expect(error).to.be.ok();
expect(updatechecker.getUpdateInfo().box.version).to.be(UPDATE_VERSION);
expect(updatechecker.getUpdateInfo().box.sourceTarballUrl).to.be('box.tar.gz');
expect(scope.isDone()).to.be.ok();
done();
});
await updatechecker.checkForUpdates({ automatic: false });
expect(updatechecker.getUpdateInfo().box.version).to.be(UPDATE_VERSION);
expect(updatechecker.getUpdateInfo().box.sourceTarballUrl).to.be('box.tar.gz');
expect(scope.isDone()).to.be.ok();
});
});
@@ -88,62 +79,50 @@ describe('updatechecker', function () {
settings.setAutoupdatePattern(constants.AUTOUPDATE_PATTERN_NEVER, done);
});
it('no updates', function (done) {
it('no updates', async function () {
nock.cleanAll();
var scope = nock(mockApiServerOrigin)
const scope = nock(mockApiServerOrigin)
.get('/api/v1/appupdate')
.query({ boxVersion: constants.VERSION, accessToken: appstoreToken, appId: app.appStoreId, appVersion: app.manifest.version, automatic: false })
.reply(204, { } );
updatechecker._checkAppUpdates({ automatic: false }, function (error) {
expect(!error).to.be.ok();
expect(updatechecker.getUpdateInfo()).to.eql({});
expect(scope.isDone()).to.be.ok();
done();
});
await updatechecker._checkAppUpdates({ automatic: false });
expect(updatechecker.getUpdateInfo()).to.eql({});
expect(scope.isDone()).to.be.ok();
});
it('bad response', function (done) {
it('bad response', async function () {
nock.cleanAll();
var scope = nock(mockApiServerOrigin)
const scope = nock(mockApiServerOrigin)
.get('/api/v1/appupdate')
.query({ boxVersion: constants.VERSION, accessToken: appstoreToken, appId: app.appStoreId, appVersion: app.manifest.version, automatic: false })
.reply(500, { update: { manifest: { version: '1.0.0', changelog: '* some changes' } } } );
updatechecker._checkAppUpdates({ automatic: false }, function (error) {
expect(!error).to.be.ok();
expect(updatechecker.getUpdateInfo()).to.eql({});
expect(scope.isDone()).to.be.ok();
done();
});
await updatechecker._checkAppUpdates({ automatic: false });
expect(updatechecker.getUpdateInfo()).to.eql({});
expect(scope.isDone()).to.be.ok();
});
it('offers new version', function (done) {
it('offers new version', async function () {
nock.cleanAll();
var scope = nock(mockApiServerOrigin)
const scope = nock(mockApiServerOrigin)
.get('/api/v1/appupdate')
.query({ boxVersion: constants.VERSION, accessToken: appstoreToken, appId: app.appStoreId, appVersion: app.manifest.version, automatic: false })
.reply(200, { manifest: { version: '2.0.0', changelog: '* some changes' } } );
updatechecker._checkAppUpdates({ automatic: false }, function (error) {
expect(!error).to.be.ok();
expect(updatechecker.getUpdateInfo()).to.eql({ 'appid': { manifest: { version: '2.0.0', changelog: '* some changes' }, unstable: false } });
expect(scope.isDone()).to.be.ok();
done();
});
await updatechecker._checkAppUpdates({ automatic: false });
expect(updatechecker.getUpdateInfo()).to.eql({ 'appid': { manifest: { version: '2.0.0', changelog: '* some changes' }, unstable: false } });
expect(scope.isDone()).to.be.ok();
});
it('does not offer old version', function (done) {
it('does not offer old version', async function () {
nock.cleanAll();
updatechecker._checkAppUpdates({ automatic: false }, function (error) {
expect(!error).to.be.ok();
expect(updatechecker.getUpdateInfo()).to.eql({ });
done();
});
await updatechecker._checkAppUpdates({ automatic: false });
expect(updatechecker.getUpdateInfo()).to.eql({ });
});
});
});