test-subsection-navigation.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. const { PrismaClient } = require('@prisma/client');
  2. const prisma = new PrismaClient();
  3. async function testSubsectionNavigation() {
  4. console.log('\n📊 测试小节导航:\n');
  5. const bookId = 5;
  6. // 获取一个小节
  7. const subsection = await prisma.bookChapter.findFirst({
  8. where: {
  9. bookId,
  10. level: 3
  11. },
  12. select: {
  13. id: true,
  14. title: true,
  15. level: true,
  16. number: true,
  17. content: true,
  18. status: true,
  19. contentStatus: true,
  20. }
  21. });
  22. if (!subsection) {
  23. console.log('❌ 找不到小节\n');
  24. await prisma.$disconnect();
  25. return;
  26. }
  27. console.log('示例小节:');
  28. console.log(` ID: ${subsection.id}`);
  29. console.log(` 标题: ${subsection.title}`);
  30. console.log(` Level: ${subsection.level}`);
  31. console.log(` Number: ${subsection.number}`);
  32. console.log(` Status: ${subsection.status}`);
  33. console.log(` ContentStatus: ${subsection.contentStatus}`);
  34. console.log(` 内容: ${subsection.content ? subsection.content.substring(0, 50) + '...' : '无'}\n`);
  35. console.log('✅ 前端应该这样跳转:');
  36. console.log(` /pages/book-generator/chapter-detail?bookId=5&chapter=${subsection.id}\n`);
  37. console.log('✅ 详情页应该显示:');
  38. console.log(` - 标题: ${subsection.title}`);
  39. console.log(` - Level: 3 (小节)`);
  40. console.log(` - 内容: ${subsection.content ? '有内容' : '无内容'}`);
  41. console.log(` - 状态: ${subsection.status}\n`);
  42. await prisma.$disconnect();
  43. }
  44. testSubsectionNavigation().catch(console.error);