Нема описа
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

session_test.go 2.0KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package model
  2. import (
  3. "testing"
  4. "time"
  5. "github.com/stretchr/testify/assert"
  6. )
  7. func TestSessionStatusConstants(t *testing.T) {
  8. assert.Equal(t, "requirement_document", StatusRequirementDocument)
  9. assert.Equal(t, "technical_document", StatusTechnicalDocument)
  10. assert.Equal(t, "code", StatusCode)
  11. assert.Equal(t, "test", StatusTest)
  12. assert.Equal(t, "release", StatusRelease)
  13. }
  14. func TestSessionCollectionName(t *testing.T) {
  15. s := Session{}
  16. assert.Equal(t, "code_sessions", s.CollectionName())
  17. }
  18. func TestSessionDetailCollectionName(t *testing.T) {
  19. d := SessionDetail{}
  20. assert.Equal(t, "code_session_details", d.CollectionName())
  21. }
  22. func TestSessionWithDetail(t *testing.T) {
  23. session := &Session{
  24. ID: "test-session-123",
  25. Title: "测试会话",
  26. AgentName: "replenish",
  27. Status: StatusRequirementDocument,
  28. UserID: "user-001",
  29. TenantID: "tenant-001",
  30. CreatedAt: time.Now(),
  31. UpdatedAt: time.Now(),
  32. }
  33. detail := &SessionDetail{
  34. SessionID: "test-session-123",
  35. RequirementDoc: "需求文档内容",
  36. TechnicalDoc: "技术文档内容",
  37. CodeItems: []CodeItem{
  38. {
  39. Order: 1,
  40. SelectPart: "SELECT *",
  41. FromPart: "FROM users",
  42. WherePart: "WHERE active = true",
  43. GroupByPart: "GROUP BY type",
  44. OrderByPart: "ORDER BY created_at DESC",
  45. TempTableName: "temp_users",
  46. Parameters: map[string]interface{}{
  47. "active": true,
  48. "limit": 100,
  49. },
  50. ReturnColumns: map[string]string{
  51. "id": "用户ID",
  52. "username": "用户名",
  53. "email": "邮箱",
  54. },
  55. },
  56. },
  57. CreatedAt: time.Now(),
  58. UpdatedAt: time.Now(),
  59. }
  60. sessionWithDetail := &SessionWithDetail{
  61. Session: session,
  62. Detail: detail,
  63. HistoryCount: 5,
  64. }
  65. assert.Equal(t, "test-session-123", sessionWithDetail.Session.ID)
  66. assert.Equal(t, "test-session-123", sessionWithDetail.Detail.SessionID)
  67. assert.Equal(t, 5, sessionWithDetail.HistoryCount)
  68. assert.Equal(t, 1, len(sessionWithDetail.Detail.CodeItems))
  69. assert.Equal(t, "SELECT *", sessionWithDetail.Detail.CodeItems[0].SelectPart)
  70. }