From 065607af5de681ccccee68ce8a6407e34bcdb1a1 Mon Sep 17 00:00:00 2001 From: "David E. Perez Negron R." Date: Wed, 24 Apr 2024 18:21:13 -0600 Subject: [PATCH] Update with .env and Cleanup tests --- test/DCO2s.t.sol | 156 +++++++++++++---------------------------------- 1 file changed, 42 insertions(+), 114 deletions(-) diff --git a/test/DCO2s.t.sol b/test/DCO2s.t.sol index 97c63e5..a05ffc5 100644 --- a/test/DCO2s.t.sol +++ b/test/DCO2s.t.sol @@ -3,16 +3,19 @@ pragma solidity ^0.8.23; import {Test, console} from "forge-std/Test.sol"; import {DCO2s} from "../src/DCO2s.sol"; -//import {nfts} from "../.env"; contract DCO2sTest is Test { DCO2s public dco2sc; + string public name; + string public symbol; string public baseURI; string[] public nfts; function setUp() public { - baseURI = "https://gateway.decentralizedscience.org/ipfs/"; - dco2sc = new DCO2s(address(this), address(this), baseURI, "DCO2s", "DCO2"); + baseURI = vm.envString("BASE_URI"); + name = vm.envString("NAME"); + symbol = vm.envString("SYMBOL"); + dco2sc = new DCO2s(address(this), address(this), baseURI, name, symbol); // Import nfts array from .env and split by ' ' nfts = vm.envString("nfts", ' '); } @@ -25,11 +28,11 @@ contract DCO2sTest is Test { } // @notice: here we test getting the Base and full URIS - function testGetURI68() public { - dco2sc.safeMint(address(0x1), nfts[68]); + function testGetURI15() public { + dco2sc.safeMint(address(0x1), nfts[15]); string memory tokenURI = dco2sc.tokenURI(0); //console.log(tokenURI); - assertEq(tokenURI, string.concat(baseURI, nfts[68])); + assertEq(tokenURI, string.concat(baseURI, nfts[15])); } @@ -63,54 +66,46 @@ contract DCO2sTest is Test { } - // @notice use the basic Enumerable property tokenByIndex + // @notice: use the basic Enumerable property tokenByIndex + // @notice: All nfts in the .env function testEnumerableTokenByIndex() public { - string[5] memory nftsSlice; - for(uint i = 0; i < 5; i++){ - nftsSlice[i] = nfts[i]; + for(uint i; i < nfts.length; i++){ + dco2sc.safeMint(address(1), nfts[i]); } - for(uint i; i < nftsSlice.length; i++){ - dco2sc.safeMint(address(1), nftsSlice[i]); - } - - assertEq(nftsSlice.length, dco2sc.totalSupply()); + assertEq(nfts.length, dco2sc.totalSupply()); // Test for token By Index 4 uint tokenID = dco2sc.tokenByIndex(4); - assertEq(nftsSlice[4], nftsSlice[tokenID]); + assertEq(nfts[4], nfts[tokenID]); // Test for token By Index 3 tokenID = dco2sc.tokenByIndex(3); - assertEq(nftsSlice[3], nftsSlice[tokenID]); + assertEq(nfts[3], nfts[tokenID]); } // @notice use the basic Enumerable property TokenOfOwnerByIndex + // @notice: All nfts in the .env function testEnumerableTokenOfOwnerByIndex() public { - string[5] memory nftsSlice; - for(uint i = 0; i < 5; i++){ - nftsSlice[i] = nfts[i]; - } - - for(uint i; i < nftsSlice.length; i++){ + // mints pair to address 1 + for(uint i; i < nfts.length; i++){ if(i % 2 == 0) { - dco2sc.safeMint(address(1), nftsSlice[i]); + dco2sc.safeMint(address(1), nfts[i]); } else { - dco2sc.safeMint(address(2), nftsSlice[i]); + dco2sc.safeMint(address(2), nfts[i]); } } - // Get the balance of NFTs of the account 1 + // Get the balance of NFTs of the account 1 pairs are 8 uint account1_balance = dco2sc.balanceOf(address(1)); - assertEq(account1_balance, 3); + assertEq(account1_balance, 8); for(uint i; i < account1_balance; i++){ // get the TokenID from account NFTs Index uint token_id = dco2sc.tokenOfOwnerByIndex(address(1), i); - // console.log("Token ID ", token_id, " has URI: ", dco2sc.tokenURI(token_id)); - assertEq(dco2sc.tokenURI(token_id), string.concat(baseURI, nftsSlice[token_id])); + assertEq(dco2sc.tokenURI(token_id), string.concat(baseURI, nfts[token_id])); } } @@ -121,93 +116,26 @@ contract DCO2sTest is Test { dco2sc.safeMint(address(0), nfts[0]); } - // // @notice testMintAll mints all the NFTs URIS and distribute to wallets - // // then it assertEq that it is properly minted to the wallet and the correct URI - // function testMintAll() public { - // string[68] memory mintedNFTs; + // @notice testMintAll mints all the NFTs URIS and distribute to wallets + // then it assertEq that it is properly minted to the wallet and the correct URI + function testMintAll() public { + //string[15] memory mintedNFTs; - // for(uint i = 0; i < 68; i++){ - // mintedNFTs[i] = nfts[i]; - // } - // //= ["bafkreibc6p3y36yjmeqqnttqfrpb2yttxa6aonoywxwdxl7nqym4jj3jwa", - // // "bafkreidcf5baqb5wevs6avyd7dtd3j7rzrq65uyqasj4dbkcy6na4ig3ay", - // // "bafkreibffiehtv4ntajq5vjwpl7q44i6cjbg54lm5hkoa665ue2taspiyu", - // // "bafkreifqztiwfutjik4wfs3gyfdyrff7cugi4mcctluunrrbp5cgareisq", - // // "bafkreiglyvpxwrxdvruit3oiw2lvkxqqxn7ojquw4gl7ck6szewz6t6cam", - // // "bafkreiakd4xtuw3toe4wnez2ndmdadqv3oszaoffoha4tw2hqr3sjnsmge", - // // "bafkreigx2isd63yflf6toeg7nfqw33hf6vvllcxfnzn7ymd7u4okflivbi", - // // "bafkreidrsjlcajbz35crgs6dpog6ophcochrgrrqgejxfye4m6lbw5mdde", - // // "bafkreihwi7xoak3p3mmofdln4pc4wqkkbdwyyz2yxbpfvpzvvxa2ogbaxi", - // // "bafkreiclhcy3n5iq3ka2jwxhvedpdewonwoujgu77y7rgnkddheioemcsi", - // // "bafkreic3vdshhst65qtzkwfbqzfpmuqbsyizxguarixobrp3scwaiq5jre", - // // "bafkreifv5xyis2kuveyfoc662zxeol2zdyiue4h3sznosef7ihrsmjexwm", - // // "bafkreifqyk6255h2ppobog33fzifsosbcnn2tanqi3ezjcwis6gya4sfoi", - // // "bafkreigend4j42oanbjxltwuyizmufdhqbngf6fbe5hgnlxs3yhzgpvay4", - // // "bafkreiextgvmtg23rx3lq2s6psebqln6ojlgosc544jch72baq3yt3dryu", - // // "bafkreihlkfwt5ntpnwf3c37d4lsf4y6czxojyffqet5ujvzw374x7ainoi", - // // "bafkreievuhvdru7p3lxht3of67xdri6urrrsjxr2e6rzulwg2574ye3dji", - // // "bafkreidqa6xuekp34iu7cqmngdbe7knzia47s7gwn3zczr5vwso57nrtx4", - // // "bafkreiglo5jhcem4ogswylqi37bx2wmn65cy6blwbwxcvuzklpfr6vhmke", - // // "bafkreibz353bqq76gjvswt7eebyffi3nkke5bzrvsjzem3is6x4ptpnqvi", - // // "bafkreif2dohcblqea4t4z5qjfxtdzz6vmtxs4325yuf6jz6e2sdxf366ni", - // // "bafkreib265gzsjgprktabq4c3glrdl5noebegibwupchwuwbswohum3ap4", - // // "bafkreicfaqdpgnrnebvqxyvg7s7eqgipbw5bg3hdticvghcpivjmvjx364", - // // "bafkreiabmontlvf2ah3vngpaf3cmg5ejinyqe6yl5pcl4lfrtvduwnuqcq", - // // "bafkreidvyf5txqmcizexdexdaqsbr4fxclcpfn6npgkngm6rclaszjll4q", - // // "bafkreib4wysvkug2bbzfpuey7hazqkezqtstv2n3yzccw7z77n2urcb6ye", - // // "bafkreiailtryy3cg7anain2evahiaox6babpxd4dp4kl67jqeoabh6ndwi", - // // "bafkreid32knw3kptbognoamqxcu5a2r3hzlzcb5a4tbouzfob5j2hhww6y", - // // "bafkreifprm74saobjxnang72smgtrevwvsxyps46kbc6ehhk3veqqpprte", - // // "bafkreif6wbrqmlqihivdasweh5opjjixinupsqfqmyflo2he3tdibx26mq", - // // "bafkreig75yruw2hkfqdfhmjm7lfenojvgv6emxfgkwolajhnjsokcc3vv4", - // // "bafkreihxvojrjrzigupwtncsrwsswju4cwh2sz5z2evqt6qlgcd7siptqi", - // // "bafkreifmcjsvyou6ml6khq7d7iglchh4a4clqvzf7t4ky6sxyoml6ixvj4", - // // "bafkreieyrrsp4lgoqqfrynp64cdif2jrnnzwc3lv4j5wlm4glszhjltp24", - // // "bafkreicpw7ytfbzakmg23wkuhrpumcdtoh75po7j6fu627vru3hgl6kpay", - // // "bafkreifrdsfw2vazhleexjkcd6f6t73aqvrobq5nwyeqa2rmykqtsef2o4", - // // "bafkreicdmr2bet7omb3u5zrgvubq2nxwbzlo6kqkjy6swey4u5yavqsf3y", - // // "bafkreihupkyebtf3rybziatp7p242gbyza7rf7s6noj3wun6fwd2sr6qhq", - // // "bafkreibrlybbkiiutohvwj3q6j3drs7llaxliz7dhiflipq34e4guzcbhu", - // // "bafkreieuseajoxy4ouo2u2upxz7lssoivcb63r64ada6n6pbxtupwnp6fa", - // // "bafkreid53wwrea4erd5hm7gjgkgpp6oddjqnctffewf3nay2grs2nhmh5y", - // // "bafkreigzrzugp7aqn6u6yqyaeu7v5lou4ldvkc5gfstr3p3otaf4afg56y", - // // "bafkreibqdmemeh57bkszki7oypxelqlihuy26eaeoi664epsqr5543q3je", - // // "bafkreiga4wd7vxjn46eovsktpmg2ugrd545sckdu2ibytvyjmj44rxjo5a", - // // "bafkreibef52rjpwrhfoaewbb4x7w5nthexsxzanoh5g7l3wzikubw6t4j4", - // // "bafkreihbkxbmbxk5xcujr3vwoo3qnnkubqmrkytjml76f2be4rfdi3kwiy", - // // "bafkreibh5fgjwuzcnyrpdcyxzpcjndrppeelgrjccfq2s7jg52dvcmk4cy", - // // "bafkreiea7k7u6kq76a4zysht5ri62jabvbuf6uk2emptxua2lkfmpleqqu", - // // "bafkreibietep53mtdq5kpk442x5djcaiwkirgltemomaaa6in6j375agfe", - // // "bafkreifwho3vue5x3yus3bcl2vs46b2ehgnhokmk4363dyptcqkcjuwtwm", - // // "bafkreicb662izefhwuvv7u6yh4rav76od4r4nkm6h7mgkflb77bt5wkimm", - // // "bafkreihlls4pkcjtjaasxmvctafrslucawm5lrffz5ho57azdaiapo2evq", - // // "bafkreih4ncyemyptx3nxe5qvxn6keiv7m36avhg5t2z6uvohs22he6q5zi", - // // "bafkreibxx4deq65og67be3oliqz2u4j6tacczarf74lbusbblflnp3c46a", - // // "bafkreibyegb4yn3yzxsnq5rggwra2x4nnd4eojvzdtxnl6lixq4f7cbdmm", - // // "bafkreiaygw7455yt6siqsqjs5bfhrrbxa5ezlktcwdnyeqikuq66irm5me", - // // "bafkreiaqj7xiukqacs6genv7s5bewucuag3d2lnn6kwqmkcnsngtrn2p5i", - // // "bafkreigm4czjurpcdgqapwj3ilzg7o3qx6wiyfd74hitm5hklyxbx52ujy", - // // "bafkreifgtz7hpaeuendeah37ny363ppx3klctkycol665lk65nkolvtj7q", - // // "bafkreicje4abjqh52oz35ble2yvasjkxemsptjnvla73greqzz5jwfkhiu", - // // "bafkreiebelxzjwxdvyvvj6cmqcn6cdnetrfxnw4bf4zaqkbh4myvu3a6qu", - // // "bafkreibg5fatnupr4u66zp5xabgyav65aik3bwv7ms73xjig37qz7ffura", - // // "bafkreigkgv36pc4gc35vlm7axlrtvbpwxl54pnq6mjovvre7n6vsqyfrp4", - // // "bafkreiekiefyw55qxsoqvbv2zbrjhbvrybo5qsamhsvk6rst4kzxmrxioq", - // // "bafkreifv2zmtj54mezqqbdfcc6z2anexctcumvs64abo2cvqgo47d6qk4q", - // // "bafkreibjlhludpjooxikum7cjw7c6rczgwbekaiusjm4xu5nyodwr3zjnm", - // // "bafkreib5z3fllsfv32fjhgvkao3csi4r2dhsegji52aqmfp4x2s6qb7734", - // // "bafkreiajnquwgsapxpesee4yyjz3hbwkopbr5pkpydbhjo4iwcpxolzrfy"]; - // //assign to 68 addresses + //for(uint i = 0; i < 15; i++){ + // mintedNFTs[i] = nfts[i]; + //} - // for ( uint i = 0; i < mintedNFTs.length; i++) { - // dco2sc.safeMint(address(this), mintedNFTs[i]); - // } - // // assert that each NFT gets minted with the proper URI - // // and addrress - // for ( uint i; i < mintedNFTs.length; i++) { - // assertEq(mintedNFTs[i], dco2sc.tokenURI(token_id)); - // } - // } + //assign to 15 addresses each one 1 NFT + for (uint i; i < nfts.length; i++) { + dco2sc.safeMint(address(uint160(i+1)), nfts[i]); + } + // assert that each NFT gets minted with the proper URI + // and address + for (uint i; i < nfts.length; i++) { + uint token_id = dco2sc.tokenOfOwnerByIndex(address(uint160(i+1)), 0); + assertEq(string.concat(baseURI, nfts[i]), dco2sc.tokenURI(token_id)); + } + } }