feat: expand EasyCode software factory workflows
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
# EasyCode Profile Center Implementation Plan
|
||||
|
||||
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
|
||||
|
||||
**Goal:** Build the lightweight `/profile` personal center for EasyCode front users.
|
||||
|
||||
**Architecture:** Reuse existing front project, source purchase, and AI quota APIs. Add only the missing front-account profile update and password update APIs, then compose a single Vue 3 + Element Plus profile page.
|
||||
|
||||
**Tech Stack:** Spring Boot, MyBatis, JUnit 4, Mockito, Vue 3, Vue Router 4, Element Plus, Node `node:test`.
|
||||
|
||||
---
|
||||
|
||||
### Task 1: Backend Account Update APIs
|
||||
|
||||
**Files:**
|
||||
- Modify: `ruoyi-admin/src/test/java/com/ruoyi/web/service/front/FrontAuthServiceTest.java`
|
||||
- Modify: `ruoyi-admin/src/main/java/com/ruoyi/web/controller/front/FrontAuthController.java`
|
||||
- Modify: `ruoyi-admin/src/main/java/com/ruoyi/web/service/front/FrontAuthService.java`
|
||||
- Modify: `ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/IFrontUserService.java`
|
||||
- Modify: `ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/FrontUserServiceImpl.java`
|
||||
- Create: `ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/FrontProfileUpdateBody.java`
|
||||
- Create: `ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/FrontPasswordUpdateBody.java`
|
||||
|
||||
- [ ] **Step 1: Write failing backend tests**
|
||||
|
||||
Add tests proving profile update returns a password-free profile and password update rejects the wrong old password.
|
||||
|
||||
- [ ] **Step 2: Run backend tests and verify RED**
|
||||
|
||||
Run: `mvn -pl ruoyi-admin -Dtest=FrontAuthServiceTest test`
|
||||
|
||||
Expected: compilation/test failure because new DTOs and service methods do not exist yet.
|
||||
|
||||
- [ ] **Step 3: Add DTOs and service methods**
|
||||
|
||||
Add request DTOs and implement `updateProfile` / `updatePassword` using current front user id, existing password matching, and `FrontUserMapper.updateFrontUser`.
|
||||
|
||||
- [ ] **Step 4: Run backend tests and verify GREEN**
|
||||
|
||||
Run: `mvn -pl ruoyi-admin -Dtest=FrontAuthServiceTest test`
|
||||
|
||||
Expected: tests pass.
|
||||
|
||||
### Task 2: Frontend Route, API, Header, and Page
|
||||
|
||||
**Files:**
|
||||
- Create: `easycode-web/src/views/profileView.test.mjs`
|
||||
- Create: `easycode-web/src/views/ProfileView.vue`
|
||||
- Modify: `easycode-web/src/api/auth.js`
|
||||
- Modify: `easycode-web/src/router/index.js`
|
||||
- Modify: `easycode-web/src/components/AppHeader.vue`
|
||||
|
||||
- [ ] **Step 1: Write failing frontend tests**
|
||||
|
||||
Add a source-level `node:test` file that asserts `/profile` is protected, the header links to it, and `ProfileView.vue` imports and uses the required APIs.
|
||||
|
||||
- [ ] **Step 2: Run frontend tests and verify RED**
|
||||
|
||||
Run: `node src/views/profileView.test.mjs` from `easycode-web`.
|
||||
|
||||
Expected: failure because `ProfileView.vue` does not exist and route/header/API entries are missing.
|
||||
|
||||
- [ ] **Step 3: Implement route, API helpers, header entry, and page**
|
||||
|
||||
Add the protected route, auth API helpers, clickable profile entry in the header, and a tabbed profile center page with independent loading states.
|
||||
|
||||
- [ ] **Step 4: Run frontend tests and verify GREEN**
|
||||
|
||||
Run: `node src/views/profileView.test.mjs` from `easycode-web`.
|
||||
|
||||
Expected: tests pass.
|
||||
|
||||
### Task 3: Verification
|
||||
|
||||
**Files:**
|
||||
- Verify all changed backend, frontend, and doc files.
|
||||
|
||||
- [ ] **Step 1: Run focused backend test**
|
||||
|
||||
Run: `mvn -pl ruoyi-admin -Dtest=FrontAuthServiceTest test`
|
||||
|
||||
Expected: build success with `FrontAuthServiceTest` passing.
|
||||
|
||||
- [ ] **Step 2: Run focused frontend source test**
|
||||
|
||||
Run: `node src/views/profileView.test.mjs` from `easycode-web`.
|
||||
|
||||
Expected: all assertions pass.
|
||||
|
||||
- [ ] **Step 3: Run frontend production build**
|
||||
|
||||
Run: `npm run build` from `easycode-web`.
|
||||
|
||||
Expected: Vite build completes successfully.
|
||||
Reference in New Issue
Block a user