- Added Playwright for end-to-end testing in the `apps/web` module, including a new `login.spec.ts` for testing login functionality. - Updated package.json to include Playwright dependencies and new test commands for E2E testing. - Enhanced .gitignore to exclude Playwright test results and reports. - Modified existing documentation to reflect the integration of Playwright and updated testing guidelines. - Refactored test commands to streamline the testing process, including a dedicated command for E2E tests. These changes improve the testing framework by providing robust E2E testing capabilities, enhancing the reliability and quality of the application.
47 lines
2.2 KiB
Plaintext
47 lines
2.2 KiB
Plaintext
---
|
|
description: trackgo-fe monorepo map — apps, packages, where to develop
|
|
alwaysApply: true
|
|
---
|
|
|
|
# trackgo-fe Overview
|
|
|
|
pnpm + Turborepo monorepo. Work from the repository root. Package manager: `pnpm@8.15.6`.
|
|
|
|
## Where to work
|
|
|
|
| Role | Path | Notes |
|
|
|---|---|---|
|
|
| **Product development** | `apps/web/` | Primary app — features, auth, modules |
|
|
| **Component / API reference** | `apps/showcase/` | Living demos of `@repo/*` usage — copy patterns, do not ship product here |
|
|
| Deep docs | `apps/docs-dev/` | VitePress (`pnpm dev:docs-dev`) |
|
|
| Shared UI / forms / foundations | `packages/ui` → `@repo/ui/*` | |
|
|
| HTTP, data services, telemetry | `packages/core-api` → `@repo/core-api/*` | |
|
|
| Storage | `packages/core-storage` → `@repo/core-storage` | |
|
|
| i18n | `packages/core-i18n` → `@repo/core-i18n` | |
|
|
| Events | `packages/core-events` → `@repo/core-events` | |
|
|
| Shared utilities | `packages/utils` → `@repo/utils` | |
|
|
| Brand assets | `packages/brand` → `@repo/brand` | |
|
|
| Tooling configs | `packages/configs` | ESLint + TypeScript bases |
|
|
| Desktop wrapper | `apps/desktop/` | Embeds `apps/web` via Electron |
|
|
| Landing | `apps/landing/` | Marketing SPA only |
|
|
|
|
## Hard rules
|
|
|
|
- Implement product features in `apps/web`, not in `showcase` or `docs-dev`.
|
|
- Before inventing UI or package usage, match `apps/showcase` demos and `apps/docs-dev` docs.
|
|
- Prefer `@repo/ui`, `@repo/core-*`, `@repo/utils` over app-local duplicates or raw Mantine/axios.
|
|
- Env files live **inside the app** (`apps/web/.env*`), never at monorepo root. Read env via `src/core/environment` (`ENV`), not `import.meta.env` in components.
|
|
- Run scripts from root: `pnpm dev:web`, `pnpm dev:showcase`, `pnpm lint`, `pnpm typecheck:web`, `pnpm test`, `pnpm test:e2e:web`, `pnpm check:all`.
|
|
|
|
## Import map (preferred)
|
|
|
|
```ts
|
|
import { Button, Text } from '@repo/ui/components';
|
|
import { FieldTextInput } from '@repo/ui/form'; // or @repo/ui/components
|
|
import { EnterpriseModuleProvider } from '@repo/ui/foundations';
|
|
import { compose, required } from '@repo/ui/validators';
|
|
import { createHttpClient } from '@repo/core-api/http-client';
|
|
import { CommonRemoteDataServices } from '@repo/core-api/data-services';
|
|
import { useTranslation, Trans } from '@repo/core-i18n';
|
|
```
|