Skip to content
This repository was archived by the owner on Mar 26, 2025. It is now read-only.

Commit d6d66a1

Browse files
committed
test: add allowance assertions in constructor tests
1 parent 1e1a3ef commit d6d66a1

File tree

2 files changed

+96
-43
lines changed

2 files changed

+96
-43
lines changed

test/integration/airstream/campaign/ld/constructor.t.sol

Lines changed: 47 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,26 @@ import { SablierV2AirstreamCampaignLD } from "src/SablierV2AirstreamCampaignLD.s
88
import { CampaignLD_Integration_Test } from "./campaignLD.t.sol";
99

1010
contract Constructor_CampaignLD_Integration_Test is CampaignLD_Integration_Test {
11+
/// @dev Needed to prevent "Stack too deep" error
12+
struct Vars {
13+
address actualAdmin;
14+
address expectedAdmin;
15+
address actualAsset;
16+
address expectedAsset;
17+
bytes32 actualMerkleRoot;
18+
bytes32 expectedMerkleRoot;
19+
bool actualCancelable;
20+
bool expectedCancelable;
21+
uint40 actualExpiration;
22+
uint40 expectedExpiration;
23+
address actualLockupDynamic;
24+
address expectedLockupDynamic;
25+
LockupDynamic.SegmentWithDelta[] actualSegments;
26+
LockupDynamic.SegmentWithDelta[] expectedSegments;
27+
uint256 actualAllowance;
28+
uint256 expectedAllowance;
29+
}
30+
1131
function test_Constructor() external {
1232
SablierV2AirstreamCampaignLD constructedCampaignLD = new SablierV2AirstreamCampaignLD(
1333
users.admin.addr,
@@ -19,32 +39,38 @@ contract Constructor_CampaignLD_Integration_Test is CampaignLD_Integration_Test
1939
defaults.segmentsWithDeltas()
2040
);
2141

22-
address actualAdmin = constructedCampaignLD.admin();
23-
address expectedAdmin = users.admin.addr;
24-
assertEq(actualAdmin, expectedAdmin, "admin");
42+
Vars memory vars;
43+
44+
vars.actualAdmin = constructedCampaignLD.admin();
45+
vars.expectedAdmin = users.admin.addr;
46+
assertEq(vars.actualAdmin, vars.expectedAdmin, "admin");
47+
48+
vars.actualAsset = address(constructedCampaignLD.asset());
49+
vars.expectedAsset = address(asset);
50+
assertEq(vars.actualAsset, vars.expectedAsset, "asset");
2551

26-
address actualAsset = address(constructedCampaignLD.asset());
27-
address expectedAsset = address(asset);
28-
assertEq(actualAsset, expectedAsset, "asset");
52+
vars.actualMerkleRoot = constructedCampaignLD.merkleRoot();
53+
vars.expectedMerkleRoot = defaults.merkleRoot();
54+
assertEq(vars.actualMerkleRoot, vars.expectedMerkleRoot, "merkleRoot");
2955

30-
bytes32 actualMerkleRoot = constructedCampaignLD.merkleRoot();
31-
bytes32 expectedMerkleRoot = defaults.merkleRoot();
32-
assertEq(actualMerkleRoot, expectedMerkleRoot, "merkleRoot");
56+
vars.actualCancelable = constructedCampaignLD.cancelable();
57+
vars.expectedCancelable = defaults.CANCELABLE();
58+
assertEq(vars.actualCancelable, vars.expectedCancelable, "cancelable");
3359

34-
bool actualCancelable = constructedCampaignLD.cancelable();
35-
bool expectedCancelable = defaults.CANCELABLE();
36-
assertEq(actualCancelable, expectedCancelable, "cancelable");
60+
vars.actualExpiration = constructedCampaignLD.expiration();
61+
vars.expectedExpiration = defaults.EXPIRATION();
62+
assertEq(vars.actualExpiration, vars.expectedExpiration, "expiration");
3763

38-
uint40 actualExpiration = constructedCampaignLD.expiration();
39-
uint40 expectedExpiration = defaults.EXPIRATION();
40-
assertEq(actualExpiration, expectedExpiration, "expiration");
64+
vars.actualLockupDynamic = address(constructedCampaignLD.lockupDynamic());
65+
vars.expectedLockupDynamic = address(lockupDynamic);
66+
assertEq(vars.actualLockupDynamic, vars.expectedLockupDynamic, "lockupDynamic");
4167

42-
address actualLockupDynamic = address(constructedCampaignLD.lockupDynamic());
43-
address expectedLockupDynamic = address(lockupDynamic);
44-
assertEq(actualLockupDynamic, expectedLockupDynamic, "lockupDynamic");
68+
vars.actualSegments = constructedCampaignLD.getSegments();
69+
vars.expectedSegments = defaults.segmentsWithDeltas();
70+
assertEq(vars.actualSegments, vars.expectedSegments, "segments");
4571

46-
LockupDynamic.SegmentWithDelta[] memory actualSegments = constructedCampaignLD.getSegments();
47-
LockupDynamic.SegmentWithDelta[] memory expectedSegments = defaults.segmentsWithDeltas();
48-
assertEq(actualSegments, expectedSegments, "segments");
72+
vars.actualAllowance = asset.allowance(address(constructedCampaignLD), address(lockupDynamic));
73+
vars.expectedAllowance = MAX_UINT256;
74+
assertEq(vars.actualAllowance, vars.expectedAllowance, "allowance");
4975
}
5076
}

test/integration/airstream/campaign/ll/constructor.t.sol

Lines changed: 49 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,27 @@ import { SablierV2AirstreamCampaignLL } from "src/SablierV2AirstreamCampaignLL.s
88
import { CampaignLL_Integration_Test } from "./campaignLL.t.sol";
99

1010
contract Constructor_CampaignLL_Integration_Test is CampaignLL_Integration_Test {
11+
/// @dev Needed to prevent "Stack too deep" error
12+
struct Vars {
13+
address actualAdmin;
14+
address expectedAdmin;
15+
address actualAsset;
16+
address expectedAsset;
17+
bytes32 actualMerkleRoot;
18+
bytes32 expectedMerkleRoot;
19+
bool actualCancelable;
20+
bool expectedCancelable;
21+
uint40 actualExpiration;
22+
uint40 expectedExpiration;
23+
address actualLockupLinear;
24+
address expectedLockupLinear;
25+
uint40 actualDurationsCliff;
26+
uint40 actualDurationsTotal;
27+
LockupLinear.Durations expectedDurations;
28+
uint256 actualAllowance;
29+
uint256 expectedAllowance;
30+
}
31+
1132
function test_Constructor() external {
1233
SablierV2AirstreamCampaignLL constructedCampaignLL = new SablierV2AirstreamCampaignLL(
1334
users.admin.addr,
@@ -19,33 +40,39 @@ contract Constructor_CampaignLL_Integration_Test is CampaignLL_Integration_Test
1940
defaults.durations()
2041
);
2142

22-
address actualAdmin = constructedCampaignLL.admin();
23-
address expectedAdmin = users.admin.addr;
24-
assertEq(actualAdmin, expectedAdmin, "admin");
43+
Vars memory vars;
44+
45+
vars.actualAdmin = constructedCampaignLL.admin();
46+
vars.expectedAdmin = users.admin.addr;
47+
assertEq(vars.actualAdmin, vars.expectedAdmin, "admin");
48+
49+
vars.actualAsset = address(constructedCampaignLL.asset());
50+
vars.expectedAsset = address(asset);
51+
assertEq(vars.actualAsset, vars.expectedAsset, "asset");
2552

26-
address actualAsset = address(constructedCampaignLL.asset());
27-
address expectedAsset = address(asset);
28-
assertEq(actualAsset, expectedAsset, "asset");
53+
vars.actualMerkleRoot = constructedCampaignLL.merkleRoot();
54+
vars.expectedMerkleRoot = defaults.merkleRoot();
55+
assertEq(vars.actualMerkleRoot, vars.expectedMerkleRoot, "merkleRoot");
2956

30-
bytes32 actualMerkleRoot = constructedCampaignLL.merkleRoot();
31-
bytes32 expectedMerkleRoot = defaults.merkleRoot();
32-
assertEq(actualMerkleRoot, expectedMerkleRoot, "merkleRoot");
57+
vars.actualCancelable = constructedCampaignLL.cancelable();
58+
vars.expectedCancelable = defaults.CANCELABLE();
59+
assertEq(vars.actualCancelable, vars.expectedCancelable, "cancelable");
3360

34-
bool actualCancelable = constructedCampaignLL.cancelable();
35-
bool expectedCancelable = defaults.CANCELABLE();
36-
assertEq(actualCancelable, expectedCancelable, "cancelable");
61+
vars.actualExpiration = constructedCampaignLL.expiration();
62+
vars.expectedExpiration = defaults.EXPIRATION();
63+
assertEq(vars.actualExpiration, vars.expectedExpiration, "expiration");
3764

38-
uint40 actualExpiration = constructedCampaignLL.expiration();
39-
uint40 expectedExpiration = defaults.EXPIRATION();
40-
assertEq(actualExpiration, expectedExpiration, "expiration");
65+
vars.actualLockupLinear = address(constructedCampaignLL.lockupLinear());
66+
vars.expectedLockupLinear = address(lockupLinear);
67+
assertEq(vars.actualLockupLinear, vars.expectedLockupLinear, "lockupLinear");
4168

42-
address actualLockupLinear = address(constructedCampaignLL.lockupLinear());
43-
address expectedLockupLinear = address(lockupLinear);
44-
assertEq(actualLockupLinear, expectedLockupLinear, "lockupLinear");
69+
(vars.actualDurationsCliff, vars.actualDurationsTotal) = constructedCampaignLL.durations();
70+
vars.expectedDurations = defaults.durations();
71+
assertEq(vars.actualDurationsCliff, vars.expectedDurations.cliff, "cliff");
72+
assertEq(vars.actualDurationsTotal, vars.expectedDurations.total, "total");
4573

46-
(uint40 actualDurationsCliff, uint40 actualDurationsTotal) = constructedCampaignLL.durations();
47-
LockupLinear.Durations memory expectedDurations = defaults.durations();
48-
assertEq(actualDurationsCliff, expectedDurations.cliff, "cliff");
49-
assertEq(actualDurationsTotal, expectedDurations.total, "total");
74+
vars.actualAllowance = asset.allowance(address(constructedCampaignLL), address(lockupLinear));
75+
vars.expectedAllowance = MAX_UINT256;
76+
assertEq(vars.actualAllowance, vars.expectedAllowance, "allowance");
5077
}
5178
}

0 commit comments

Comments
 (0)