Allow more rows to be generated at a custom index

This commit is contained in:
Ian Coleman
2017-11-21 12:06:56 +11:00
parent f487fea9b8
commit 9183f9f658
3 changed files with 66 additions and 3 deletions

View File

@@ -622,9 +622,12 @@
</table>
</div>
</div>
<span>Show more rows</span>:
<span>Show</span>
<input type="number" class="rows-to-add" value="20">
<button class="more">Show</button>
<button class="more">more rows</button>
<span>starting from index</span>
<input type="number" class="more-rows-start-index">
<span>(leave blank to generate from next index)</span>
<hr>

View File

@@ -80,6 +80,7 @@
DOM.addresses = $(".addresses");
DOM.rowsToAdd = $(".rows-to-add");
DOM.more = $(".more");
DOM.moreRowsStartIndex = $(".more-rows-start-index");
DOM.feedback = $(".feedback");
DOM.tab = $(".derivation-type a");
DOM.indexToggle = $(".index-toggle");
@@ -750,12 +751,19 @@
}
function showMore() {
var start = DOM.addresses.children().length;
var rowsToAdd = parseInt(DOM.rowsToAdd.val());
if (isNaN(rowsToAdd)) {
rowsToAdd = 20;
DOM.rowsToAdd.val("20");
}
var start = parseInt(DOM.moreRowsStartIndex.val())
if (isNaN(start)) {
start = lastIndexInTable() + 1;
}
else {
var newStart = start + rowsToAdd;
DOM.moreRowsStartIndex.val(newStart);
}
if (rowsToAdd > 200) {
var msg = "Generating " + rowsToAdd + " rows could take a while. ";
msg += "Do you want to continue?";
@@ -1291,6 +1299,14 @@
}
}
function lastIndexInTable() {
var pathText = DOM.addresses.find(".index").last().text();
var pathBits = pathText.split("/");
var lastBit = pathBits[pathBits.length-1];
var lastBitClean = lastBit.replace("'", "");
return parseInt(lastBitClean);
}
var networks = [
{
name: "BCH - Bitcoin Cash",

View File

@@ -2577,4 +2577,48 @@ it('Can use bitpay format for bitcoin cash addresses', function(done) {
});
});
// End of tests ported from old suit, so no more comments above each test now
it('Can generate more addresses from a custom index', function(done) {
var expectedIndexes = [
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59
];
driver.findElement(By.css('.phrase'))
.sendKeys("abandon abandon ability");
driver.sleep(generateDelay).then(function() {
// Set start of next lot of rows to be from index 40
// which means indexes 20-39 will not be in the table.
driver.findElement(By.css('.more-rows-start-index'))
.sendKeys("40");
driver.findElement(By.css('.more'))
.click();
driver.sleep(generateDelay).then(function() {
// Check actual indexes in the table match the expected pattern
driver.findElements(By.css(".index"))
.then(function(els) {
expect(els.length).toBe(expectedIndexes.length);
var testRowAtIndex = function(i) {
if (i >= expectedIndexes.length) {
done();
}
else {
els[i].getText()
.then(function(actualPath) {
var noHardened = actualPath.replace(/'/g, "");
var pathBits = noHardened.split("/")
var lastBit = pathBits[pathBits.length-1];
var actualIndex = parseInt(lastBit);
var expectedIndex = expectedIndexes[i];
expect(actualIndex).toBe(expectedIndex);
testRowAtIndex(i+1);
});
}
}
testRowAtIndex(0);
});
});
});
});
});