test('web worker add duplicate', t => { let state = worker.getWorkerState(); t.is(state.repositories.length, 0); t.is(state.repositories.find(repo => repo.url ==='test') !== undefined, false); worker.addRepo('test'); worker.addRepo('test'); state = worker.getWorkerState(); t.is(state.repositories.length, 1); t.is(state.repositories.find(repo => repo.url ==='test') !== undefined, true); });
test('getRepoDetailsByUrl', t => { delete require.cache[require.resolve(workerPath)]; let worker = require(workerPath); worker.addRepo('getRepoDetailsByUrl').then(() => { worker.getRepoDetailsByUrl('getRepoDetailsByUrl').then(repo => { t.is(repo.url, 'getRepoDetailsByUrl'); }); }); });
test('getAllRepoDetails', t => { delete require.cache[require.resolve(workerPath)]; let worker = require(workerPath); worker.forceGithubAvailable(true); worker.addRepo('repo1') .then(() => worker.addRepo('repo2')) .then(() => worker.addRepo('repo3')) .then(() => worker.getAllRepoDetails('getRepoDetailsByUrl')) .then(({currentPRMap}) => { t.is(currentPRMap.size, 2); worker.pageVisibilityChanged(true); let state = worker.getWorkerState(); t.is(state.currentPRMap, state.newPRMap); }); });
return new Promise(function(resolve) { worker.forceGithubAvailable(true); let state = worker.getWorkerState(); t.is(state.repositories.length, 0); t.is(state.repositories.find(repo => repo.url ==='test') !== undefined, false); worker.self.postMessage = function([messageType, msgDataString]) { if (messageType === 'drawPlaceholderRepo') { let {postData} = JSON.parse(msgDataString); t.is(postData.url, 'test'); t.is(state.repositories.length, 1); t.is(state.repositories.find(repo => repo.url ==='test') !== undefined, true); resolve(); } }; worker.addRepo('test'); });
test('web worker removeRepo', t => { delete require.cache[require.resolve(workerPath)]; let worker = require(workerPath); worker.initAPIVariables({ accessToken: 'asdf', apiUrl: 'https://api.github.com', githubUrl: 'https://github.com/' }); worker.addRepo('test').then(() => { let state = worker.getWorkerState(); t.is(state.repositories.length, 1); t.is(state.repositories.find(repo => repo.url ==='test') === undefined, false); let repoToRemove = state.repositories[0].url; worker.removeRepo(repoToRemove); state = worker.getWorkerState(); t.is(state.repositories.length, 0); t.is(state.repositories.find(repo => repo.url ==='test') === undefined, true); }); });
.then(() => worker.addRepo('repo3'))