MuseMVP

MuseMVP Base: Next.js for Node and Cloudflare. MuseMVP Flare: an AI SaaS template that runs entirely on Cloudflare. Authentication, billing and administration included.

Product
  • Home
  • Pricing
  • Templates
Resources
  • Docs
  • Blog
  • Changelog
Legal
  • Privacy
  • Terms
  • Community
Open-Launch Top 1 Daily WinnerOpen-Launch Top 1 Daily WinnerVerified DR - Verified Domain Rating for musemvp.comVerified DR - Verified Domain Rating for musemvp.comMuseMVP - Featured on Startup FameMuseMVP - Featured on Startup FameFazier badgeFazier badgeLiftOff award badgeLiftOff award badge

© 2026 MuseMVP. All rights reserved.

MuseMVP
  • Pricing
  • Docs
  • Blog
  • Changelog
Buy All in One
MuseMVP Docs
MuseMVP Docs
OverviewTech StackQuick Start
Project Structure
EmailObject Storage
Internationalization
SEOAnalytics
IDE and ToolchainProject StructureTesting and AcceptanceUpgradingAI Collaboration
Development

Testing and Acceptance

Spec, Code, Verify, Test, Green and real-platform verification boundaries.

Deliver non-trivial behavior through Spec → Code → Verify → Test → Green. Define acceptance first and maintain tests/e2e/SCENARIOS.md for browser journeys. New package behavior, schemas, and bug fixes start with a minimal failing test.

Test Layers

LocationWhat it proves
packages/<name>/testsPackage factories, pure logic, schema/query behavior
tests/unitApp logic, orchestration, transformations, validation
tests/apiReal HTTP against a running app: auth, permissions, validation, response contracts
tests/e2ePlaywright navigation, auth UX, redirects, signed-in journeys
tests/utilsShared environment/Better Auth plumbing, not feature assertions

Coverage floors in packages/testing/coverage-floors.json may only rise. Database tests include Postgres/PGlite and SQLite queries. Passing one dialect does not verify the other platform.

Local Node Setup

pnpm muse:init --app node --database-url <postgres-url>
pnpm dev

Manual password login uses [email protected] / [email protected], with MUSE_SEED_PASSWORD (default musemvp). Normal runs keep BETTER_AUTH_ENABLE_TEST_UTILS=false.

Reuse tests/utils/better-auth.ts and tests/e2e/utils/session.ts. Test processes enable Better Auth testUtils; APIs use getAuthHeaders, browsers use getCookies, and OTP uses capture helpers. Do not reinvent login bootstrap in each spec.

Commands and Limits

CommandScope
pnpm test:unitPackage and app logic
pnpm test:unit:coverageCoverage and floor checks
pnpm test:apiReal Node HTTP contracts
pnpm test:e2eNode Playwright; config can start build/start, reused servers must match the base URL
pnpm apps:parityPage/content copy consistency, not behavior

Select Coverage by Change

Use unit tests for logic and HTTP contracts for routes. Combine lower-level and browser checks for auth, billing, role gates, uploads, and cross-route navigation. Walk the critical path before locking assertions, including empty states, service errors, invalid input, and cross-user denial. Report passed, unrun, and deferred checks explicitly; rendering/types alone are not completion.

Project Structure

The actual two-app layout, shared packages, and platform composition roots.

Upgrading

Changes and risks when upgrading a single-app or Hyperdrive-based derivative.

On this page

Test LayersLocal Node SetupCommands and LimitsSelect Coverage by Change

One payment. Tax included.

All in One

Base, Flare and every UI template, plus new ones.

$129

Buy All in One