Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
canifa_note
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Vũ Hoàng Anh
canifa_note
Commits
31f634b7
Commit
31f634b7
authored
Jan 12, 2026
by
Johnny
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
chore: add more tests
parent
8f9ff563
Changes
6
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
1934 additions
and
1 deletion
+1934
-1
inbox.go
store/db/postgres/inbox.go
+2
-1
activity_test.go
store/test/activity_test.go
+267
-0
idp_test.go
store/test/idp_test.go
+381
-0
inbox_test.go
store/test/inbox_test.go
+525
-0
memo_relation_test.go
store/test/memo_relation_test.go
+429
-0
user_setting_test.go
store/test/user_setting_test.go
+330
-0
No files found.
store/db/postgres/inbox.go
View file @
31f634b7
...
...
@@ -53,7 +53,8 @@ func (d *DB) ListInboxes(ctx context.Context, find *store.FindInbox) ([]*store.I
if
find
.
MessageType
!=
nil
{
// Filter by message type using PostgreSQL JSON extraction
// Note: The type field in JSON is stored as string representation of the enum name
where
,
args
=
append
(
where
,
"message->>'type' = "
+
placeholder
(
len
(
args
)
+
1
)),
append
(
args
,
find
.
MessageType
.
String
())
// Cast to JSONB since the column is TEXT
where
,
args
=
append
(
where
,
"message::JSONB->>'type' = "
+
placeholder
(
len
(
args
)
+
1
)),
append
(
args
,
find
.
MessageType
.
String
())
}
query
:=
"SELECT id, created_ts, sender_id, receiver_id, status, message FROM inbox WHERE "
+
strings
.
Join
(
where
,
" AND "
)
+
" ORDER BY created_ts DESC"
...
...
store/test/activity_test.go
View file @
31f634b7
...
...
@@ -99,3 +99,270 @@ func TestActivityListMultiple(t *testing.T) {
ts
.
Close
()
}
func
TestActivityListByType
(
t
*
testing
.
T
)
{
ctx
:=
context
.
Background
()
ts
:=
NewTestingStore
(
ctx
,
t
)
user
,
err
:=
createTestingHostUser
(
ctx
,
ts
)
require
.
NoError
(
t
,
err
)
// Create activities with MEMO_COMMENT type
_
,
err
=
ts
.
CreateActivity
(
ctx
,
&
store
.
Activity
{
CreatorID
:
user
.
ID
,
Type
:
store
.
ActivityTypeMemoComment
,
Level
:
store
.
ActivityLevelInfo
,
Payload
:
&
storepb
.
ActivityPayload
{},
})
require
.
NoError
(
t
,
err
)
_
,
err
=
ts
.
CreateActivity
(
ctx
,
&
store
.
Activity
{
CreatorID
:
user
.
ID
,
Type
:
store
.
ActivityTypeMemoComment
,
Level
:
store
.
ActivityLevelInfo
,
Payload
:
&
storepb
.
ActivityPayload
{},
})
require
.
NoError
(
t
,
err
)
// List by type
activityType
:=
store
.
ActivityTypeMemoComment
activities
,
err
:=
ts
.
ListActivities
(
ctx
,
&
store
.
FindActivity
{
Type
:
&
activityType
})
require
.
NoError
(
t
,
err
)
require
.
Len
(
t
,
activities
,
2
)
for
_
,
activity
:=
range
activities
{
require
.
Equal
(
t
,
store
.
ActivityTypeMemoComment
,
activity
.
Type
)
}
ts
.
Close
()
}
func
TestActivityPayloadMemoComment
(
t
*
testing
.
T
)
{
ctx
:=
context
.
Background
()
ts
:=
NewTestingStore
(
ctx
,
t
)
user
,
err
:=
createTestingHostUser
(
ctx
,
ts
)
require
.
NoError
(
t
,
err
)
// Create activity with MemoComment payload
memoID
:=
int32
(
123
)
relatedMemoID
:=
int32
(
456
)
activity
,
err
:=
ts
.
CreateActivity
(
ctx
,
&
store
.
Activity
{
CreatorID
:
user
.
ID
,
Type
:
store
.
ActivityTypeMemoComment
,
Level
:
store
.
ActivityLevelInfo
,
Payload
:
&
storepb
.
ActivityPayload
{
MemoComment
:
&
storepb
.
ActivityMemoCommentPayload
{
MemoId
:
memoID
,
RelatedMemoId
:
relatedMemoID
,
},
},
})
require
.
NoError
(
t
,
err
)
require
.
NotNil
(
t
,
activity
.
Payload
)
require
.
NotNil
(
t
,
activity
.
Payload
.
MemoComment
)
require
.
Equal
(
t
,
memoID
,
activity
.
Payload
.
MemoComment
.
MemoId
)
require
.
Equal
(
t
,
relatedMemoID
,
activity
.
Payload
.
MemoComment
.
RelatedMemoId
)
// Verify payload is preserved when listing
found
,
err
:=
ts
.
GetActivity
(
ctx
,
&
store
.
FindActivity
{
ID
:
&
activity
.
ID
})
require
.
NoError
(
t
,
err
)
require
.
NotNil
(
t
,
found
.
Payload
.
MemoComment
)
require
.
Equal
(
t
,
memoID
,
found
.
Payload
.
MemoComment
.
MemoId
)
require
.
Equal
(
t
,
relatedMemoID
,
found
.
Payload
.
MemoComment
.
RelatedMemoId
)
ts
.
Close
()
}
func
TestActivityEmptyPayload
(
t
*
testing
.
T
)
{
ctx
:=
context
.
Background
()
ts
:=
NewTestingStore
(
ctx
,
t
)
user
,
err
:=
createTestingHostUser
(
ctx
,
ts
)
require
.
NoError
(
t
,
err
)
// Create activity with empty payload
activity
,
err
:=
ts
.
CreateActivity
(
ctx
,
&
store
.
Activity
{
CreatorID
:
user
.
ID
,
Type
:
store
.
ActivityTypeMemoComment
,
Level
:
store
.
ActivityLevelInfo
,
Payload
:
&
storepb
.
ActivityPayload
{},
})
require
.
NoError
(
t
,
err
)
require
.
NotNil
(
t
,
activity
.
Payload
)
// Verify empty payload is handled correctly
found
,
err
:=
ts
.
GetActivity
(
ctx
,
&
store
.
FindActivity
{
ID
:
&
activity
.
ID
})
require
.
NoError
(
t
,
err
)
require
.
NotNil
(
t
,
found
.
Payload
)
require
.
Nil
(
t
,
found
.
Payload
.
MemoComment
)
ts
.
Close
()
}
func
TestActivityLevel
(
t
*
testing
.
T
)
{
ctx
:=
context
.
Background
()
ts
:=
NewTestingStore
(
ctx
,
t
)
user
,
err
:=
createTestingHostUser
(
ctx
,
ts
)
require
.
NoError
(
t
,
err
)
// Create activity with INFO level
activity
,
err
:=
ts
.
CreateActivity
(
ctx
,
&
store
.
Activity
{
CreatorID
:
user
.
ID
,
Type
:
store
.
ActivityTypeMemoComment
,
Level
:
store
.
ActivityLevelInfo
,
Payload
:
&
storepb
.
ActivityPayload
{},
})
require
.
NoError
(
t
,
err
)
require
.
Equal
(
t
,
store
.
ActivityLevelInfo
,
activity
.
Level
)
// Verify level is preserved when listing
found
,
err
:=
ts
.
GetActivity
(
ctx
,
&
store
.
FindActivity
{
ID
:
&
activity
.
ID
})
require
.
NoError
(
t
,
err
)
require
.
Equal
(
t
,
store
.
ActivityLevelInfo
,
found
.
Level
)
ts
.
Close
()
}
func
TestActivityCreatorID
(
t
*
testing
.
T
)
{
ctx
:=
context
.
Background
()
ts
:=
NewTestingStore
(
ctx
,
t
)
user1
,
err
:=
createTestingHostUser
(
ctx
,
ts
)
require
.
NoError
(
t
,
err
)
user2
,
err
:=
createTestingUserWithRole
(
ctx
,
ts
,
"user2"
,
store
.
RoleUser
)
require
.
NoError
(
t
,
err
)
// Create activity for user1
activity1
,
err
:=
ts
.
CreateActivity
(
ctx
,
&
store
.
Activity
{
CreatorID
:
user1
.
ID
,
Type
:
store
.
ActivityTypeMemoComment
,
Level
:
store
.
ActivityLevelInfo
,
Payload
:
&
storepb
.
ActivityPayload
{},
})
require
.
NoError
(
t
,
err
)
require
.
Equal
(
t
,
user1
.
ID
,
activity1
.
CreatorID
)
// Create activity for user2
activity2
,
err
:=
ts
.
CreateActivity
(
ctx
,
&
store
.
Activity
{
CreatorID
:
user2
.
ID
,
Type
:
store
.
ActivityTypeMemoComment
,
Level
:
store
.
ActivityLevelInfo
,
Payload
:
&
storepb
.
ActivityPayload
{},
})
require
.
NoError
(
t
,
err
)
require
.
Equal
(
t
,
user2
.
ID
,
activity2
.
CreatorID
)
// List all and verify creator IDs
activities
,
err
:=
ts
.
ListActivities
(
ctx
,
&
store
.
FindActivity
{})
require
.
NoError
(
t
,
err
)
require
.
Len
(
t
,
activities
,
2
)
ts
.
Close
()
}
func
TestActivityCreatedTs
(
t
*
testing
.
T
)
{
ctx
:=
context
.
Background
()
ts
:=
NewTestingStore
(
ctx
,
t
)
user
,
err
:=
createTestingHostUser
(
ctx
,
ts
)
require
.
NoError
(
t
,
err
)
activity
,
err
:=
ts
.
CreateActivity
(
ctx
,
&
store
.
Activity
{
CreatorID
:
user
.
ID
,
Type
:
store
.
ActivityTypeMemoComment
,
Level
:
store
.
ActivityLevelInfo
,
Payload
:
&
storepb
.
ActivityPayload
{},
})
require
.
NoError
(
t
,
err
)
require
.
NotZero
(
t
,
activity
.
CreatedTs
)
// Verify timestamp is preserved when listing
found
,
err
:=
ts
.
GetActivity
(
ctx
,
&
store
.
FindActivity
{
ID
:
&
activity
.
ID
})
require
.
NoError
(
t
,
err
)
require
.
Equal
(
t
,
activity
.
CreatedTs
,
found
.
CreatedTs
)
ts
.
Close
()
}
func
TestActivityListEmpty
(
t
*
testing
.
T
)
{
ctx
:=
context
.
Background
()
ts
:=
NewTestingStore
(
ctx
,
t
)
// List activities when none exist
activities
,
err
:=
ts
.
ListActivities
(
ctx
,
&
store
.
FindActivity
{})
require
.
NoError
(
t
,
err
)
require
.
Len
(
t
,
activities
,
0
)
ts
.
Close
()
}
func
TestActivityListWithIDAndType
(
t
*
testing
.
T
)
{
ctx
:=
context
.
Background
()
ts
:=
NewTestingStore
(
ctx
,
t
)
user
,
err
:=
createTestingHostUser
(
ctx
,
ts
)
require
.
NoError
(
t
,
err
)
activity
,
err
:=
ts
.
CreateActivity
(
ctx
,
&
store
.
Activity
{
CreatorID
:
user
.
ID
,
Type
:
store
.
ActivityTypeMemoComment
,
Level
:
store
.
ActivityLevelInfo
,
Payload
:
&
storepb
.
ActivityPayload
{},
})
require
.
NoError
(
t
,
err
)
// List with both ID and Type filters
activityType
:=
store
.
ActivityTypeMemoComment
activities
,
err
:=
ts
.
ListActivities
(
ctx
,
&
store
.
FindActivity
{
ID
:
&
activity
.
ID
,
Type
:
&
activityType
,
})
require
.
NoError
(
t
,
err
)
require
.
Len
(
t
,
activities
,
1
)
require
.
Equal
(
t
,
activity
.
ID
,
activities
[
0
]
.
ID
)
ts
.
Close
()
}
func
TestActivityPayloadComplexMemoComment
(
t
*
testing
.
T
)
{
ctx
:=
context
.
Background
()
ts
:=
NewTestingStore
(
ctx
,
t
)
user
,
err
:=
createTestingHostUser
(
ctx
,
ts
)
require
.
NoError
(
t
,
err
)
// Create a memo first to use its ID
memo
,
err
:=
ts
.
CreateMemo
(
ctx
,
&
store
.
Memo
{
UID
:
"test-memo-for-activity"
,
CreatorID
:
user
.
ID
,
Content
:
"Test memo content"
,
Visibility
:
store
.
Public
,
})
require
.
NoError
(
t
,
err
)
// Create comment memo
commentMemo
,
err
:=
ts
.
CreateMemo
(
ctx
,
&
store
.
Memo
{
UID
:
"comment-memo"
,
CreatorID
:
user
.
ID
,
Content
:
"This is a comment"
,
Visibility
:
store
.
Public
,
})
require
.
NoError
(
t
,
err
)
// Create activity with real memo IDs
activity
,
err
:=
ts
.
CreateActivity
(
ctx
,
&
store
.
Activity
{
CreatorID
:
user
.
ID
,
Type
:
store
.
ActivityTypeMemoComment
,
Level
:
store
.
ActivityLevelInfo
,
Payload
:
&
storepb
.
ActivityPayload
{
MemoComment
:
&
storepb
.
ActivityMemoCommentPayload
{
MemoId
:
memo
.
ID
,
RelatedMemoId
:
commentMemo
.
ID
,
},
},
})
require
.
NoError
(
t
,
err
)
require
.
Equal
(
t
,
memo
.
ID
,
activity
.
Payload
.
MemoComment
.
MemoId
)
require
.
Equal
(
t
,
commentMemo
.
ID
,
activity
.
Payload
.
MemoComment
.
RelatedMemoId
)
// Verify payload is preserved
found
,
err
:=
ts
.
GetActivity
(
ctx
,
&
store
.
FindActivity
{
ID
:
&
activity
.
ID
})
require
.
NoError
(
t
,
err
)
require
.
Equal
(
t
,
memo
.
ID
,
found
.
Payload
.
MemoComment
.
MemoId
)
require
.
Equal
(
t
,
commentMemo
.
ID
,
found
.
Payload
.
MemoComment
.
RelatedMemoId
)
ts
.
Close
()
}
store/test/idp_test.go
View file @
31f634b7
This diff is collapsed.
Click to expand it.
store/test/inbox_test.go
View file @
31f634b7
This diff is collapsed.
Click to expand it.
store/test/memo_relation_test.go
View file @
31f634b7
This diff is collapsed.
Click to expand it.
store/test/user_setting_test.go
View file @
31f634b7
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment