Skip to content

Commit 20aabd3

Browse files
committed
Normalize tests a little bit
1 parent 7243adc commit 20aabd3

4 files changed

Lines changed: 58 additions & 6 deletions

File tree

packages/7715-permission-types/test/permissions/caveats/erc20TokenAllowance.test.ts

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,10 @@ describe('erc20-token-allowance decoder config', () => {
9797

9898
it('validateAndDecodeData decodes valid allowance terms', () => {
9999
expect(
100-
decoder.validateAndDecodeData(makeCaveats(VALID_ALLOWANCE_TERMS), {
101-
...decoder.contractAddresses,
102-
}),
100+
decoder.validateAndDecodeData(
101+
makeCaveats(VALID_ALLOWANCE_TERMS),
102+
decoder.contractAddresses,
103+
),
103104
).toStrictEqual({
104105
tokenAddress: `0x${TOKEN_ADDRESS_HEX}`,
105106
allowanceAmount: `0x${ALLOWANCE_AMOUNT_HEX}`,
@@ -131,6 +132,20 @@ describe('erc20-token-allowance decoder config', () => {
131132
);
132133
});
133134

135+
it('validateAndDecodeData rejects when startTime is zero', () => {
136+
const invalidTerms =
137+
`0x${TOKEN_ADDRESS_HEX}${ALLOWANCE_AMOUNT_HEX}${UINT256_MAX.slice(2)}${toWord(0)}` as Hex;
138+
139+
expect(() =>
140+
decoder.validateAndDecodeData(
141+
makeCaveats(invalidTerms),
142+
decoder.contractAddresses,
143+
),
144+
).toThrow(
145+
'Invalid erc20-token-allowance terms: startTime must be a positive number',
146+
);
147+
});
148+
134149
it('validateAndDecodeData rejects zero allowanceAmount', () => {
135150
const zeroAllowanceAmount = '0'.repeat(64);
136151
const invalidTerms =

packages/7715-permission-types/test/permissions/caveats/erc20TokenPeriodic.test.ts

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import {
1616
MAX_PERIOD_DURATION,
1717
ZERO_32_BYTES,
1818
} from '../../../src/permissions/utils';
19+
import { toWord } from '../../test-utils';
1920

2021
describe('erc20-token-periodic decoder config', () => {
2122
const chainId = CHAIN_ID.sepolia;
@@ -46,9 +47,9 @@ describe('erc20-token-periodic decoder config', () => {
4647
periodDuration?: number;
4748
startDate?: number;
4849
} = {}): Hex => {
49-
const periodAmountHex = periodAmount.toString(16).padStart(64, '0');
50-
const periodDurationHex = periodDuration.toString(16).padStart(64, '0');
51-
const startDateHex = startDate.toString(16).padStart(64, '0');
50+
const periodAmountHex = toWord(periodAmount);
51+
const periodDurationHex = toWord(periodDuration);
52+
const startDateHex = toWord(startDate);
5253

5354
return `${tokenAddress}${periodAmountHex}${periodDurationHex}${startDateHex}`;
5455
};
@@ -154,6 +155,17 @@ describe('erc20-token-periodic decoder config', () => {
154155
);
155156
});
156157

158+
it('validateAndDecodeData rejects when startTime is zero', () => {
159+
expect(() =>
160+
decoder.validateAndDecodeData(
161+
makeCaveats(makeTerms({ startDate: 0 })),
162+
decoder.contractAddresses,
163+
),
164+
).toThrow(
165+
'Invalid erc20-token-periodic terms: startTime must be a positive number',
166+
);
167+
});
168+
157169
it('validateAndDecodeData rejects when periodDuration exceeds MAX_PERIOD_DURATION', () => {
158170
expect(() =>
159171
decoder.validateAndDecodeData(

packages/7715-permission-types/test/permissions/caveats/nativeTokenAllowance.test.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,20 @@ describe('native-token-allowance decoder config', () => {
130130
);
131131
});
132132

133+
it('validateAndDecodeData rejects when startTime is zero', () => {
134+
const invalidTerms =
135+
`0x${ALLOWANCE_AMOUNT_HEX}${UINT256_MAX.slice(2)}${toWord(0)}` as Hex;
136+
137+
expect(() =>
138+
decoder.validateAndDecodeData(
139+
makeCaveats(invalidTerms),
140+
decoder.contractAddresses,
141+
),
142+
).toThrow(
143+
'Invalid native-token-allowance terms: startTime must be a positive number',
144+
);
145+
});
146+
133147
it('validateAndDecodeData rejects zero allowanceAmount', () => {
134148
const zeroAllowanceAmount = '0'.repeat(64);
135149
const invalidTerms =

packages/7715-permission-types/test/permissions/caveats/nativeTokenPeriodic.test.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,17 @@ describe('native-token-periodic decoder config', () => {
144144
);
145145
});
146146

147+
it('validateAndDecodeData rejects when startTime is zero', () => {
148+
expect(() =>
149+
decoder.validateAndDecodeData(
150+
makeCaveats(makeTerms({ startDate: 0 })),
151+
decoder.contractAddresses,
152+
),
153+
).toThrow(
154+
'Invalid native-token-periodic terms: startTime must be a positive number',
155+
);
156+
});
157+
147158
it('validateAndDecodeData rejects when periodDuration exceeds MAX_PERIOD_DURATION', () => {
148159
expect(() =>
149160
decoder.validateAndDecodeData(

0 commit comments

Comments
 (0)