From 6284e664810fe0dcdcb35e55cc57bc11b9298dbb Mon Sep 17 00:00:00 2001 From: Esteban MIno Date: Wed, 27 Jun 2018 22:18:06 -0400 Subject: tests for spec --- test/unit/app/controllers/detect-tokens-test.js | 101 ++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 test/unit/app/controllers/detect-tokens-test.js (limited to 'test') diff --git a/test/unit/app/controllers/detect-tokens-test.js b/test/unit/app/controllers/detect-tokens-test.js new file mode 100644 index 000000000..f9f5c902d --- /dev/null +++ b/test/unit/app/controllers/detect-tokens-test.js @@ -0,0 +1,101 @@ +const assert = require('assert') +const sinon = require('sinon') +const DetectTokensController = require('../../../../app/scripts/controllers/detect-tokens') +const PreferencesController = require('../../../../app/scripts/controllers/preferences') +const ObservableStore = require('obs-store') + +describe('DetectTokensController', () => { + it('should poll on correct interval', async () => { + const stub = sinon.stub(global, 'setInterval') + new DetectTokensController({ interval: 1337 }) // eslint-disable-line no-new + assert.strictEqual(stub.getCall(0).args[1], 1337) + stub.restore() + }) + + it('should not check tokens while in test network', async () => { + var network = new ObservableStore({provider: {type:'rinkeby'}}) + const preferences = new PreferencesController() + const controller = new DetectTokensController({preferences: preferences, network: network}) + controller.isActive = true + controller.contracts = { + "0x0D262e5dC4A06a0F1c90cE79C7a60C09DfC884E4": { + "name": "JET8 Token", + "logo": "J8T.svg", + "erc20": true, + "symbol": "J8T", + "decimals": 8 + }, + "0xBC86727E770de68B1060C91f6BB6945c73e10388": { + "name": "Ink Protocol", + "logo": "ink_protocol.svg", + "erc20": true, + "symbol": "XNK", + "decimals": 18 + } + } + controller.fetchContractAccountBalance = address => address + + await controller.exploreNewTokens() + assert.deepEqual(preferences.store.getState().tokens, []) + + }) + + it('should only check and add tokens while in main network', async () => { + const network = new ObservableStore({provider: {type:'mainnet'}}) + const preferences = new PreferencesController() + const controller = new DetectTokensController({preferences: preferences, network: network}) + controller.isActive = true + controller.contracts = { + "0x0D262e5dC4A06a0F1c90cE79C7a60C09DfC884E4": { + "name": "JET8 Token", + "logo": "J8T.svg", + "erc20": true, + "symbol": "J8T", + "decimals": 8 + }, + "0xBC86727E770de68B1060C91f6BB6945c73e10388": { + "name": "Ink Protocol", + "logo": "ink_protocol.svg", + "erc20": true, + "symbol": "XNK", + "decimals": 18 + } + } + controller.fetchContractAccountBalance = address => address + + await controller.exploreNewTokens() + assert.deepEqual(preferences.store.getState().tokens, + [{address: "0x0d262e5dc4a06a0f1c90ce79c7a60c09dfc884e4", decimals: 8, symbol: "J8T"}, + {address: "0xbc86727e770de68b1060c91f6bb6945c73e10388", decimals: 18, symbol: "XNK"}]) + }) + + it('should not detect same token while in main network', async () => { + const network = new ObservableStore({provider: {type:'mainnet'}}) + const preferences = new PreferencesController() + preferences.addToken("0x0d262e5dc4a06a0f1c90ce79c7a60c09dfc884e4", 8, "J8T") + const controller = new DetectTokensController({preferences: preferences, network: network}) + controller.isActive = true + controller.contracts = { + "0x0D262e5dC4A06a0F1c90cE79C7a60C09DfC884E4": { + "name": "JET8 Token", + "logo": "J8T.svg", + "erc20": true, + "symbol": "J8T", + "decimals": 8 + }, + "0xBC86727E770de68B1060C91f6BB6945c73e10388": { + "name": "Ink Protocol", + "logo": "ink_protocol.svg", + "erc20": true, + "symbol": "XNK", + "decimals": 18 + } + } + controller.fetchContractAccountBalance = address => address + + await controller.exploreNewTokens() + assert.deepEqual(preferences.store.getState().tokens, + [{address: "0x0d262e5dc4a06a0f1c90ce79c7a60c09dfc884e4", decimals: 8, symbol: "J8T"}, + {address: "0xbc86727e770de68b1060c91f6bb6945c73e10388", decimals: 18, symbol: "XNK"}]) + }) +}) -- cgit From 63b9c8796bf744f05a3b7d88319460eed772efa9 Mon Sep 17 00:00:00 2001 From: Esteban MIno Date: Tue, 3 Jul 2018 15:24:23 -0400 Subject: fix lint --- test/unit/app/controllers/detect-tokens-test.js | 100 +++++++++++------------- 1 file changed, 46 insertions(+), 54 deletions(-) (limited to 'test') diff --git a/test/unit/app/controllers/detect-tokens-test.js b/test/unit/app/controllers/detect-tokens-test.js index f9f5c902d..82e86bfcc 100644 --- a/test/unit/app/controllers/detect-tokens-test.js +++ b/test/unit/app/controllers/detect-tokens-test.js @@ -13,89 +13,81 @@ describe('DetectTokensController', () => { }) it('should not check tokens while in test network', async () => { - var network = new ObservableStore({provider: {type:'rinkeby'}}) + var network = new ObservableStore({provider: {type: 'rinkeby'}}) const preferences = new PreferencesController() const controller = new DetectTokensController({preferences: preferences, network: network}) controller.isActive = true controller.contracts = { - "0x0D262e5dC4A06a0F1c90cE79C7a60C09DfC884E4": { - "name": "JET8 Token", - "logo": "J8T.svg", - "erc20": true, - "symbol": "J8T", - "decimals": 8 + '0x0D262e5dC4A06a0F1c90cE79C7a60C09DfC884E4': { + 'name': 'JET8 Token', + 'logo': 'J8T.svg', + 'erc20': true, + 'symbol': 'J8T', + 'decimals': 8, + }, + '0xBC86727E770de68B1060C91f6BB6945c73e10388': { + 'name': 'Ink Protocol', + 'logo': 'ink_protocol.svg', + 'erc20': true, + 'symbol': 'XNK', + 'decimals': 18, }, - "0xBC86727E770de68B1060C91f6BB6945c73e10388": { - "name": "Ink Protocol", - "logo": "ink_protocol.svg", - "erc20": true, - "symbol": "XNK", - "decimals": 18 - } } controller.fetchContractAccountBalance = address => address - await controller.exploreNewTokens() assert.deepEqual(preferences.store.getState().tokens, []) - - }) +}) it('should only check and add tokens while in main network', async () => { - const network = new ObservableStore({provider: {type:'mainnet'}}) + const network = new ObservableStore({provider: {type: 'mainnet'}}) const preferences = new PreferencesController() const controller = new DetectTokensController({preferences: preferences, network: network}) controller.isActive = true controller.contracts = { - "0x0D262e5dC4A06a0F1c90cE79C7a60C09DfC884E4": { - "name": "JET8 Token", - "logo": "J8T.svg", - "erc20": true, - "symbol": "J8T", - "decimals": 8 + '0x0D262e5dC4A06a0F1c90cE79C7a60C09DfC884E4': { + 'name': 'JET8 Token', + 'logo': 'J8T.svg', + 'erc20': true, + 'symbol': 'J8T', + 'decimals': 8, + }, + '0xBC86727E770de68B1060C91f6BB6945c73e10388': { + 'name': 'Ink Protocol', + 'logo': 'ink_protocol.svg', + 'erc20': true, + 'symbol': 'XNK', + 'decimals': 18, }, - "0xBC86727E770de68B1060C91f6BB6945c73e10388": { - "name": "Ink Protocol", - "logo": "ink_protocol.svg", - "erc20": true, - "symbol": "XNK", - "decimals": 18 - } } controller.fetchContractAccountBalance = address => address - await controller.exploreNewTokens() - assert.deepEqual(preferences.store.getState().tokens, - [{address: "0x0d262e5dc4a06a0f1c90ce79c7a60c09dfc884e4", decimals: 8, symbol: "J8T"}, - {address: "0xbc86727e770de68b1060c91f6bb6945c73e10388", decimals: 18, symbol: "XNK"}]) + assert.deepEqual(preferences.store.getState().tokens, [{address: '0x0d262e5dc4a06a0f1c90ce79c7a60c09dfc884e4', decimals: 8, symbol: 'J8T'}, {address: '0xbc86727e770de68b1060c91f6bb6945c73e10388', decimals: 18, symbol: 'XNK'}]) }) it('should not detect same token while in main network', async () => { - const network = new ObservableStore({provider: {type:'mainnet'}}) + const network = new ObservableStore({provider: {type: 'mainnet'}}) const preferences = new PreferencesController() - preferences.addToken("0x0d262e5dc4a06a0f1c90ce79c7a60c09dfc884e4", 8, "J8T") + preferences.addToken('0x0d262e5dc4a06a0f1c90ce79c7a60c09dfc884e4', 8, 'J8T') const controller = new DetectTokensController({preferences: preferences, network: network}) controller.isActive = true controller.contracts = { - "0x0D262e5dC4A06a0F1c90cE79C7a60C09DfC884E4": { - "name": "JET8 Token", - "logo": "J8T.svg", - "erc20": true, - "symbol": "J8T", - "decimals": 8 + '0x0D262e5dC4A06a0F1c90cE79C7a60C09DfC884E4': { + 'name': 'JET8 Token', + 'logo': 'J8T.svg', + 'erc20': true, + 'symbol': 'J8T', + 'decimals': 8, + }, + '0xBC86727E770de68B1060C91f6BB6945c73e10388': { + 'name': 'Ink Protocol', + 'logo': 'ink_protocol.svg', + 'erc20': true, + 'symbol': 'XNK', + 'decimals': 18, }, - "0xBC86727E770de68B1060C91f6BB6945c73e10388": { - "name": "Ink Protocol", - "logo": "ink_protocol.svg", - "erc20": true, - "symbol": "XNK", - "decimals": 18 - } } controller.fetchContractAccountBalance = address => address - await controller.exploreNewTokens() - assert.deepEqual(preferences.store.getState().tokens, - [{address: "0x0d262e5dc4a06a0f1c90ce79c7a60c09dfc884e4", decimals: 8, symbol: "J8T"}, - {address: "0xbc86727e770de68b1060c91f6bb6945c73e10388", decimals: 18, symbol: "XNK"}]) + assert.deepEqual(preferences.store.getState().tokens, [{address: '0x0d262e5dc4a06a0f1c90ce79c7a60c09dfc884e4', decimals: 8, symbol: 'J8T'}, {address: '0xbc86727e770de68b1060c91f6bb6945c73e10388', decimals: 18, symbol: 'XNK'}]) }) }) -- cgit From 910713c6b3c5b8f865fdcb989bfe3ee0b14eb364 Mon Sep 17 00:00:00 2001 From: Esteban MIno Date: Wed, 11 Jul 2018 15:59:05 -0400 Subject: improve tests --- test/unit/app/controllers/detect-tokens-test.js | 105 +++++++++++------------- 1 file changed, 49 insertions(+), 56 deletions(-) (limited to 'test') diff --git a/test/unit/app/controllers/detect-tokens-test.js b/test/unit/app/controllers/detect-tokens-test.js index 82e86bfcc..dca48c6bb 100644 --- a/test/unit/app/controllers/detect-tokens-test.js +++ b/test/unit/app/controllers/detect-tokens-test.js @@ -5,6 +5,14 @@ const PreferencesController = require('../../../../app/scripts/controllers/prefe const ObservableStore = require('obs-store') describe('DetectTokensController', () => { + const sandbox = sinon.createSandbox() + let clock + before(async () => { + }) + after(() => { + sandbox.restore() + }) + it('should poll on correct interval', async () => { const stub = sinon.stub(global, 'setInterval') new DetectTokensController({ interval: 1337 }) // eslint-disable-line no-new @@ -12,82 +20,67 @@ describe('DetectTokensController', () => { stub.restore() }) + it('should be called on every polling period', async () => { + clock = sandbox.useFakeTimers() + const network = new ObservableStore({provider: {type: 'mainnet'}}) + const preferences = new PreferencesController() + const controller = new DetectTokensController({preferences: preferences, network: network}) + controller.isActive = true + + var stub = sandbox.stub(controller, 'exploreNewTokens') + + clock.tick(1) + sandbox.assert.notCalled(stub) + clock.tick(180000) + sandbox.assert.called(stub) + clock.tick(180000) + sandbox.assert.calledTwice(stub) + clock.tick(180000) + sandbox.assert.calledThrice(stub) + }) + it('should not check tokens while in test network', async () => { var network = new ObservableStore({provider: {type: 'rinkeby'}}) const preferences = new PreferencesController() const controller = new DetectTokensController({preferences: preferences, network: network}) controller.isActive = true - controller.contracts = { - '0x0D262e5dC4A06a0F1c90cE79C7a60C09DfC884E4': { - 'name': 'JET8 Token', - 'logo': 'J8T.svg', - 'erc20': true, - 'symbol': 'J8T', - 'decimals': 8, - }, - '0xBC86727E770de68B1060C91f6BB6945c73e10388': { - 'name': 'Ink Protocol', - 'logo': 'ink_protocol.svg', - 'erc20': true, - 'symbol': 'XNK', - 'decimals': 18, - }, - } - controller.fetchContractAccountBalance = address => address + + var stub = sandbox.stub(controller, 'detectTokenBalance') + .withArgs('0x0D262e5dC4A06a0F1c90cE79C7a60C09DfC884E4').returns(true) + .withArgs('0xBC86727E770de68B1060C91f6BB6945c73e10388').returns(true) + await controller.exploreNewTokens() - assert.deepEqual(preferences.store.getState().tokens, []) -}) + sandbox.assert.notCalled(stub) + }) it('should only check and add tokens while in main network', async () => { const network = new ObservableStore({provider: {type: 'mainnet'}}) const preferences = new PreferencesController() const controller = new DetectTokensController({preferences: preferences, network: network}) controller.isActive = true - controller.contracts = { - '0x0D262e5dC4A06a0F1c90cE79C7a60C09DfC884E4': { - 'name': 'JET8 Token', - 'logo': 'J8T.svg', - 'erc20': true, - 'symbol': 'J8T', - 'decimals': 8, - }, - '0xBC86727E770de68B1060C91f6BB6945c73e10388': { - 'name': 'Ink Protocol', - 'logo': 'ink_protocol.svg', - 'erc20': true, - 'symbol': 'XNK', - 'decimals': 18, - }, - } - controller.fetchContractAccountBalance = address => address + + sandbox.stub(controller, 'detectTokenBalance') + .withArgs('0x0D262e5dC4A06a0F1c90cE79C7a60C09DfC884E4').returns(true) + .withArgs('0xBC86727E770de68B1060C91f6BB6945c73e10388').returns(true) + await controller.exploreNewTokens() - assert.deepEqual(preferences.store.getState().tokens, [{address: '0x0d262e5dc4a06a0f1c90ce79c7a60c09dfc884e4', decimals: 8, symbol: 'J8T'}, {address: '0xbc86727e770de68b1060c91f6bb6945c73e10388', decimals: 18, symbol: 'XNK'}]) + assert.deepEqual(preferences.store.getState().tokens, [{address: '0x0d262e5dc4a06a0f1c90ce79c7a60c09dfc884e4', decimals: 8, symbol: 'J8T'}, + {address: '0xbc86727e770de68b1060c91f6bb6945c73e10388', decimals: 18, symbol: 'XNK'}]) }) it('should not detect same token while in main network', async () => { const network = new ObservableStore({provider: {type: 'mainnet'}}) const preferences = new PreferencesController() - preferences.addToken('0x0d262e5dc4a06a0f1c90ce79c7a60c09dfc884e4', 8, 'J8T') + preferences.addToken('0x0d262e5dc4a06a0f1c90ce79c7a60c09dfc884e4', 'J8T', 8) const controller = new DetectTokensController({preferences: preferences, network: network}) controller.isActive = true - controller.contracts = { - '0x0D262e5dC4A06a0F1c90cE79C7a60C09DfC884E4': { - 'name': 'JET8 Token', - 'logo': 'J8T.svg', - 'erc20': true, - 'symbol': 'J8T', - 'decimals': 8, - }, - '0xBC86727E770de68B1060C91f6BB6945c73e10388': { - 'name': 'Ink Protocol', - 'logo': 'ink_protocol.svg', - 'erc20': true, - 'symbol': 'XNK', - 'decimals': 18, - }, - } - controller.fetchContractAccountBalance = address => address + + sandbox.stub(controller, 'detectTokenBalance') + .withArgs('0x0D262e5dC4A06a0F1c90cE79C7a60C09DfC884E4').returns(true) + .withArgs('0xBC86727E770de68B1060C91f6BB6945c73e10388').returns(true) + await controller.exploreNewTokens() - assert.deepEqual(preferences.store.getState().tokens, [{address: '0x0d262e5dc4a06a0f1c90ce79c7a60c09dfc884e4', decimals: 8, symbol: 'J8T'}, {address: '0xbc86727e770de68b1060c91f6bb6945c73e10388', decimals: 18, symbol: 'XNK'}]) + assert.deepEqual(preferences.store.getState().tokens, [{address: '0x0d262e5dc4a06a0f1c90ce79c7a60c09dfc884e4', decimals: 8, symbol: 'J8T'}, + {address: '0xbc86727e770de68b1060c91f6bb6945c73e10388', decimals: 18, symbol: 'XNK'}]) }) }) -- cgit From 2fffe098736e2461b9238c7dcd91f9ef3d61dcc1 Mon Sep 17 00:00:00 2001 From: Esteban MIno Date: Thu, 12 Jul 2018 20:43:43 -0400 Subject: detect tokens through infura --- test/unit/app/controllers/detect-tokens-test.js | 26 ++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) (limited to 'test') diff --git a/test/unit/app/controllers/detect-tokens-test.js b/test/unit/app/controllers/detect-tokens-test.js index dca48c6bb..860ed7050 100644 --- a/test/unit/app/controllers/detect-tokens-test.js +++ b/test/unit/app/controllers/detect-tokens-test.js @@ -1,8 +1,8 @@ const assert = require('assert') const sinon = require('sinon') const DetectTokensController = require('../../../../app/scripts/controllers/detect-tokens') +const NetworkController = require('../../../../app/scripts/controllers/network/network') const PreferencesController = require('../../../../app/scripts/controllers/preferences') -const ObservableStore = require('obs-store') describe('DetectTokensController', () => { const sandbox = sinon.createSandbox() @@ -22,7 +22,8 @@ describe('DetectTokensController', () => { it('should be called on every polling period', async () => { clock = sandbox.useFakeTimers() - const network = new ObservableStore({provider: {type: 'mainnet'}}) + const network = new NetworkController() + network.setProviderType('mainnet') const preferences = new PreferencesController() const controller = new DetectTokensController({preferences: preferences, network: network}) controller.isActive = true @@ -40,7 +41,8 @@ describe('DetectTokensController', () => { }) it('should not check tokens while in test network', async () => { - var network = new ObservableStore({provider: {type: 'rinkeby'}}) + const network = new NetworkController() + network.setProviderType('rinkeby') const preferences = new PreferencesController() const controller = new DetectTokensController({preferences: preferences, network: network}) controller.isActive = true @@ -54,14 +56,17 @@ describe('DetectTokensController', () => { }) it('should only check and add tokens while in main network', async () => { - const network = new ObservableStore({provider: {type: 'mainnet'}}) + const network = new NetworkController() + network.setProviderType('mainnet') const preferences = new PreferencesController() const controller = new DetectTokensController({preferences: preferences, network: network}) controller.isActive = true sandbox.stub(controller, 'detectTokenBalance') - .withArgs('0x0D262e5dC4A06a0F1c90cE79C7a60C09DfC884E4').returns(true) - .withArgs('0xBC86727E770de68B1060C91f6BB6945c73e10388').returns(true) + .withArgs('0x0D262e5dC4A06a0F1c90cE79C7a60C09DfC884E4') + .returns(preferences.addToken('0x0d262e5dc4a06a0f1c90ce79c7a60c09dfc884e4', 'J8T', 8)) + .withArgs('0xBC86727E770de68B1060C91f6BB6945c73e10388') + .returns(preferences.addToken('0xbc86727e770de68b1060c91f6bb6945c73e10388', 'XNK', 18)) await controller.exploreNewTokens() assert.deepEqual(preferences.store.getState().tokens, [{address: '0x0d262e5dc4a06a0f1c90ce79c7a60c09dfc884e4', decimals: 8, symbol: 'J8T'}, @@ -69,15 +74,18 @@ describe('DetectTokensController', () => { }) it('should not detect same token while in main network', async () => { - const network = new ObservableStore({provider: {type: 'mainnet'}}) + const network = new NetworkController() + network.setProviderType('mainnet') const preferences = new PreferencesController() preferences.addToken('0x0d262e5dc4a06a0f1c90ce79c7a60c09dfc884e4', 'J8T', 8) const controller = new DetectTokensController({preferences: preferences, network: network}) controller.isActive = true sandbox.stub(controller, 'detectTokenBalance') - .withArgs('0x0D262e5dC4A06a0F1c90cE79C7a60C09DfC884E4').returns(true) - .withArgs('0xBC86727E770de68B1060C91f6BB6945c73e10388').returns(true) + .withArgs('0x0D262e5dC4A06a0F1c90cE79C7a60C09DfC884E4') + .returns(preferences.addToken('0x0d262e5dc4a06a0f1c90ce79c7a60c09dfc884e4', 'J8T', 8)) + .withArgs('0xBC86727E770de68B1060C91f6BB6945c73e10388') + .returns(preferences.addToken('0xbc86727e770de68b1060c91f6bb6945c73e10388', 'XNK', 18)) await controller.exploreNewTokens() assert.deepEqual(preferences.store.getState().tokens, [{address: '0x0d262e5dc4a06a0f1c90ce79c7a60c09dfc884e4', decimals: 8, symbol: 'J8T'}, -- cgit From 3b97d816ffcaebc7606d4564ea95918f647ba413 Mon Sep 17 00:00:00 2001 From: Esteban MIno Date: Thu, 19 Jul 2018 15:56:38 -0400 Subject: detect tokens when submit password and new account selected --- test/unit/app/controllers/detect-tokens-test.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'test') diff --git a/test/unit/app/controllers/detect-tokens-test.js b/test/unit/app/controllers/detect-tokens-test.js index 860ed7050..49492c543 100644 --- a/test/unit/app/controllers/detect-tokens-test.js +++ b/test/unit/app/controllers/detect-tokens-test.js @@ -28,7 +28,7 @@ describe('DetectTokensController', () => { const controller = new DetectTokensController({preferences: preferences, network: network}) controller.isActive = true - var stub = sandbox.stub(controller, 'exploreNewTokens') + var stub = sandbox.stub(controller, 'detectNewTokens') clock.tick(1) sandbox.assert.notCalled(stub) @@ -51,7 +51,7 @@ describe('DetectTokensController', () => { .withArgs('0x0D262e5dC4A06a0F1c90cE79C7a60C09DfC884E4').returns(true) .withArgs('0xBC86727E770de68B1060C91f6BB6945c73e10388').returns(true) - await controller.exploreNewTokens() + await controller.detectNewTokens() sandbox.assert.notCalled(stub) }) @@ -68,7 +68,7 @@ describe('DetectTokensController', () => { .withArgs('0xBC86727E770de68B1060C91f6BB6945c73e10388') .returns(preferences.addToken('0xbc86727e770de68b1060c91f6bb6945c73e10388', 'XNK', 18)) - await controller.exploreNewTokens() + await controller.detectNewTokens() assert.deepEqual(preferences.store.getState().tokens, [{address: '0x0d262e5dc4a06a0f1c90ce79c7a60c09dfc884e4', decimals: 8, symbol: 'J8T'}, {address: '0xbc86727e770de68b1060c91f6bb6945c73e10388', decimals: 18, symbol: 'XNK'}]) }) @@ -87,7 +87,7 @@ describe('DetectTokensController', () => { .withArgs('0xBC86727E770de68B1060C91f6BB6945c73e10388') .returns(preferences.addToken('0xbc86727e770de68b1060c91f6bb6945c73e10388', 'XNK', 18)) - await controller.exploreNewTokens() + await controller.detectNewTokens() assert.deepEqual(preferences.store.getState().tokens, [{address: '0x0d262e5dc4a06a0f1c90ce79c7a60c09dfc884e4', decimals: 8, symbol: 'J8T'}, {address: '0xbc86727e770de68b1060c91f6bb6945c73e10388', decimals: 18, symbol: 'XNK'}]) }) -- cgit From 009b1cefbe3d19dcad01078927b1a55c3439b22f Mon Sep 17 00:00:00 2001 From: Esteban MIno Date: Thu, 19 Jul 2018 19:46:46 -0400 Subject: keyring unlocked detect and unit tests --- test/unit/app/controllers/detect-tokens-test.js | 38 +++++++++++++++++++++---- 1 file changed, 32 insertions(+), 6 deletions(-) (limited to 'test') diff --git a/test/unit/app/controllers/detect-tokens-test.js b/test/unit/app/controllers/detect-tokens-test.js index 49492c543..dcb3c431f 100644 --- a/test/unit/app/controllers/detect-tokens-test.js +++ b/test/unit/app/controllers/detect-tokens-test.js @@ -1,14 +1,17 @@ const assert = require('assert') const sinon = require('sinon') +const ObservableStore = require('obs-store') const DetectTokensController = require('../../../../app/scripts/controllers/detect-tokens') const NetworkController = require('../../../../app/scripts/controllers/network/network') const PreferencesController = require('../../../../app/scripts/controllers/preferences') describe('DetectTokensController', () => { - const sandbox = sinon.createSandbox() + const sandbox = sinon.createSandbox() let clock + let keyringMemStore before(async () => { - }) + keyringMemStore = new ObservableStore({ isUnlocked: false}) + }) after(() => { sandbox.restore() }) @@ -25,7 +28,7 @@ describe('DetectTokensController', () => { const network = new NetworkController() network.setProviderType('mainnet') const preferences = new PreferencesController() - const controller = new DetectTokensController({preferences: preferences, network: network}) + const controller = new DetectTokensController({ preferences: preferences, network: network, keyringMemStore: keyringMemStore }) controller.isActive = true var stub = sandbox.stub(controller, 'detectNewTokens') @@ -44,7 +47,7 @@ describe('DetectTokensController', () => { const network = new NetworkController() network.setProviderType('rinkeby') const preferences = new PreferencesController() - const controller = new DetectTokensController({preferences: preferences, network: network}) + const controller = new DetectTokensController({ preferences: preferences, network: network, keyringMemStore: keyringMemStore }) controller.isActive = true var stub = sandbox.stub(controller, 'detectTokenBalance') @@ -59,7 +62,7 @@ describe('DetectTokensController', () => { const network = new NetworkController() network.setProviderType('mainnet') const preferences = new PreferencesController() - const controller = new DetectTokensController({preferences: preferences, network: network}) + const controller = new DetectTokensController({ preferences: preferences, network: network, keyringMemStore: keyringMemStore }) controller.isActive = true sandbox.stub(controller, 'detectTokenBalance') @@ -78,7 +81,7 @@ describe('DetectTokensController', () => { network.setProviderType('mainnet') const preferences = new PreferencesController() preferences.addToken('0x0d262e5dc4a06a0f1c90ce79c7a60c09dfc884e4', 'J8T', 8) - const controller = new DetectTokensController({preferences: preferences, network: network}) + const controller = new DetectTokensController({ preferences: preferences, network: network, keyringMemStore: keyringMemStore }) controller.isActive = true sandbox.stub(controller, 'detectTokenBalance') @@ -91,4 +94,27 @@ describe('DetectTokensController', () => { assert.deepEqual(preferences.store.getState().tokens, [{address: '0x0d262e5dc4a06a0f1c90ce79c7a60c09dfc884e4', decimals: 8, symbol: 'J8T'}, {address: '0xbc86727e770de68b1060c91f6bb6945c73e10388', decimals: 18, symbol: 'XNK'}]) }) + + it('should trigger detect new tokens when change address', async () => { + const network = new NetworkController() + network.setProviderType('mainnet') + const preferences = new PreferencesController() + const controller = new DetectTokensController({ preferences: preferences, network: network, keyringMemStore: keyringMemStore }) + controller.isActive = true + var stub = sandbox.stub(controller, 'detectNewTokens') + await preferences.setSelectedAddress('0xbc86727e770de68b1060c91f6bb6945c73e10388') + sandbox.assert.called(stub) + }) + + it('should trigger detect new tokens when submit password', async () => { + const network = new NetworkController() + network.setProviderType('mainnet') + const preferences = new PreferencesController() + const controller = new DetectTokensController({ preferences: preferences, network: network, keyringMemStore: keyringMemStore }) + controller.isActive = true + controller.selectedAddress = '0x0' + var stub = sandbox.stub(controller, 'detectNewTokens') + await controller._keyringMemStore.updateState({ isUnlocked: true }) + sandbox.assert.called(stub) + }) }) -- cgit From 9c955549338f49d8b5eb6ca003c2c65c725aa328 Mon Sep 17 00:00:00 2001 From: Esteban MIno Date: Fri, 20 Jul 2018 19:58:03 -0400 Subject: fix detection on submit password --- test/unit/app/controllers/detect-tokens-test.js | 33 ++++++++++++++++++++----- 1 file changed, 27 insertions(+), 6 deletions(-) (limited to 'test') diff --git a/test/unit/app/controllers/detect-tokens-test.js b/test/unit/app/controllers/detect-tokens-test.js index dcb3c431f..426ffe23a 100644 --- a/test/unit/app/controllers/detect-tokens-test.js +++ b/test/unit/app/controllers/detect-tokens-test.js @@ -29,7 +29,8 @@ describe('DetectTokensController', () => { network.setProviderType('mainnet') const preferences = new PreferencesController() const controller = new DetectTokensController({ preferences: preferences, network: network, keyringMemStore: keyringMemStore }) - controller.isActive = true + controller.isOpen = true + controller.isUnlocked = true var stub = sandbox.stub(controller, 'detectNewTokens') @@ -48,7 +49,8 @@ describe('DetectTokensController', () => { network.setProviderType('rinkeby') const preferences = new PreferencesController() const controller = new DetectTokensController({ preferences: preferences, network: network, keyringMemStore: keyringMemStore }) - controller.isActive = true + controller.isOpen = true + controller.isUnlocked = true var stub = sandbox.stub(controller, 'detectTokenBalance') .withArgs('0x0D262e5dC4A06a0F1c90cE79C7a60C09DfC884E4').returns(true) @@ -63,7 +65,8 @@ describe('DetectTokensController', () => { network.setProviderType('mainnet') const preferences = new PreferencesController() const controller = new DetectTokensController({ preferences: preferences, network: network, keyringMemStore: keyringMemStore }) - controller.isActive = true + controller.isOpen = true + controller.isUnlocked = true sandbox.stub(controller, 'detectTokenBalance') .withArgs('0x0D262e5dC4A06a0F1c90cE79C7a60C09DfC884E4') @@ -82,7 +85,8 @@ describe('DetectTokensController', () => { const preferences = new PreferencesController() preferences.addToken('0x0d262e5dc4a06a0f1c90ce79c7a60c09dfc884e4', 'J8T', 8) const controller = new DetectTokensController({ preferences: preferences, network: network, keyringMemStore: keyringMemStore }) - controller.isActive = true + controller.isOpen = true + controller.isUnlocked = true sandbox.stub(controller, 'detectTokenBalance') .withArgs('0x0D262e5dC4A06a0F1c90cE79C7a60C09DfC884E4') @@ -100,7 +104,8 @@ describe('DetectTokensController', () => { network.setProviderType('mainnet') const preferences = new PreferencesController() const controller = new DetectTokensController({ preferences: preferences, network: network, keyringMemStore: keyringMemStore }) - controller.isActive = true + controller.isOpen = true + controller.isUnlocked = true var stub = sandbox.stub(controller, 'detectNewTokens') await preferences.setSelectedAddress('0xbc86727e770de68b1060c91f6bb6945c73e10388') sandbox.assert.called(stub) @@ -111,10 +116,26 @@ describe('DetectTokensController', () => { network.setProviderType('mainnet') const preferences = new PreferencesController() const controller = new DetectTokensController({ preferences: preferences, network: network, keyringMemStore: keyringMemStore }) - controller.isActive = true + controller.isOpen = true controller.selectedAddress = '0x0' var stub = sandbox.stub(controller, 'detectNewTokens') await controller._keyringMemStore.updateState({ isUnlocked: true }) sandbox.assert.called(stub) }) + + it('should not trigger detect new tokens when not open or not unlocked', async () => { + const network = new NetworkController() + network.setProviderType('mainnet') + const preferences = new PreferencesController() + const controller = new DetectTokensController({ preferences: preferences, network: network, keyringMemStore: keyringMemStore }) + controller.isOpen = true + controller.isUnlocked = false + var stub = sandbox.stub(controller, 'detectTokenBalance') + clock.tick(180000) + sandbox.assert.notCalled(stub) + controller.isOpen = false + controller.isUnlocked = true + clock.tick(180000) + sandbox.assert.notCalled(stub) + }) }) -- cgit