// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; import { Test, console2 } from "forge-std/Test.sol"; import { DappIndexer } from "src/DappIndexer.sol"; import { CIDStorage } from "src/CIDStorage.sol"; contract DappIndexerTest is Test { DappIndexer public dappIdxr; string[] public dappsURI; address public owner; function setUp() public { dappIdxr = new DappIndexer(address(this), address(this)); dappsURI = vm.envString("dapps", ' '); owner = vm.envAddress("ACC0"); } // Test adding a dapp that doesn't exist function testAddDapp() public { bytes32 dapp_name = bytes32("Dapp01"); bytes32 CID1; bytes32 CID2; (CID1, CID2) = CIDStorage.stringToBytes32Pair(dappsURI[0]); // Add Dapp console2.log("Dapp Name is:"); console2.logBytes32(dapp_name); console2.log("Bytes32 first:"); console2.logBytes32(CID1); console2.log("Bytes32 second:"); console2.logBytes32(CID2); console2.log(CIDStorage.bytes32PairToString(CID1, CID2)); dappIdxr.addDapp(dapp_name, DappIndexer.PackedCID(CID1, CID2)); // retrive Dapp DappIndexer.PackedCID memory dapp1 = dappIdxr.getDapp(dapp_name); assertEq(CID1, dapp1.CID1); assertEq(CID2, dapp1.CID2); // reconstruct the CID and verify string memory retrivedDappURI = CIDStorage.bytes32PairToString(dapp1.CID1, dapp1.CID2); assertEq(dappsURI[0], retrivedDappURI); } //## ToDo ISSUE #2 // //### Features testing // //- [x] test adding a dapp and retrive it. (addDapp, getDapp) // //- [ ] test removing a dapp that exists (verify dapps and dapp_names) //- [ ] test dappExists (lower, upper, fuzz) //- [ ] test removing a dapp that doesn't exist //- [ ] test getting that names (listDappNames) //- [ ] test getDappIndex (lower, upper, fuzz) //- [ ] check if dapp name exists // //### Library testing // //- [ ] test adding longer CID //- [ ] test adding shorter CID //- [ ] test fuzz // //### Testing Roles Open Zeppelin Module // //- [ ] test roles for educational purposes. // }