From 8819475a2ed2ee7c34e983ebb5ab12661be1a961 Mon Sep 17 00:00:00 2001 From: Kevin Serrano Date: Wed, 7 Dec 2016 14:34:15 -0800 Subject: Add ability to show notices to user & get confirmation. Implement generation of markdown for notice files. Create npm command. Enhance notice generation. Add test files to test multiple notices. Add basic markdown support to notices. Interval checks for updates. Add extensionizer and linker Add terms and conditions state file Add link support to disclaimer. Changelog addition. --- test/unit/config-manager-test.js | 95 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) (limited to 'test/unit') diff --git a/test/unit/config-manager-test.js b/test/unit/config-manager-test.js index 6aa7146f0..4283c516c 100644 --- a/test/unit/config-manager-test.js +++ b/test/unit/config-manager-test.js @@ -3,6 +3,7 @@ const extend = require('xtend') const STORAGE_KEY = 'metamask-persistance-key' var configManagerGen = require('../lib/mock-config-manager') var configManager +var testList const rp = require('request-promise') const nock = require('nock') @@ -13,6 +14,100 @@ describe('config-manager', function() { configManager = configManagerGen() }) + describe('notices', function() { + describe('#getNoticesList', function() { + it('should return an empty array when new', function() { + var testList = [{ + id:0, + read:false, + title:"Futuristic Notice" + }] + var result = configManager.getNoticesList() + assert.equal(result.length, 0) + }) + }) + + describe('#setNoticesList', function() { + it('should set data appropriately', function () { + var testList = [{ + id:0, + read:false, + title:"Futuristic Notice" + }] + configManager.setNoticesList(testList) + var testListId = configManager.getNoticesList()[0].id + assert.equal(testListId, 0) + }) + }) + + describe('#updateNoticeslist', function() { + it('should integrate the latest changes from the source', function() { + var testList = [{ + id:55, + read:false, + title:"Futuristic Notice" + }] + configManager.setNoticesList(testList) + configManager.updateNoticesList().then(() => { + var newList = configManager.getNoticesList() + assert.ok(newList[0].id === 55) + assert.ok(newList[1]) + }) + }) + it('should not overwrite any existing fields', function () { + var testList = [{ + id:0, + read:false, + title:"Futuristic Notice" + }] + configManager.setNoticesList(testList) + configManager.updateNoticesList().then(() => { + var newList = configManager.getNoticesList() + assert.equal(newList[0].id, 0) + assert.equal(newList[0].title, "Futuristic Notice") + assert.equal(newList.length, 1) + }) + }) + }) + + describe('#markNoticeRead', function () { + it('should mark a notice as read', function () { + var testList = [{ + id:0, + read:false, + title:"Futuristic Notice" + }] + configManager.setNoticesList(testList) + configManager.markNoticeRead(testList[0]) + var newList = configManager.getNoticesList() + assert.ok(newList[0].read) + }) + }) + + describe('#getLatestUnreadNotice', function () { + it('should retrieve the latest unread notice', function () { + var testList = [ + {id:0,read:true,title:"Past Notice"}, + {id:1,read:false,title:"Current Notice"}, + {id:2,read:false,title:"Future Notice"}, + ] + configManager.setNoticesList(testList) + var latestUnread = configManager.getLatestUnreadNotice() + assert.equal(latestUnread.id, 2) + }) + it('should return undefined if no unread notices exist.', function () { + var testList = [ + {id:0,read:true,title:"Past Notice"}, + {id:1,read:true,title:"Current Notice"}, + {id:2,read:true,title:"Future Notice"}, + ] + configManager.setNoticesList(testList) + var latestUnread = configManager.getLatestUnreadNotice() + assert.ok(!latestUnread) + }) + }) + }) + describe('currency conversions', function() { describe('#getCurrentFiat', function() { -- cgit From 4c390a622137b34687866ce0ec937b8dd54a3c1a Mon Sep 17 00:00:00 2001 From: kumavis Date: Fri, 16 Dec 2016 11:58:15 -0800 Subject: clean - code style --- test/unit/config-manager-test.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'test/unit') diff --git a/test/unit/config-manager-test.js b/test/unit/config-manager-test.js index 4283c516c..409a7b3f7 100644 --- a/test/unit/config-manager-test.js +++ b/test/unit/config-manager-test.js @@ -1,13 +1,12 @@ const assert = require('assert') const extend = require('xtend') -const STORAGE_KEY = 'metamask-persistance-key' -var configManagerGen = require('../lib/mock-config-manager') -var configManager -var testList const rp = require('request-promise') const nock = require('nock') +var configManagerGen = require('../lib/mock-config-manager') +const STORAGE_KEY = 'metamask-persistance-key' describe('config-manager', function() { + var configManager beforeEach(function() { window.localStorage = {} // Hacking localStorage support into JSDom -- cgit From 73998feeb2b6ba4ebb9a16c6ed54cce195c09013 Mon Sep 17 00:00:00 2001 From: kumavis Date: Fri, 16 Dec 2016 12:44:47 -0800 Subject: move notice code from metamask-controller + config-manager, in to notice-controller --- test/unit/config-manager-test.js | 94 ----------------------------- test/unit/notice-controller-test.js | 115 ++++++++++++++++++++++++++++++++++++ 2 files changed, 115 insertions(+), 94 deletions(-) create mode 100644 test/unit/notice-controller-test.js (limited to 'test/unit') diff --git a/test/unit/config-manager-test.js b/test/unit/config-manager-test.js index 409a7b3f7..26aa35a74 100644 --- a/test/unit/config-manager-test.js +++ b/test/unit/config-manager-test.js @@ -13,100 +13,6 @@ describe('config-manager', function() { configManager = configManagerGen() }) - describe('notices', function() { - describe('#getNoticesList', function() { - it('should return an empty array when new', function() { - var testList = [{ - id:0, - read:false, - title:"Futuristic Notice" - }] - var result = configManager.getNoticesList() - assert.equal(result.length, 0) - }) - }) - - describe('#setNoticesList', function() { - it('should set data appropriately', function () { - var testList = [{ - id:0, - read:false, - title:"Futuristic Notice" - }] - configManager.setNoticesList(testList) - var testListId = configManager.getNoticesList()[0].id - assert.equal(testListId, 0) - }) - }) - - describe('#updateNoticeslist', function() { - it('should integrate the latest changes from the source', function() { - var testList = [{ - id:55, - read:false, - title:"Futuristic Notice" - }] - configManager.setNoticesList(testList) - configManager.updateNoticesList().then(() => { - var newList = configManager.getNoticesList() - assert.ok(newList[0].id === 55) - assert.ok(newList[1]) - }) - }) - it('should not overwrite any existing fields', function () { - var testList = [{ - id:0, - read:false, - title:"Futuristic Notice" - }] - configManager.setNoticesList(testList) - configManager.updateNoticesList().then(() => { - var newList = configManager.getNoticesList() - assert.equal(newList[0].id, 0) - assert.equal(newList[0].title, "Futuristic Notice") - assert.equal(newList.length, 1) - }) - }) - }) - - describe('#markNoticeRead', function () { - it('should mark a notice as read', function () { - var testList = [{ - id:0, - read:false, - title:"Futuristic Notice" - }] - configManager.setNoticesList(testList) - configManager.markNoticeRead(testList[0]) - var newList = configManager.getNoticesList() - assert.ok(newList[0].read) - }) - }) - - describe('#getLatestUnreadNotice', function () { - it('should retrieve the latest unread notice', function () { - var testList = [ - {id:0,read:true,title:"Past Notice"}, - {id:1,read:false,title:"Current Notice"}, - {id:2,read:false,title:"Future Notice"}, - ] - configManager.setNoticesList(testList) - var latestUnread = configManager.getLatestUnreadNotice() - assert.equal(latestUnread.id, 2) - }) - it('should return undefined if no unread notices exist.', function () { - var testList = [ - {id:0,read:true,title:"Past Notice"}, - {id:1,read:true,title:"Current Notice"}, - {id:2,read:true,title:"Future Notice"}, - ] - configManager.setNoticesList(testList) - var latestUnread = configManager.getLatestUnreadNotice() - assert.ok(!latestUnread) - }) - }) - }) - describe('currency conversions', function() { describe('#getCurrentFiat', function() { diff --git a/test/unit/notice-controller-test.js b/test/unit/notice-controller-test.js new file mode 100644 index 000000000..4aa4c8e7b --- /dev/null +++ b/test/unit/notice-controller-test.js @@ -0,0 +1,115 @@ +const assert = require('assert') +const extend = require('xtend') +const rp = require('request-promise') +const nock = require('nock') +const configManagerGen = require('../lib/mock-config-manager') +const NoticeController = require('../../app/scripts/notice-controller') +const STORAGE_KEY = 'metamask-persistance-key' +// Hacking localStorage support into JSDom +window.localStorage = {} + +describe('notice-controller', function() { + var noticeController + + beforeEach(function() { + let configManager = configManagerGen() + noticeController = new NoticeController({ + configManager: configManager, + }) + }) + + describe('notices', function() { + describe('#getNoticesList', function() { + it('should return an empty array when new', function() { + var testList = [{ + id:0, + read:false, + title:"Futuristic Notice" + }] + var result = noticeController.getNoticesList() + assert.equal(result.length, 0) + }) + }) + + describe('#setNoticesList', function() { + it('should set data appropriately', function () { + var testList = [{ + id:0, + read:false, + title:"Futuristic Notice" + }] + noticeController.setNoticesList(testList) + var testListId = noticeController.getNoticesList()[0].id + assert.equal(testListId, 0) + }) + }) + + describe('#updateNoticeslist', function() { + it('should integrate the latest changes from the source', function() { + var testList = [{ + id:55, + read:false, + title:"Futuristic Notice" + }] + noticeController.setNoticesList(testList) + noticeController.updateNoticesList().then(() => { + var newList = noticeController.getNoticesList() + assert.ok(newList[0].id === 55) + assert.ok(newList[1]) + }) + }) + it('should not overwrite any existing fields', function () { + var testList = [{ + id:0, + read:false, + title:"Futuristic Notice" + }] + noticeController.setNoticesList(testList) + noticeController.updateNoticesList().then(() => { + var newList = noticeController.getNoticesList() + assert.equal(newList[0].id, 0) + assert.equal(newList[0].title, "Futuristic Notice") + assert.equal(newList.length, 1) + }) + }) + }) + + describe('#markNoticeRead', function () { + it('should mark a notice as read', function () { + var testList = [{ + id:0, + read:false, + title:"Futuristic Notice" + }] + noticeController.setNoticesList(testList) + noticeController.markNoticeRead(testList[0]) + var newList = noticeController.getNoticesList() + assert.ok(newList[0].read) + }) + }) + + describe('#getLatestUnreadNotice', function () { + it('should retrieve the latest unread notice', function () { + var testList = [ + {id:0,read:true,title:"Past Notice"}, + {id:1,read:false,title:"Current Notice"}, + {id:2,read:false,title:"Future Notice"}, + ] + noticeController.setNoticesList(testList) + var latestUnread = noticeController.getLatestUnreadNotice() + assert.equal(latestUnread.id, 2) + }) + it('should return undefined if no unread notices exist.', function () { + var testList = [ + {id:0,read:true,title:"Past Notice"}, + {id:1,read:true,title:"Current Notice"}, + {id:2,read:true,title:"Future Notice"}, + ] + noticeController.setNoticesList(testList) + var latestUnread = noticeController.getLatestUnreadNotice() + assert.ok(!latestUnread) + }) + }) + }) + +}) -- cgit