Commit Graph

13 Commits

Author SHA1 Message Date
df784d718b test(loyalty): add comprehensive test suite for loyalty module
Add tests for the loyalty module Phase 2 implementation:

Fixtures (tests/fixtures/loyalty_fixtures.py):
- test_loyalty_program: Points-based program with rewards
- test_loyalty_program_no_expiration: Program without point expiry
- test_loyalty_card: Active customer card
- test_loyalty_card_inactive: Card for expiration testing
- test_loyalty_transaction: Sample transaction
- test_staff_pin: Staff PIN for verification tests

Unit Tests (tests/unit/services/test_loyalty_services.py):
- ProgramService: Company queries, listing, filtering
- CardService: Lookup, enrollment, balance operations
- PointsService: Earn, redeem, void, adjust operations
- PinService: Creation, verification, lockout

Integration Tests (tests/integration/api/v1/loyalty/):
- Vendor API: Program settings, card management, PIN operations
- Storefront API: Endpoint existence verification

Task Tests (tests/integration/tasks/test_loyalty_tasks.py):
- Point expiration for inactive cards
- Transaction record creation on expiration
- No expiration for active cards or zero balances
- Voided total tracking

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 22:16:05 +01:00
4e28d91a78 refactor: migrate templates and static files to self-contained modules
Templates Migration:
- Migrate admin templates to modules (tenancy, billing, monitoring, marketplace, etc.)
- Migrate vendor templates to modules (tenancy, billing, orders, messaging, etc.)
- Migrate storefront templates to modules (catalog, customers, orders, cart, checkout, cms)
- Migrate public templates to modules (billing, marketplace, cms)
- Keep shared templates in app/templates/ (base.html, errors/, partials/, macros/)
- Migrate letzshop partials to marketplace module

Static Files Migration:
- Migrate admin JS to modules: tenancy (23 files), core (5 files), monitoring (1 file)
- Migrate vendor JS to modules: tenancy (4 files), core (2 files)
- Migrate shared JS: vendor-selector.js to core, media-picker.js to cms
- Migrate storefront JS: storefront-layout.js to core
- Keep framework JS in static/ (api-client, utils, money, icons, log-config, lib/)
- Update all template references to use module_static paths

Naming Consistency:
- Rename static/platform/ to static/public/
- Rename app/templates/platform/ to app/templates/public/
- Update all extends and static references

Documentation:
- Update module-system.md with shared templates documentation
- Update frontend-structure.md with new module JS organization

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 14:34:16 +01:00
b9f08b853f refactor: clean up legacy models and migrate remaining schemas
Delete empty stub files from models/database/:
- audit.py, backup.py, configuration.py, monitoring.py
- notification.py, payment.py, search.py, task.py

Delete re-export files:
- models/database/subscription.py → app.modules.billing.models
- models/database/architecture_scan.py → app.modules.dev_tools.models
- models/database/test_run.py → app.modules.dev_tools.models
- models/schema/subscription.py → app.modules.billing.schemas
- models/schema/marketplace.py (empty)
- models/schema/monitoring.py (empty)

Migrate schemas to canonical module locations:
- billing.py → app/modules/billing/schemas/
- vendor_product.py → app/modules/catalog/schemas/
- homepage_sections.py → app/modules/cms/schemas/

Keep as CORE (framework-level, used everywhere):
- models/schema/: admin, auth, base, company, email, image, media, team, vendor*
- models/database/: admin*, base, company, email, feature, media, platform*, user, vendor*

Update 30+ files to use canonical import locations.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 18:45:46 +01:00
0c63f387aa refactor: migrate models to canonical module locations
- Move Product/ProductTranslation to app/modules/catalog/models/
- Move VendorOnboarding to app/modules/marketplace/models/
- Delete legacy re-export files for marketplace models:
  - letzshop.py, marketplace.py, marketplace_product.py
  - marketplace_product_translation.py, marketplace_import_job.py
- Delete legacy product.py, product_translation.py, onboarding.py
- Update all imports across services, tasks, tests to use module locations

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 14:45:32 +01:00
23a5ccbcff test: add integration tests for vendor orders API and background tasks
Add comprehensive integration tests for:
- Vendor orders API (list, detail, status updates, pagination, filtering)
- Letzshop historical import background task (success, errors, progress)
- Subscription background tasks (period reset, trial expiration, Stripe sync)

These 39 new tests improve coverage for background task functionality
and vendor order management.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 19:01:54 +01:00
c7321cf0e0 fix: correct vendor_id parameter in background task tests
- Change vendor_id from string "TESTVENDOR" to test_vendor.id (integer)
- Add test_marketplace_import_vendor_not_found for vendor lookup errors
- Add test_marketplace_import_commit_error_handling for commit failures
- Add test_marketplace_import_close_error_handling for session close errors
- Achieves 100% test coverage on app/tasks/background_tasks.py

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-14 12:49:08 +01:00
4cb4fec8e2 fix: update tests for current API structure and model changes
- Fix middleware fixtures: vendor_code instead of code, add owner_user_id to company
- Fix performance tests: MarketplaceProduct uses translations for title/description
- Fix security tests: use correct API endpoints (/api/v1/admin/*, /api/v1/vendor/*)
- Fix workflow tests: use actual admin API endpoints
- Fix background task tests: remove invalid vendor_name field, add language

Note: Many middleware integration tests still fail due to dynamic routes
being caught by the /{slug} catch-all route. These tests need further
refactoring to use /api/* prefixed routes.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-13 16:01:16 +01:00
238c1ec9b8 refactor: modernize code quality tooling with Ruff
- Replace black, isort, and flake8 with Ruff (all-in-one linter and formatter)
- Add comprehensive pyproject.toml configuration
- Simplify Makefile code quality targets
- Configure exclusions for venv/.venv in pyproject.toml
- Auto-fix 1,359 linting issues across codebase

Benefits:
- Much faster builds (Ruff is written in Rust)
- Single tool replaces multiple tools
- More comprehensive rule set (UP, B, C4, SIM, PIE, RET, Q)
- All configuration centralized in pyproject.toml
- Better import sorting and formatting consistency

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 19:37:38 +01:00
f569995883 vendor refactoring 2025-10-05 19:49:03 +02:00
0114b6c46e shop product refactoring 2025-10-04 23:38:53 +02:00
c971674ec2 marketplace refactoring 2025-10-04 13:38:10 +02:00
c2a1056db7 QC check 2025-09-21 13:00:10 +02:00
5996cecc42 workflows testing 2025-09-20 21:29:02 +02:00