fix: address PR #437 review findings
- Fix price impact formula: (10000n - ...) instead of (1n - ...) - Extract ETH_AMOUNT constant in always-leave to avoid duplication - Add screenshotPrefix param to buyKrk for unique screenshot paths
This commit is contained in:
parent
c25c757024
commit
f214ac8587
2 changed files with 8 additions and 6 deletions
|
|
@ -92,8 +92,10 @@ export interface SellConfig {
|
|||
* and polls eth_getFilterLogs until the event arrives, ensuring the swap has been
|
||||
* mined on-chain before returning. Otherwise, just waits for the UI state transition
|
||||
* (caller is responsible for verification).
|
||||
*
|
||||
* @param screenshotPrefix - Optional prefix for screenshot filenames (e.g., 'walletA', 'walletB')
|
||||
*/
|
||||
export async function buyKrk(page: Page, ethAmount: string, opts?: BuyKrkOptions): Promise<void> {
|
||||
export async function buyKrk(page: Page, ethAmount: string, opts?: BuyKrkOptions, screenshotPrefix = 'holdout'): Promise<void> {
|
||||
console.log(`[swap] Buying KRK with ${ethAmount} ETH via get-krk page...`);
|
||||
await navigateSPA(page, '/app/get-krk');
|
||||
await expect(page.getByRole('heading', { name: 'Get $KRK Tokens' })).toBeVisible({ timeout: 10_000 });
|
||||
|
|
@ -125,7 +127,7 @@ export async function buyKrk(page: Page, ethAmount: string, opts?: BuyKrkOptions
|
|||
console.log(`[swap] Filter created: ${filterId}`);
|
||||
}
|
||||
|
||||
await page.screenshot({ path: 'test-results/holdout-before-buy.png' });
|
||||
await page.screenshot({ path: `test-results/${screenshotPrefix}-before-buy.png` });
|
||||
console.log('[swap] Clicking Buy KRK...');
|
||||
await buyButton.click();
|
||||
|
||||
|
|
@ -161,7 +163,7 @@ export async function buyKrk(page: Page, ethAmount: string, opts?: BuyKrkOptions
|
|||
}
|
||||
}
|
||||
|
||||
await page.screenshot({ path: 'test-results/holdout-after-buy.png' });
|
||||
await page.screenshot({ path: `test-results/${screenshotPrefix}-after-buy.png` });
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ test('passive holders are not diluted', async ({ browser }) => {
|
|||
await connectWallet(pageA);
|
||||
|
||||
console.log('[TEST] Wallet A buying 1 ETH of KRK...');
|
||||
await buyKrk(pageA, '1');
|
||||
await buyKrk(pageA, '1', 'walletA');
|
||||
|
||||
const krkBalanceA = await getKrkBalance(config.rpcUrl, config.contracts.Kraiken, ADDRESS_A);
|
||||
console.log(`[TEST] Wallet A KRK balance after buy: ${krkBalanceA}`);
|
||||
|
|
@ -96,7 +96,7 @@ test('passive holders are not diluted', async ({ browser }) => {
|
|||
await connectWallet(pageB);
|
||||
|
||||
console.log('[TEST] Wallet B buying 5 ETH of KRK...');
|
||||
await buyKrk(pageB, '5');
|
||||
await buyKrk(pageB, '5', 'walletB');
|
||||
|
||||
const krkBalanceB = await getKrkBalance(config.rpcUrl, config.contracts.Kraiken, ADDRESS_B);
|
||||
console.log(`[TEST] Wallet B KRK balance after buy: ${krkBalanceB}`);
|
||||
|
|
@ -135,6 +135,6 @@ test('passive holders are not diluted', async ({ browser }) => {
|
|||
console.log(` Wallet A (1 ETH): ${krkAfterFirstBuy} KRK (${tokensPerEthA} per ETH)`);
|
||||
console.log(` Wallet B (5 ETH): ${krkBalanceBFinal} KRK (${tokensPerEthB} per ETH)`);
|
||||
console.log(` A's balance after: ${krkBalanceAFinal} KRK (unchanged ✓)`);
|
||||
console.log(` Price impact: ${((1n - tokensPerEthB * 10000n / tokensPerEthA) / 100n)}% worse for B`);
|
||||
console.log(` Price impact: ${((10000n - tokensPerEthB * 10000n / tokensPerEthA) / 100n)}% worse for B`);
|
||||
console.log('═══════════════════════════════════════════════════════════');
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue