harb/web-app/README.md
johba 6cbb1781ce tax rate, version and compose (#70)
resolves #67

Co-authored-by: johba <johba@harb.eth>
Reviewed-on: https://codeberg.org/johba/harb/pulls/70
2025-10-07 19:26:08 +02:00

2.2 KiB

harb staking

This template should help get you started developing with Vue 3 in Vite.

VSCode + Volar (and disable Vetur).

Type Support for .vue Imports in TS

TypeScript cannot handle type information for .vue imports by default, so we replace the tsc CLI with vue-tsc for type checking. In editors, we need Volar to make the TypeScript language service aware of .vue types.

Customize configuration

See Vite Configuration Reference.

Project Setup

npm install

Compile and Hot-Reload for Development

npm run dev

Type-Check, Compile and Minify for Production

npm run build

Testing

Test Helpers

The application exposes test helpers on window.__testHelpers in development mode to facilitate E2E testing.

Available Helpers

fillStakeForm(params)

Programmatically fills the staking form without requiring fragile UI selectors.

Parameters:

  • amount (number): Amount of KRK tokens to stake (must be >= minimum stake)
  • taxRateIndex (number): Index of the tax rate option (must match one of the configured options)

Example:

// In Playwright test
await page.evaluate(async () => {
  await window.__testHelpers.fillStakeForm({
    amount: 100,
    taxRateIndex: 2,
  });
});

// Then click the stake button
const stakeButton = page.getByRole('button', { name: /Stake|Snatch and Stake/i });
await stakeButton.click();

Validation:

  • Throws if amount is below minimum stake
  • Throws if amount exceeds wallet balance
  • Throws if taxRateIndex does not match an available option

TypeScript Support: Type declarations are available in env.d.ts:

interface Window {
  __testHelpers?: {
    fillStakeForm: (params: { amount: number; taxRateIndex: number }) => Promise<void>;
  };
}

Security: Test helpers are only available when import.meta.env.DEV === true and are automatically stripped from production builds.

E2E Tests

See INTEGRATION_TEST_STATUS.md in the repository root for complete testing documentation.