34 lines
1.5 KiB
Go
34 lines
1.5 KiB
Go
package xiaohongshu
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"testing"
|
|
|
|
"git.ipao.vip/rogee/creator-hub/internal/creator"
|
|
)
|
|
|
|
func TestGetNoteDetailPreservesShareContext(t *testing.T) {
|
|
browser := &fakeBrowser{postResp: Response{Status: 200, Body: []byte(`{"success":true,"data":{"items":[{"note_id":"n-1","title":"详情","desc":"正文","time":1710000000,"user":{"user_id":"u-1","nickname":"作者"},"interact_info":{"liked_count":1,"comment_count":2,"shared_count":3}}]}}`)}}
|
|
collector := &Collector{Browser: browser, SourceType: creator.SourceCompetitor, SourceID: "source-1"}
|
|
item, err := collector.GetNoteDetail(context.Background(), "https://www.xiaohongshu.com/explore/n-1?xsec_token=tok-1&xsec_source=pc_search")
|
|
if err != nil || item.WorkKey != "n-1" || item.AuthorKey != "u-1" || item.OriginalURL == "" {
|
|
t.Fatalf("item = %#v, err = %v", item, err)
|
|
}
|
|
if err := collector.SetWorkContext("n-1", item.OriginalURL); err != nil {
|
|
t.Fatalf("set work context: %v", err)
|
|
}
|
|
if browser.postURL != APIOrigin+FeedPath {
|
|
t.Fatalf("post URL = %s", browser.postURL)
|
|
}
|
|
}
|
|
|
|
func TestGetNoteDetailRejectsWrongResponseID(t *testing.T) {
|
|
browser := &fakeBrowser{postResp: Response{Status: 200, Body: []byte(`{"success":true,"data":{"items":[{"note_id":"n-2","title":"详情","time":1710000000,"interact_info":{}}]}}`)}}
|
|
collector := &Collector{Browser: browser}
|
|
_, err := collector.GetNoteDetail(context.Background(), "https://www.xiaohongshu.com/explore/n-1")
|
|
if !errors.Is(err, creator.ErrConflict) {
|
|
t.Fatalf("expected conflict, got %v", err)
|
|
}
|
|
}
|