feat: expand EasyCode software factory workflows
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
# Legacy Menu Code Navigation 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:** Prevent legacy business menu codes from being rendered as artificial English parent menus.
|
||||
|
||||
**Architecture:** Keep the existing page-design navigation group builder, but
|
||||
derive parent relationships only from explicit navigation metadata. Preserve
|
||||
`menu_code` as the stable key for primary groups.
|
||||
|
||||
**Tech Stack:** Java 8, Apache Velocity, JUnit 4, Maven
|
||||
|
||||
---
|
||||
|
||||
### Task 1: Add the regression test
|
||||
|
||||
**Files:**
|
||||
- Test: `ruoyi-generator/src/test/java/com/ruoyi/generator/util/QingTemplateSupportTest.java`
|
||||
|
||||
- [ ] **Step 1: Write the failing test**
|
||||
|
||||
Create a frontend page design with:
|
||||
|
||||
```java
|
||||
page.setPageCode("announcement_list_page");
|
||||
page.setMenuCode("announcements");
|
||||
page.setPageName("\u516c\u544a\u5217\u8868");
|
||||
page.setLayoutJson("{\"canvas\":\"frontend-list-v1\",\"regions\":[]}");
|
||||
```
|
||||
|
||||
Render `qing/vue-app.vue.vm` and assert that the page name is a clickable
|
||||
primary menu, while `announcements` is not rendered as a directory.
|
||||
|
||||
- [ ] **Step 2: Run the test to verify it fails**
|
||||
|
||||
Run:
|
||||
|
||||
```text
|
||||
mvn -pl ruoyi-generator -Dtest=QingTemplateSupportTest#qingPortalTreatsLegacyMenuCodeAsPrimaryMenu test
|
||||
```
|
||||
|
||||
Expected: FAIL because the rendered application contains an
|
||||
`announcements` directory.
|
||||
|
||||
### Task 2: Correct the hierarchy inference
|
||||
|
||||
**Files:**
|
||||
- Modify: `ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java`
|
||||
|
||||
- [ ] **Step 1: Write the minimal implementation**
|
||||
|
||||
Change `pageDesignParentMenuCode` so it returns only the explicit
|
||||
`navigation.parentMenuCode`. Do not infer parentage from `menu_code`.
|
||||
|
||||
- [ ] **Step 2: Run the regression test**
|
||||
|
||||
Run:
|
||||
|
||||
```text
|
||||
mvn -pl ruoyi-generator -Dtest=QingTemplateSupportTest#qingPortalTreatsLegacyMenuCodeAsPrimaryMenu test
|
||||
```
|
||||
|
||||
Expected: PASS.
|
||||
|
||||
- [ ] **Step 3: Run related menu hierarchy tests**
|
||||
|
||||
Run:
|
||||
|
||||
```text
|
||||
mvn -pl ruoyi-generator -Dtest=QingTemplateSupportTest test
|
||||
```
|
||||
|
||||
Expected: all `QingTemplateSupportTest` tests pass.
|
||||
Reference in New Issue
Block a user