|
| 1 | +// SPDX-License-Identifier: MIT |
| 2 | +pragma solidity ^0.8.30; |
| 3 | + |
| 4 | +import {Test} from "forge-std/Test.sol"; |
| 5 | +import {PartiesFacet} from "@chronicle/facets/PartiesFacet.sol"; |
| 6 | +import {ProductsFacet} from "@chronicle/facets/ProductsFacet.sol"; |
| 7 | +import {SupplyChainFacet} from "@chronicle/facets/SupplyChainFacet.sol"; |
| 8 | +import {DiamondCutFacet} from "@diamond/facets/DiamondCutFacet.sol"; |
| 9 | +import {DiamondLoupeFacet} from "@diamond/facets/DiamondLoupeFacet.sol"; |
| 10 | +import {OwnableRolesFacet} from "@diamond/facets/OwnableRolesFacet.sol"; |
| 11 | +import {Role, Rating} from "@chronicle-types/PartyStorage.sol"; |
| 12 | + |
| 13 | +contract ChroniclePreviewnetStateTest is Test { |
| 14 | + DiamondCutFacet public diamondCutFacet; |
| 15 | + DiamondLoupeFacet public diamondLoupeFacet; |
| 16 | + OwnableRolesFacet public ownableRolesFacet; |
| 17 | + PartiesFacet public partiesFacet; |
| 18 | + ProductsFacet public productsFacet; |
| 19 | + SupplyChainFacet public supplyChainFacet; |
| 20 | + |
| 21 | + uint256 previewnetFork; |
| 22 | + string PRE_RPC_URL = vm.envString("PRE_RPC_URL"); |
| 23 | + |
| 24 | + address TESTER = makeAddr("tester"); |
| 25 | + |
| 26 | + modifier previewnet() { |
| 27 | + _previewnetSetup(); |
| 28 | + _; |
| 29 | + } |
| 30 | + |
| 31 | + function setUp() public { |
| 32 | + previewnetFork = vm.createFork(PRE_RPC_URL); |
| 33 | + } |
| 34 | + |
| 35 | + function test_ChronicleOwner() public previewnet { |
| 36 | + assertEq(ownableRolesFacet.owner(), vm.envAddress("PRE_CHR_OWNER")); |
| 37 | + } |
| 38 | + |
| 39 | + function test_RegisterParty() public previewnet { |
| 40 | + vm.startPrank(TESTER); |
| 41 | + partiesFacet.registerParty("Party", Role.Retailer); |
| 42 | + |
| 43 | + assertTrue(partiesFacet.hasActiveRole(TESTER, Role.Retailer)); |
| 44 | + assertEq(partiesFacet.getParty(TESTER).name, "Party"); |
| 45 | + assertEq(partiesFacet.getParty(TESTER).addr, TESTER); |
| 46 | + assertEq(uint8(partiesFacet.getParty(TESTER).role), uint8(Role.Retailer)); |
| 47 | + assertEq(partiesFacet.getParty(TESTER).active, true); |
| 48 | + assertEq(partiesFacet.getParty(TESTER).frozen, false); |
| 49 | + assertEq(uint8(partiesFacet.getParty(TESTER).rating), uint8(Rating.Zero)); |
| 50 | + } |
| 51 | + |
| 52 | + function _previewnetSetup() internal { |
| 53 | + vm.selectFork(previewnetFork); |
| 54 | + |
| 55 | + diamondCutFacet = DiamondCutFacet(payable(vm.envAddress("PRE_CHR_ADDR"))); |
| 56 | + diamondLoupeFacet = DiamondLoupeFacet(payable(vm.envAddress("PRE_CHR_ADDR"))); |
| 57 | + ownableRolesFacet = OwnableRolesFacet(payable(vm.envAddress("PRE_CHR_ADDR"))); |
| 58 | + partiesFacet = PartiesFacet(payable(vm.envAddress("PRE_CHR_ADDR"))); |
| 59 | + productsFacet = ProductsFacet(payable(vm.envAddress("PRE_CHR_ADDR"))); |
| 60 | + supplyChainFacet = SupplyChainFacet(payable(vm.envAddress("PRE_CHR_ADDR"))); |
| 61 | + } |
| 62 | +} |
0 commit comments