Notify when updated

This commit is contained in:
Shin'ya Ueoka 2018-05-05 17:35:24 +09:00
parent a63311bd34
commit 88e216d49b
7 changed files with 161 additions and 1 deletions

View file

@ -0,0 +1,55 @@
import * as versions from 'shared/versions';
import manifest from '../../../manifest.json';
describe("shared/versions/storage", () => {
describe('#checkUpdated', () => {
beforeEach(() => {
return browser.storage.local.remove('version');
});
it('return true if no previous versions', () => {
return Promise.resolve().then(() => {
return versions.checkUpdated();
}).then((updated) => {
expect(updated).to.be.true;
});
});
it('return true if updated', () => {
return Promise.resolve().then(() => {
return browser.storage.local.set({ version: '0.001' });
}).then(() => {
return versions.checkUpdated();
}).then((updated) => {
expect(updated).to.be.true;
});
});
it('return false if not updated', () => {
return Promise.resolve().then(() => {
return browser.storage.local.set({ version: manifest.version });
}).then(() => {
return versions.checkUpdated();
}).then((updated) => {
expect(updated).to.be.false;
});
});
});
describe('#commit', () => {
beforeEach(() => {
return browser.storage.local.remove('version');
});
it('saves current version from manifest.json', () => {
return Promise.resolve().then(() => {
return versions.commit();
}).then(() => {
return browser.storage.local.get('version');
}).then(({version}) => {
expect(version).to.be.a('string');
expect(version).to.equal(manifest.version);
});
});
});
});

View file

@ -0,0 +1,39 @@
import * as storage from 'shared/versions/storage';
describe("shared/versions/storage", () => {
describe('#load', () => {
beforeEach(() => {
return browser.storage.local.remove('version');
});
it('loads saved version', () => {
return Promise.resolve().then(() => {
return browser.storage.local.set({ version: '1.2.3' });
}).then(() => {
return storage.load();
}).then((version) => {
expect(version).to.equal('1.2.3');
});
});
it('returns undefined if no versions in storage', () => {
return Promise.resolve().then(() => {
return storage.load();
}).then((version) => {
expect(version).to.be.a('undefined');
});
});
});
describe('#save', () => {
it('saves version string', () => {
return Promise.resolve().then(() => {
return storage.save('2.3.4');
}).then(() => {
return browser.storage.local.get('version');
}).then(({version}) => {
expect(version).to.equal('2.3.4');
});
});
});
});