Skip to content

Commit ebbd281

Browse files
authored
Merge pull request #11 from dadadave80:chore/fork-test-setup
Chore/fork-test-setup
2 parents 603edeb + 6eb231e commit ebbd281

File tree

4 files changed

+85
-6
lines changed

4 files changed

+85
-6
lines changed

test/ChronicleTest.t.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ contract ChronicleTest is DeployedChronicleState {
1717
}
1818

1919
function test_ChronicleFacetsDeployed() public view {
20-
assertEq(facetAddresses.length, 5);
20+
assertEq(facetAddresses.length, 6);
2121
for (uint256 i; i < facetAddresses.length; ++i) {
2222
assertNotEq(address(facetAddresses[i]), address(0));
2323
}
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
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+
}

test/helpers/ChronicleDeployer.sol

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import {HelperContract} from "@diamond-test/helpers/HelperContract.sol";
1111
import {Chronicle} from "@chronicle/Chronicle.sol";
1212
import {PartiesFacet} from "@chronicle/facets/PartiesFacet.sol";
1313
import {ProductsFacet} from "@chronicle/facets/ProductsFacet.sol";
14+
import {SupplyChainFacet} from "@chronicle/facets/SupplyChainFacet.sol";
1415
import {InitHTCKeyTypes} from "@chronicle/initializers/InitHTCKeyTypes.sol";
1516

1617
abstract contract ChronicleDeployer is HelperContract {
@@ -21,13 +22,14 @@ abstract contract ChronicleDeployer is HelperContract {
2122
OwnableRolesFacet ownableRolesFacet = new OwnableRolesFacet();
2223
PartiesFacet partiesFacet = new PartiesFacet();
2324
ProductsFacet productsFacet = new ProductsFacet();
25+
SupplyChainFacet supplyChainFacet = new SupplyChainFacet();
2426

2527
// deploy initializers
2628
MultiInit multiInit = new MultiInit();
2729
ERC165Init erc165Init = new ERC165Init();
2830
InitHTCKeyTypes initHtcKeyTypes = new InitHTCKeyTypes();
2931

30-
FacetCut[] memory facetCuts = new FacetCut[](5);
32+
FacetCut[] memory facetCuts = new FacetCut[](6);
3133

3234
facetCuts[0] = FacetCut({
3335
facetAddress: address(diamondCutFacet),
@@ -59,6 +61,12 @@ abstract contract ChronicleDeployer is HelperContract {
5961
functionSelectors: _generateSelectors("ProductsFacet")
6062
});
6163

64+
facetCuts[5] = FacetCut({
65+
facetAddress: address(supplyChainFacet),
66+
action: FacetCutAction.Add,
67+
functionSelectors: _generateSelectors("SupplyChainFacet")
68+
});
69+
6270
address[] memory initAddr = new address[](2);
6371
bytes[] memory initData = new bytes[](2);
6472

test/helpers/TestStates.sol

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {DiamondLoupeFacet} from "@diamond/facets/DiamondLoupeFacet.sol";
66
import {OwnableRolesFacet} from "@diamond/facets/OwnableRolesFacet.sol";
77
import {PartiesFacet} from "@chronicle/facets/PartiesFacet.sol";
88
import {ProductsFacet} from "@chronicle/facets/ProductsFacet.sol";
9+
import {SupplyChainFacet} from "@chronicle/facets/SupplyChainFacet.sol";
910
import {ChronicleDeployer} from "@chronicle-test/helpers/ChronicleDeployer.sol";
1011

1112
abstract contract DeployedChronicleState is ChronicleDeployer {
@@ -15,20 +16,28 @@ abstract contract DeployedChronicleState is ChronicleDeployer {
1516
OwnableRolesFacet public ownableRolesFacet;
1617
PartiesFacet public partiesFacet;
1718
ProductsFacet public productsFacet;
19+
SupplyChainFacet public supplyChainFacet;
1820
address[] public facetAddresses;
19-
string[5] public facetNames =
20-
["DiamondCutFacet", "DiamondLoupeFacet", "OwnableRolesFacet", "PartiesFacet", "ProductsFacet"];
21+
string[6] public facetNames = [
22+
"DiamondCutFacet",
23+
"DiamondLoupeFacet",
24+
"OwnableRolesFacet",
25+
"PartiesFacet",
26+
"ProductsFacet",
27+
"SupplyChainFacet"
28+
];
2129
address public constant CHRONICLE_OWNER = address(1337);
2230

23-
function setUp() public {
24-
vm.startPrank(CHRONICLE_OWNER);
31+
function setUp() public virtual {
32+
vm.prank(CHRONICLE_OWNER);
2533
chronicle = _deployChronicle(CHRONICLE_OWNER);
2634

2735
diamondCutFacet = DiamondCutFacet(chronicle);
2836
diamondLoupeFacet = DiamondLoupeFacet(chronicle);
2937
ownableRolesFacet = OwnableRolesFacet(chronicle);
3038
partiesFacet = PartiesFacet(chronicle);
3139
productsFacet = ProductsFacet(chronicle);
40+
supplyChainFacet = SupplyChainFacet(chronicle);
3241

3342
facetAddresses = diamondLoupeFacet.facetAddresses();
3443
}

0 commit comments

Comments
 (0)