From d09dd32e556a6bd6ebb3a5e9f244c0ed0e25e91d Mon Sep 17 00:00:00 2001 From: pscott Date: Fri, 18 Jun 2021 11:23:26 +0200 Subject: [PATCH] Add deposit test; change timeout setting --- README.md | 54 +++++++++++++++++- tests/snapshots/deposit/nanos/accept.png | Bin 0 -> 582 bytes tests/snapshots/deposit/nanos/address_1.png | Bin 0 -> 772 bytes tests/snapshots/deposit/nanos/address_2.png | Bin 0 -> 813 bytes tests/snapshots/deposit/nanos/address_3.png | Bin 0 -> 590 bytes tests/snapshots/deposit/nanos/amount.png | Bin 0 -> 431 bytes .../snapshots/deposit/nanos/data_present.png | Bin 0 -> 518 bytes tests/snapshots/deposit/nanos/fees.png | Bin 0 -> 619 bytes tests/snapshots/deposit/nanos/review.png | Bin 0 -> 541 bytes tests/snapshots/deposit/nanox/accept.png | Bin 0 -> 667 bytes tests/snapshots/deposit/nanox/address.png | Bin 0 -> 1256 bytes tests/snapshots/deposit/nanox/amount.png | Bin 0 -> 530 bytes .../snapshots/deposit/nanox/data_present.png | Bin 0 -> 593 bytes tests/snapshots/deposit/nanox/fees.png | Bin 0 -> 745 bytes tests/snapshots/deposit/nanox/review.png | Bin 0 -> 633 bytes tests/src/approve.test.js | 6 +- tests/src/deposit.test.js | 31 +++++----- tests/src/generic.js | 5 +- tests/src/send.test.js | 7 +-- tests/src/send_bsc.test.js | 6 +- 20 files changed, 84 insertions(+), 25 deletions(-) create mode 100644 tests/snapshots/deposit/nanos/accept.png create mode 100644 tests/snapshots/deposit/nanos/address_1.png create mode 100644 tests/snapshots/deposit/nanos/address_2.png create mode 100644 tests/snapshots/deposit/nanos/address_3.png create mode 100644 tests/snapshots/deposit/nanos/amount.png create mode 100644 tests/snapshots/deposit/nanos/data_present.png create mode 100644 tests/snapshots/deposit/nanos/fees.png create mode 100644 tests/snapshots/deposit/nanos/review.png create mode 100644 tests/snapshots/deposit/nanox/accept.png create mode 100644 tests/snapshots/deposit/nanox/address.png create mode 100644 tests/snapshots/deposit/nanox/amount.png create mode 100644 tests/snapshots/deposit/nanox/data_present.png create mode 100644 tests/snapshots/deposit/nanox/fees.png create mode 100644 tests/snapshots/deposit/nanox/review.png diff --git a/README.md b/README.md index 4e2f7ec..c82e7a4 100644 --- a/README.md +++ b/README.md @@ -4,4 +4,56 @@ Ledger Blue is not maintained anymore, but the app can still be compiled for thi This app follows the specification available in the `doc/` folder -To compile it and load it on a device, have a look here: https://ledger.readthedocs.io/en/latest/userspace/getting_started.html \ No newline at end of file +To compile it and load it on a device, have a look here: https://ledger.readthedocs.io/en/latest/userspace/getting_started.html + +# Testing + +Testing is done via the open-source framework [zemu](https://github.com/Zondax/zemu). + +## Running tests + +First [install yarn](https://classic.yarnpkg.com/en/docs/install/#debian-stable). +Then you can install the project by simply running: +``` +make test +``` +This will run `make install_tests` and `make run_tests` + +To run a specific tests (here the send test): +``` +cd tests +sudo jest --runInBand --detectOpenHandles src/send.test.js +``` + +Make sure you're in the `tests` folder before running `jest` or `yarn test`. + + +## Adding tests + +### Zemu + +To add tests, copy one of the already existing test files in `tests/src/`. +You then need to adapt the `buffer` and `tx` variables to adapt to the APDU you wish to send. + +- Adapt the expected screen flow. Please create a folder under `tests/snapshots` with the name of the test you're performing. +- Then adapt the `ORIGINAL_SNAPSHOT_PATH_PREFIX` with the name of the folder you just created. +- To create the snapshots, modify the `SNAPSHOT_PATH_PREFIX` and set it to be equal to `ORIGINAL_SNAPSHOT_PATH_PREFIX`. +- Run the tests once, this will create all the snapshots in the folder you created. +- Put back your `SNAPSHOT_PATH_PREFIX` to `snapshots/tmp/`. + +Finally make sure you adapt the expected signature! + +### Update binaries + +Don't forget to update the binaries in the test folder. To do so, compile with those environement variables: +``` +make DEBUG=1 ALLOW_DATA=1 +``` + +Then copy the binary to the `tests/elfs` folder (in this case, compiled with SDK for nanoS): +``` +cp bin/app.elf tests/elfs/ethereum_nanos.elf +``` + +Repeat the operation for a binary compiled with nanoX SDK and change for `ethereum_nanox.elf`. + diff --git a/tests/snapshots/deposit/nanos/accept.png b/tests/snapshots/deposit/nanos/accept.png new file mode 100644 index 0000000000000000000000000000000000000000..3158ea690450f2b8c85c12004b002b02e7b02539 GIT binary patch literal 582 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 literal 0 HcmV?d00001 diff --git a/tests/snapshots/deposit/nanos/amount.png b/tests/snapshots/deposit/nanos/amount.png new file mode 100644 index 0000000000000000000000000000000000000000..37538c73e5c254a2244512b8e8ead582a0d0d3cf GIT binary patch literal 431 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFff*Rx;TbZFupzL-FMr8!TI3v zwu=AE#RoZ@*8DJLR6D1mvvT#3{8-PVU1Ft2y;iSNF^p|**p$^B1`=vJICtF)Jy!?I zMQka{{u^5Wsf-^IyzW~H)Oh(*GH#rFBUNU!n=Pe`_e74A91xrFO3z#zVIe&;mf2`_ z8;}4>?sHAM-oRsIqEKwoyg1V#P1*VImwm0uSu^U69TEhZu?no z+@>w>4UhcyaKwsN?wE;~6TDn;vVA*LYh>St(t%O}$4whu@XIQy$LgdpYZkvG- O!QkoY=d#Wzp$Py{+`C=? literal 0 HcmV?d00001 diff --git a/tests/snapshots/deposit/nanos/data_present.png b/tests/snapshots/deposit/nanos/data_present.png new file mode 100644 index 0000000000000000000000000000000000000000..3bb21d5164ea0c85c0d5e892a30bde63fbe0ba4d GIT binary patch literal 518 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfg9=ba4!+V0?SBXw|-(33}7I@it>tS?pVd>L~^RD12NNk>ZLm`<(IjRFbDh^;F*TB5~t zN;$(~!pwJ@KV+m#kd(4p(%AO$#i7j^HzrC-nejIB@LC(Ct1Pf-YI97>kVxT^Vw<@z zaYAM2VTEEd@p-O?mz(%(_^{sO!iRVh9-|X`Rwqtye0D}`S+H=xzUae!XYNYzrI_)u z8_jO(qwQjOrV5`^dD(d{^G{y*@YU#S@A#$}1_&veA*O+2$ZWx~x9b1t@~t2#6DN&{89r%hPc z*wzb_$XEajJrSl;B~jd$SL*sK-)1oP)}fLtAm=aRbdFQ3%{DV91LK#$)78&qol`;+ E0G;pJw*UYD literal 0 HcmV?d00001 diff --git a/tests/snapshots/deposit/nanos/fees.png b/tests/snapshots/deposit/nanos/fees.png new file mode 100644 index 0000000000000000000000000000000000000000..eafd4a205fbbc07310a250391ab1dc4d4625c365 GIT binary patch literal 619 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfbW;x;TbZFupx_yXdhSgY!XV zv5)`dd)U`xna!KAC?@j0nbFC-kNx*N9u?`m;x*s(vR6g#x#EI5TU^cePCW8dMl9|n z@AP27fO)Zp6*gZqI8hUIxbMuxwK4xxi_Ns%FKtjXHcFSiZd5Jyqh97snR3OJuSoG*-hO!j?6|UE_?_F;x}P^%N}|I^`7K0GVw8TKCJTj z4a<~j-V-r=OBiQXbAOkbuv4aohxfZ!T(-lrq5vb4J=;DkVw`#U;K>Ugk{-75@J??A zN*q0uZDbO|w~BG*b+GQ5h{J7XE^JT+dSdg%hBMB*&1YsyvCZrSI>(pygb%MY&?b-q zMPpO2rQkq_U^e<5CO7e?$xPXq3mIqfXFC9$o3@-0#DSo>ZS5&#Da+bC)3QJzF>$8U z1W7RZDKOJrOfQ=E#GIq2$}?xA{PQ^cALtl!py|L+dINHW!AT#WEADUl6q|C-H*N95 zOrSI7D;b;QoZtbu=zi+cPtk`j7?>)2o)0uS)8Sb#(4zI*ihcqWGtOKb{Sy=!(mdKI;Vst00WT^n*aa+ literal 0 HcmV?d00001 diff --git a/tests/snapshots/deposit/nanos/review.png b/tests/snapshots/deposit/nanos/review.png new file mode 100644 index 0000000000000000000000000000000000000000..2994983f84cf76ab587bac356d5afe297c0e0632 GIT binary patch literal 541 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfcyxba4!+V0?SfW}LV) zm52AlpJ_b2>@)W(0ade0N=>L#7k{_%p*K+Izf)VA1-(C=WRZ-BymEd z+ycg#=gr>vKI=O3DZ$93W?LaYQ1QY>pxO%?Y&v*&<#TnOD>)zbXF6qTB9pT3N&!&M z3dWi9&EBnj=ymuLi`0al9u7OFx80vqnaz8`W+_{Wop8XrwTVif&jYR3;ytm)i1F!7 zQ=gO!i4>qCfqpe|KCDm-Wb*LtR{=T`$TJ28kKEHk+7p0Y?mPqLwy~wK0ofM}OcabW z9iDmf0+pZOF#@XZFL)Sha%TzS%!Lnq%!RyR`IX+l PXlL+r^>bP0l+XkKp5EPW literal 0 HcmV?d00001 diff --git a/tests/snapshots/deposit/nanox/accept.png b/tests/snapshots/deposit/nanox/accept.png new file mode 100644 index 0000000000000000000000000000000000000000..7f2b8c89bd1a94620c388b2ac5599a5860918179 GIT binary patch literal 667 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}EWU|>q}ba4!+V0?R!F;Cf*f#Kl2 zz`9HS>x1^Ee)QO$Vfbu^0!v}qD!w`k`M$>q(WeXTJ`~u@;XhuuVeMlEKe= zblsz=UEx}KqN4T7AKeXEai{i!%hS0be`bg5)1I2%Y#ve=7`PK?+@eoir_xu}u(KC@ zO4CxCy1UCWb=8jGnOg6FCRYU^5c7u@_QxF*4>iefJ62pYe>kS>sng- zHXYoyg@4};pf2xLucNL{gFco6P0<5+2g=uDi=Wfg1@u|?!cS|Gf_{o>X-)6)bOl-% zvcd-FmwN}<<71Adht`B0T>=c@AEBb}pEc_PRnFAWBhT?$36Fb zpXYs^_uTWm)3HapPpi>r_B5Wbx?uhkp5xCx1LKXGp^!%Nbh6RffCEJj7C!s%J;w{0 zg|%Yidd~8DTVUTv<*Ns;a4P+vFFRS4Qy;JO&h~u#%EdeTmphj4E_YOwIg|IEx*OJ zKIxV;L@oomc)x(o-qfFcuIJw7be{MQ|H7n{0oaP<6@pfIycRu_fE9JP#UT=7yFv;+ z`=;#lNi!1}gGY~nqj>srElrqJ55mJ*3SUMPF@R+g@TvutQ1f_iiw{1tt0wf$DYecG z)uOl;MvHm~5XSf#Y!5fdej!VMtUr~pAQl+qbzD>|M_UMvl{qbCS{!Ti;rjrw@{w96 z!9L`W=Sb3}=CLW~Lekp%Ekr~w%%6SO3+CT_wXGTSoWJmCLSaHRs#UU+) z0}(iFoXgu{%;#lGs8omMT^oA31waC`u7nP7tae9dwp1!dOzrLOwUmThGW1NY!ZUb6 zhHfhdJwQ1f4AYZ&GM0o_SaJhOEb}Gnj)-yyMMx9aL}JhwKQx3DXcEASo7KJCiVfE7 zh5pF6fzU)P!bjtomuX_v=oxGcD=pw)^cz0An`@RuKKP<%&=OV*t|hlvf5}kFgBblF zHBd~!jR4phw$J+@<}XMrbB+MFK(wjAw^D$RqkVaC7uFLMBVD)un>vFoZi`9BDuXNO zgA|p}26oTrSBh8;Ez7jb=$SaMoFm=+J%8Oncyx)r^mYx_1G-&?dk|K>OJ#myHg)4+ z=v>1auYJ-kyM!rRA2&=?w=(u|L(5g@NB9N&TLfeFx3w(&^SbZ^ Sx(ohbnns(``mOohGyecLS3DvB literal 0 HcmV?d00001 diff --git a/tests/snapshots/deposit/nanox/amount.png b/tests/snapshots/deposit/nanox/amount.png new file mode 100644 index 0000000000000000000000000000000000000000..1523569e40a93b9193e46d3a8f2bb2f155d4eb71 GIT binary patch literal 530 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}EWU|_uI>Eakt!T9!IV4kwO0PDdw zO!=SQ)i1F*t;2rd0CN-fiA{EQ)^tVGSkAi^)f0E^k=G&5r@KQY6-;mO7Mir7JIUG8 zFJ~vm6(uy+MMrI7A{UQ_S~WJP#tKbrRu|}UP3@&bboV~z)IX089-H(bU-hBi(#=4h0?jrLDO<2; z(Wl#!7A%_7(tWBgEz+tc3(1vXjXY{KruF?xu11{*Q&gxMuKl^>bP0l+XkK D85Zk6 literal 0 HcmV?d00001 diff --git a/tests/snapshots/deposit/nanox/data_present.png b/tests/snapshots/deposit/nanox/data_present.png new file mode 100644 index 0000000000000000000000000000000000000000..8af206fb8bee329630b18eab28a62a14a743147d GIT binary patch literal 593 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}EWU|^E)ba4!+V0?S<;@aC0VhjhL z9X-9|GylruhaC-^0*55Ny}9o7JWTda(LR~u2hC0w?)y-*XO8~y!VPB&8PxTkSHgH3 zDlFn}xLGz#&RuiV>{gO=?#AA2H{7Cg7VB=iDApVr;sfIGgch!zk!3ie>r_g2qt?Ap zpDiH4;E&d#mvy#X%M&`uOFrzNpsyb&ous z1{JQ}u_DA~WsT8PuBoRP=lls;`01pUp4RlP?o+#gcpYnnH`Kz3semmUk)p~0C zsvr7V`&?U3U4GOH@s$6B`LF<3MmX_UF{`f^sK+B3&Rs`(?y62A8ybwK6Em8BSUC~Ef zp9<^j^Ees|vL@)`l0`t1SFDK9$`jS{*D@EK>i_XD`>G$ZQ@xL_eN+x~tLXMF&N`66 zt*5L(+9#i4>DFKRNnK0Jd}?Ohk0dQopt0USVb`UL9xVfki;9X*^)Fyhza0SzLyTC0 e1T9qf8^7&MPVdJ>%gljEg~8L+&t;ucLK6TCbQ=r+ literal 0 HcmV?d00001 diff --git a/tests/snapshots/deposit/nanox/fees.png b/tests/snapshots/deposit/nanox/fees.png new file mode 100644 index 0000000000000000000000000000000000000000..559c1559df2bf4932a40c49802e4ef2f3a8dbc15 GIT binary patch literal 745 zcmcIi-%C?*6uzDRBj|;h0+Z&?G|Q zj`@(|PB(V1wcISzT#G%7!F@;!G6~di>n4E>UC)a^l9|*p`&iQ=L=bZETe(#$* z+Z6H(a)KZfrmF@D_A!`OPRL+=w=p_O5XTlwhF0vU`Ia5O_fU5~;}4 zkR;8zDDMN_flx4DGWK&JR1ZF(-6+n#`mVrfV>IHTDq4u5+_of6N5KjdeQqQXQjI_y zZWTF~#T%oNIPO#3+cD(U;vpOhlqv5d-(s;;_~PLgjL?iN9n*`=aH^$Ez-pOB37m;s z+%Ify6gEHpJ05qL-O(nS&N_{70%51Mk(Cm!a3Q=+F{$7E*pU?)p^|ZEjko3IO6x`6 z8F~O&C-^na41qH?fFu($r6+<4tx59qv)zEO%D=#rEZ>LYd&1iWwi|EH3RSo)smSTY zo(Z6hq;LnS(%P^=+=2W*5s>sTO*TnU&}3lc&LQjKfb+;S!7s|`KB&(3T$>L|b!S$! z&*J6^2?e%MYzPPC(7220!Kj`t!*ltA?YX%WRsvC^vNw`jvjhW?S9Sb;R_QcW2YgZ Hzj5~$7$SK( literal 0 HcmV?d00001 diff --git a/tests/snapshots/deposit/nanox/review.png b/tests/snapshots/deposit/nanox/review.png new file mode 100644 index 0000000000000000000000000000000000000000..8794afe436a71131138e8f80fe7d0d4eca0eb076 GIT binary patch literal 633 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}EWU|@3aba4!+V0?S7Zd@yx<8LGD|NL^HOwMbIhRMr6+gQ$n z$QbOfoPT3l5rg{eO>DO>VIn!5Rge5qUD*pZP3XEG70O~b+m^~6IH{zir*(hjjumT?HZ15`uN79ppw7MWhwRj;G6zmJ zX}t>p31G2LNNZm)gL*#D!l%o%LhK@2Pu*plvu7pO)Rj)DzqfKt&HQjsOG`^nG(I#& z>m8U?E?O@7-eGByRLu%5(W#zGlU4=%T;=4N8nkjp$cm5{t&n?;t*5>`I2-DtRW52D z`Y}^0h?Z-ue|C^NaAm;G;F&;qYmldcfNZU0TvK;*O?@A-!benV@~M!8 zpS { - jest.setTimeout(100000); + jest.setTimeout(TIMEOUT); const sim = new Zemu(NANOS_ELF_PATH); try { @@ -105,7 +105,7 @@ test("Approve DAI tokens nanos", async () => { }); test("Approve DAI token nanox", async () => { - jest.setTimeout(100000); + jest.setTimeout(TIMEOUT); const sim = new Zemu(NANOX_ELF_PATH); try { diff --git a/tests/src/deposit.test.js b/tests/src/deposit.test.js index 139bd0d..b024692 100644 --- a/tests/src/deposit.test.js +++ b/tests/src/deposit.test.js @@ -6,7 +6,7 @@ import Zemu from "@zondax/zemu"; import { TransportStatusError } from "@ledgerhq/errors"; import { expect } from "../jest"; -const {NANOS_ELF_PATH, NANOX_ELF_PATH, sim_options_nanos, sim_options_nanox} = require("generic.js"); +const {NANOS_ELF_PATH, NANOX_ELF_PATH, sim_options_nanos, sim_options_nanox, TIMEOUT} = require("generic.js"); // Adapt this prefix. const ORIGINAL_SNAPSHOT_PATH_PREFIX = "snapshots/deposit/"; @@ -20,7 +20,7 @@ const SNAPSHOT_PATH_NANOX = SNAPSHOT_PATH_PREFIX + "nanox/"; test("Deposit ETH nanos", async () => { - jest.setTimeout(100000); + jest.setTimeout(TIMEOUT); const sim = new Zemu(NANOS_ELF_PATH); try { @@ -28,10 +28,12 @@ test("Deposit ETH nanos", async () => { let transport = await sim.getTransport(); - let buffer = Buffer.from("058000002C8000003C800000010000000000000000F8914585055AE826008306599594CC9A0B7C43DC2A5F023BB9B738E45B0EF6B06E0487B1A2BC2EC50000B864474CF53D0000000000000000000000007D2768DE32B0B80B7A3454C06BDAC94A69DDC7A900000000000000000000000070BC641723FAD48BE2DF6CF63DC6270EE2F897430000000000000000000000000000000000", "hex"); - - // Send transaction + let buffer = Buffer.from("058000002c8000003c800000010000000000000000f8924685028fa6ae008306599594cc9a0b7c43dc2a5f023bb9b738e45b0ef6b06e0488016345785d8a0000b864474cf53d0000000000000000000000007d2768de32b0b80b7a3454c06bdac94a69ddc7a900000000000000000000000070bc641723fad48be2df6cf63dc6270ee2f8974300000000000000000000000000000000", "hex"); let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); + + buffer = Buffer.from("00000000000000000000000000000000018080", "hex"); + tx = transport.send(0xe0, 0x04, 0x80, 0x00, buffer); + let filename; await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); @@ -94,7 +96,7 @@ test("Deposit ETH nanos", async () => { await sim.clickBoth(); await expect(tx).resolves.toEqual( - Buffer.from([ 38, 111, 56, 157, 21, 50, 15, 5, 1, 56, 53, 38, 237, 3, 222, 145, 124, 20, 33, 39, 22, 240, 154, 38, 45, 188, 152, 67, 16, 134, 165, 219, 73, 13, 201, 148, 183, 185, 114, 48, 187, 53, 253, 246, 254, 194, 244, 216, 255, 76, 251, 139, 254, 178, 166, 82, 195, 100, 199, 56, 255, 3, 60, 5, 221, 144, 0]) + Buffer.from([38, 181, 174, 58, 1, 30, 181, 14, 125, 31, 233, 245, 230, 246, 217, 28, 169, 244, 223, 202, 95, 115, 128, 95, 196, 134, 109, 73, 231, 46, 173, 47, 92, 60, 110, 85, 219, 89, 37, 88, 107, 181, 142, 67, 75, 88, 178, 192, 71, 86, 246, 98, 19, 21, 151, 249, 140, 26, 162, 65, 139, 22, 153, 43, 129, 144, 0]) ); } finally { await sim.close(); @@ -102,17 +104,20 @@ test("Deposit ETH nanos", async () => { }); test("Deposit ETH nanox", async () => { - jest.setTimeout(100000); + jest.setTimeout(TIMEOUT); const sim = new Zemu(NANOX_ELF_PATH); try { await sim.start(sim_options_nanox); let transport = await sim.getTransport(); - let buffer = Buffer.from("058000002C8000003C800000010000000000000000F8914585055AE826008306599594CC9A0B7C43DC2A5F023BB9B738E45B0EF6B06E0487B1A2BC2EC50000B864474CF53D0000000000000000000000007D2768DE32B0B80B7A3454C06BDAC94A69DDC7A900000000000000000000000070BC641723FAD48BE2DF6CF63DC6270EE2F897430000000000000000000000000000000000", "hex"); - // Send transaction + let buffer = Buffer.from("058000002c8000003c800000010000000000000000f8924685028fa6ae008306599594cc9a0b7c43dc2a5f023bb9b738e45b0ef6b06e0488016345785d8a0000b864474cf53d0000000000000000000000007d2768de32b0b80b7a3454c06bdac94a69ddc7a900000000000000000000000070bc641723fad48be2df6cf63dc6270ee2f8974300000000000000000000000000000000", "hex"); let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); + + buffer = Buffer.from("00000000000000000000000000000000018080", "hex"); + tx = transport.send(0xe0, 0x04, 0x80, 0x00, buffer); + let filename; await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); @@ -125,9 +130,9 @@ test("Deposit ETH nanox", async () => { // Data present filename = "data_present.png"; - await sim.clickRight(SNAPSHOT_PATH_NANOS + filename); - const data_present = Zemu.LoadPng2RGB(SNAPSHOT_PATH_NANOS + filename); - const expected_data_present = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + await sim.clickRight(SNAPSHOT_PATH_NANOX + filename); + const data_present = Zemu.LoadPng2RGB(SNAPSHOT_PATH_NANOX + filename); + const expected_data_present = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); expect(data_present).toEqual(expected_data_present); // Amount @@ -161,7 +166,7 @@ test("Deposit ETH nanox", async () => { await sim.clickBoth(); await expect(tx).resolves.toEqual( - Buffer.from([ 38, 111, 56, 157, 21, 50, 15, 5, 1, 56, 53, 38, 237, 3, 222, 145, 124, 20, 33, 39, 22, 240, 154, 38, 45, 188, 152, 67, 16, 134, 165, 219, 73, 13, 201, 148, 183, 185, 114, 48, 187, 53, 253, 246, 254, 194, 244, 216, 255, 76, 251, 139, 254, 178, 166, 82, 195, 100, 199, 56, 255, 3, 60, 5, 221, 144, 0]) + Buffer.from([38, 181, 174, 58, 1, 30, 181, 14, 125, 31, 233, 245, 230, 246, 217, 28, 169, 244, 223, 202, 95, 115, 128, 95, 196, 134, 109, 73, 231, 46, 173, 47, 92, 60, 110, 85, 219, 89, 37, 88, 107, 181, 142, 67, 75, 88, 178, 192, 71, 86, 246, 98, 19, 21, 151, 249, 140, 26, 162, 65, 139, 22, 153, 43, 129, 144, 0]) ); } finally { await sim.close(); diff --git a/tests/src/generic.js b/tests/src/generic.js index 0fb103d..59968b4 100644 --- a/tests/src/generic.js +++ b/tests/src/generic.js @@ -18,9 +18,12 @@ const Resolve = require("path").resolve; const NANOS_ELF_PATH = Resolve("elfs/ethereum_nanos.elf"); const NANOX_ELF_PATH = Resolve("elfs/ethereum_nanox.elf"); +const TIMEOUT = 1000000; + module.exports = { NANOS_ELF_PATH, NANOX_ELF_PATH, sim_options_nanos, - sim_options_nanox + sim_options_nanox, + TIMEOUT, } \ No newline at end of file diff --git a/tests/src/send.test.js b/tests/src/send.test.js index 80bca1e..37cbdee 100644 --- a/tests/src/send.test.js +++ b/tests/src/send.test.js @@ -6,7 +6,7 @@ import Zemu from "@zondax/zemu"; import { TransportStatusError } from "@ledgerhq/errors"; import { expect } from "../jest"; -const {NANOS_ELF_PATH, NANOX_ELF_PATH, sim_options_nanos, sim_options_nanox} = require("generic.js"); +const {NANOS_ELF_PATH, NANOX_ELF_PATH, sim_options_nanos, sim_options_nanox, TIMEOUT} = require("generic.js"); const ORIGINAL_SNAPSHOT_PATH_PREFIX = "snapshots/send/"; const SNAPSHOT_PATH_PREFIX = "snapshots/tmp/"; @@ -17,9 +17,8 @@ const ORIGINAL_SNAPSHOT_PATH_NANOX = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanox/"; const SNAPSHOT_PATH_NANOS = SNAPSHOT_PATH_PREFIX + "nanos/"; const SNAPSHOT_PATH_NANOX = SNAPSHOT_PATH_PREFIX + "nanox/"; - test("Transfer nanos", async () => { - jest.setTimeout(100000); + jest.setTimeout(TIMEOUT); const sim = new Zemu(NANOS_ELF_PATH); try { @@ -108,7 +107,7 @@ test("Transfer nanos", async () => { }); test("Transfer nanox", async () => { - jest.setTimeout(100000); + jest.setTimeout(TIMEOUT); const sim = new Zemu(NANOX_ELF_PATH); try { diff --git a/tests/src/send_bsc.test.js b/tests/src/send_bsc.test.js index e0a8700..dda50a3 100644 --- a/tests/src/send_bsc.test.js +++ b/tests/src/send_bsc.test.js @@ -6,7 +6,7 @@ import Zemu from "@zondax/zemu"; import { TransportStatusError } from "@ledgerhq/errors"; import { expect } from "../jest"; -const {NANOS_ELF_PATH, NANOX_ELF_PATH, sim_options_nanos, sim_options_nanox} = require("generic.js"); +const {NANOS_ELF_PATH, NANOX_ELF_PATH, sim_options_nanos, sim_options_nanox, TIMEOUT} = require("generic.js"); const ORIGINAL_SNAPSHOT_PATH_PREFIX = "snapshots/send_bsc/"; const SNAPSHOT_PATH_PREFIX = "snapshots/tmp/"; @@ -19,7 +19,7 @@ const SNAPSHOT_PATH_NANOX = SNAPSHOT_PATH_PREFIX + "nanox/"; test("Transfer bsc nanos", async () => { - jest.setTimeout(100000); + jest.setTimeout(TIMEOUT); const sim = new Zemu(NANOS_ELF_PATH); try { @@ -116,7 +116,7 @@ test("Transfer bsc nanos", async () => { }); test("Transfer bsc nanox", async () => { - jest.setTimeout(100000); + jest.setTimeout(TIMEOUT); const sim = new Zemu(NANOX_ELF_PATH); try {