]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/BIP39.git/blobdiff - tests/spec/tests.js
Add bitcoin regtest params
[perso/Immae/Projets/Cryptomonnaies/BIP39.git] / tests / spec / tests.js
index fc71353e330b0460a2c15046a71a4898e0354e0e..260ff2c73a72b9eadfb44e6047387de18784bf14 100644 (file)
@@ -412,6 +412,13 @@ it('Allows selection of bitcoin testnet', function(done) {
     };
     testNetwork(done, params);
 });
+it('Allows selection of bitcoin regtest', function(done) {
+    var params = {
+        selectText: "BTC - Bitcoin RegTest",
+        firstAddress: "mucaU5iiDaJDb69BHLeDv8JFfGiyg2nJKi",
+    };
+    testNetwork(done, params);
+});
 it('Allows selection of litecoin', function(done) {
     var params = {
         selectText: "LTC - Litecoin",
@@ -3701,7 +3708,7 @@ it('Can generate BIP141 addresses with P2WSH semanitcs', function(done) {
     driver.executeScript(function() {
         $(".bip141-semantics option[selected]").removeAttr("selected");
         $(".bip141-semantics option").filter(function(i,e) {
-            return $(e).html() == "P2WSH";
+            return $(e).html() == "P2WSH (1-of-1 multisig)";
         }).prop("selected", true);
         $(".bip141-semantics").trigger("change");
     });
@@ -3712,8 +3719,10 @@ it('Can generate BIP141 addresses with P2WSH semanitcs', function(done) {
         .getAttribute("value")
         .then(function(rootKey) {
             expect(rootKey).toBe("ZprvAhadJRUYsNge9uHspaggavxU1BUQ8QwfT4Z9UGq5sKF2mSt1mVy8EckLAaoBdmLHyP5eYDJ3LxtmzMNnLg2MRFe7QN2ueF4NCH4s5PrCDR6");
-            // TODO check first address
-            done();
+            getFirstAddress(function(address) {
+                expect(address).toBe("bc1q2qhee847pv438tgg8hc7mjy38n8dklleshettn344l0tgs0kj5hskz9p9r");
+                done();
+            });
         })
     });
 });
@@ -3725,7 +3734,7 @@ it('Can generate BIP141 addresses with P2WSH-in-P2SH semanitcs', function(done)
     driver.executeScript(function() {
         $(".bip141-semantics option[selected]").removeAttr("selected");
         $(".bip141-semantics option").filter(function(i,e) {
-            return $(e).html() == "P2WSH nested in P2SH";
+            return $(e).html() == "P2WSH nested in P2SH (1-of-1 multisig)";
         }).prop("selected", true);
         $(".bip141-semantics").trigger("change");
     });
@@ -3736,8 +3745,10 @@ it('Can generate BIP141 addresses with P2WSH-in-P2SH semanitcs', function(done)
         .getAttribute("value")
         .then(function(rootKey) {
             expect(rootKey).toBe("YprvANkMzkodih9AJc6kzDu4NqrxqDKxBnxAXx2vgswCVJs9iM4nWqoZcZ6C9NqbdrgNZjxqnjhUtJYE74mDcycLd1xWY2LV4LEsvZ1DgqxuAKe");
-            // TODO check first address
-            done();
+            getFirstAddress(function(address) {
+                expect(address).toBe("343DLC4vGDyHBbBr9myL8zzZA1MdN9TM1G");
+                done();
+            });
         })
     });
 });
@@ -3750,7 +3761,7 @@ it('Uses Vprv for bitcoin testnet p2wsh', function(done) {
     driver.executeScript(function() {
         $(".bip141-semantics option[selected]").removeAttr("selected");
         $(".bip141-semantics option").filter(function(i,e) {
-            return $(e).html() == "P2WSH";
+            return $(e).html() == "P2WSH (1-of-1 multisig)";
         }).prop("selected", true);
         $(".bip141-semantics").trigger("change");
     });
@@ -3774,7 +3785,7 @@ it('Uses Uprv for bitcoin testnet p2wsh-in-p2sh', function(done) {
     driver.executeScript(function() {
         $(".bip141-semantics option[selected]").removeAttr("selected");
         $(".bip141-semantics option").filter(function(i,e) {
-            return $(e).html() == "P2WSH nested in P2SH";
+            return $(e).html() == "P2WSH nested in P2SH (1-of-1 multisig)";
         }).prop("selected", true);
         $(".bip141-semantics").trigger("change");
     });
@@ -4239,7 +4250,7 @@ it('Converts mnemonics into raw entropy', function(done) {
         driver.findElement(By.css('.entropy'))
             .getAttribute("value")
             .then(function(entropy) {
-                expect(entropy).toBe("00000000000000000000000000000001");
+                expect(entropy).toBe("00000001");
                 driver.findElement(By.css('.phrase'))
                     .getAttribute("value")
                     .then(function(phrase) {
@@ -4281,4 +4292,48 @@ it('Shows split prase cards', function(done) {
     });
 });
 
+// It allows manually specifying the entropy type
+it('Allows entropy type to be manually selected', function(done) {
+    driver.findElement(By.css('.use-entropy'))
+        .click();
+    // use decimal entropy
+    driver.findElement(By.css('.entropy'))
+        .sendKeys("91");
+    // manually change to binary entropy
+    driver.executeScript(function() {
+        $(".entropy-container input[value='binary']").click();
+    });
+    driver.sleep(entropyFeedbackDelay).then(function() {
+        driver.findElement(By.css('.entropy-container'))
+            .getText()
+            .then(function(text) {
+                // overide 91 to be just 1
+                var key = "Filtered Entropy";
+                var value = "1";
+                var reText = key + "\\s+" + value;
+                var re = new RegExp(reText);
+                expect(text).toMatch(re);
+                // overide automatic decimal to binary
+                var key = "Entropy Type";
+                var value = "binary";
+                var reText = key + "\\s+" + value;
+                var re = new RegExp(reText);
+                expect(text).toMatch(re);
+                // overide 2 events to 1
+                var key = "Event Count";
+                var value = 1;
+                var reText = key + "\\s+" + value;
+                var re = new RegExp(reText);
+                expect(text).toMatch(re);
+                // overide log2(10)*2 bits to 1 bit
+                var key = "Total Bits";
+                var value = 1;
+                var reText = key + "\\s+" + value;
+                var re = new RegExp(reText);
+                expect(text).toMatch(re);
+                done();
+            });
+    });
+});
+
 });