dapp_indexer/test/DappIndexer.t.sol

72 lines
2.1 KiB
Solidity
Raw Permalink Normal View History

// 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.
//
}