Skip to content

feat: project setup with Next.js, TypeScript, and Tailwind CSS#1

Merged
tzone85 merged 2 commits into
mainfrom
feature/REQ-I1QAV-1Z
Mar 2, 2026
Merged

feat: project setup with Next.js, TypeScript, and Tailwind CSS#1
tzone85 merged 2 commits into
mainfrom
feature/REQ-I1QAV-1Z

Conversation

@tzone85

@tzone85 tzone85 commented Mar 2, 2026

Copy link
Copy Markdown
Owner

Summary

  • Initialize Mini Marty project with Next.js 16 (App Router), TypeScript, and Tailwind CSS v4
  • Set up testing infrastructure: Vitest + React Testing Library for unit tests, Playwright for E2E
  • Configure ESLint (flat config) + Prettier for code quality
  • Establish feature-based directory structure under src/ (editor, scene, tutorials, challenges)
  • Add GitHub Actions CI pipeline with parallel lint/typecheck, test, build, and E2E jobs

Test plan

  • ESLint runs clean (npm run lint)
  • Prettier check passes (npm run format:check)
  • TypeScript type checking passes (npm run typecheck)
  • Unit tests pass (npm test — 2 tests)
  • Production build succeeds (npm run build)
  • E2E tests pass (npm run test:e2e — 2 tests)

[STORY-001]


Important

Set up a new project with Next.js, TypeScript, Tailwind CSS, testing frameworks, and CI pipeline.

  • Project Setup:
    • Initialize project with Next.js 16, TypeScript, and Tailwind CSS v4.
    • Establish feature-based directory structure under src/.
  • Testing:
    • Set up Vitest and React Testing Library for unit tests.
    • Configure Playwright for E2E tests with playwright.config.ts.
    • Add initial tests in e2e/home.spec.ts and src/app/page.test.tsx.
  • CI/CD:
    • Add GitHub Actions CI pipeline in .github/workflows/ci.yml with jobs for linting, testing, building, and E2E testing.
  • Linting and Formatting:
    • Configure ESLint with eslint.config.mjs and Prettier with .prettierrc.
    • Add .prettierignore for ignored files.
  • Configuration:
    • Add next.config.ts for Next.js configuration.
    • Add postcss.config.mjs for PostCSS setup.
  • Miscellaneous:
    • Update README.md with project details and scripts.
    • Add package.json with scripts and dependencies.

This description was created by Ellipsis for eeb54e7. You can customize this summary. It will automatically update as commits are pushed.

Set up the Mini Marty project foundation:
- Next.js 16 with App Router and TypeScript
- Tailwind CSS v4 with PostCSS integration
- Vitest with React Testing Library for unit/integration tests
- Playwright for E2E testing (Chromium)
- ESLint with Next.js + Prettier configuration
- Feature-based directory structure under src/
- GitHub Actions CI pipeline (lint, typecheck, test, build, e2e)
- Basic home page with unit and E2E test coverage

[STORY-001]

@ellipsis-dev ellipsis-dev Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important

Looks good to me! 👍

Reviewed everything up to eeb54e7 in 10 seconds. Click for details.
  • Reviewed 419 lines of code in 27 files
  • Skipped 3 files when reviewing.
  • Skipped posting 0 draft comments. View those below.
  • Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.

Workflow ID: wflow_7bNr1IIA8HIGl8g8

You can customize Ellipsis by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.

@tzone85

tzone85 commented Mar 2, 2026

Copy link
Copy Markdown
Owner Author

Code review

Found 1 issue:

  1. Coverage thresholds are not configured in vitest.config.ts, and CI runs npm test (which is vitest run) rather than npm run test:coverage. This means no coverage is collected in CI and no minimum threshold is enforced — the 80% coverage requirement is silently bypassed even though the test:coverage script and coverage provider are defined.

Fix: add a thresholds block to the coverage config and switch the CI test job to run npm run test:coverage:

coverage: {
  provider: "v8",
  include: ["src/**/*.{ts,tsx}"],
  exclude: [...],
  thresholds: { lines: 80, functions: 80, branches: 80, statements: 80 },
},

include: ["src/**/*.{test,spec}.{ts,tsx}"],
coverage: {
provider: "v8",
include: ["src/**/*.{ts,tsx}"],
exclude: [
"src/test/**",
"src/**/*.d.ts",
"src/**/*.{test,spec}.{ts,tsx}",
],
},
},

- run: npm ci
- run: npm test

🤖 Generated with Claude Code

- If this code review was useful, please react with 👍. Otherwise, react with 👎.

- Add 80% coverage thresholds (branches, functions, lines, statements)
  to vitest.config.ts
- Update CI to run test:coverage instead of test to enforce thresholds
- Add layout component test to meet coverage requirements
- Install @vitest/coverage-v8 provider

[STORY-001]
@tzone85
tzone85 merged commit 18ad354 into main Mar 2, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant