Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Nov 8, 2022. It is now read-only.

Commitaf3d668

Browse files
committed
chore(guide): tests
1 parent13d22a1 commitaf3d668

File tree

23 files changed

+3956
-0
lines changed

23 files changed

+3956
-0
lines changed
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
defmoduleGroupherServer.Test.Accounts.Published.Guidedo
2+
useGroupherServer.TestTools
3+
4+
aliasGroupherServer.{Accounts,CMS}
5+
aliasAccounts.Model.User
6+
aliasHelper.ORM
7+
8+
@publish_count10
9+
10+
setupdo
11+
{:ok,user}=db_insert(:user)
12+
{:ok,user2}=db_insert(:user)
13+
{:ok,guide}=db_insert(:guide)
14+
{:ok,community}=db_insert(:community)
15+
{:ok,community2}=db_insert(:community)
16+
17+
{:ok,~m(user user2 guide community community2)a}
18+
end
19+
20+
describe"[publised guides]"do
21+
test"create guide should update user published meta",~m(community user)ado
22+
guide_attrs=mock_attrs(:guide,%{community_id:community.id})
23+
{:ok,_guide}=CMS.create_article(community,:guide,guide_attrs,user)
24+
{:ok,_guide}=CMS.create_article(community,:guide,guide_attrs,user)
25+
26+
{:ok,user}=ORM.find(User,user.id)
27+
assertuser.meta.published_guides_count==2
28+
end
29+
30+
test"fresh user get empty paged published guides",~m(user)ado
31+
{:ok,results}=Accounts.paged_published_articles(user,:guide,%{page:1,size:20})
32+
33+
assertresults|>is_valid_pagination?(:raw)
34+
assertresults.total_count==0
35+
end
36+
37+
test"user can get paged published guides",~m(user user2 community community2)ado
38+
pub_guides=
39+
Enum.reduce(1..@publish_count,[],fn_,acc->
40+
guide_attrs=mock_attrs(:guide,%{community_id:community.id})
41+
{:ok,guide}=CMS.create_article(community,:guide,guide_attrs,user)
42+
43+
acc++[guide]
44+
end)
45+
46+
pub_guides2=
47+
Enum.reduce(1..@publish_count,[],fn_,acc->
48+
guide_attrs=mock_attrs(:guide,%{community_id:community2.id})
49+
{:ok,guide}=CMS.create_article(community,:guide,guide_attrs,user)
50+
51+
acc++[guide]
52+
end)
53+
54+
# unrelated other user
55+
Enum.reduce(1..5,[],fn_,acc->
56+
guide_attrs=mock_attrs(:guide,%{community_id:community.id})
57+
{:ok,guide}=CMS.create_article(community,:guide,guide_attrs,user2)
58+
59+
acc++[guide]
60+
end)
61+
62+
{:ok,results}=Accounts.paged_published_articles(user,:guide,%{page:1,size:20})
63+
64+
assertresults|>is_valid_pagination?(:raw)
65+
assertresults.total_count==@publish_count*2
66+
67+
random_guide_id=pub_guides|>Enum.random()|>Map.get(:id)
68+
random_guide_id2=pub_guides2|>Enum.random()|>Map.get(:id)
69+
assertresults.entries|>Enum.any?(&(&1.id==random_guide_id))
70+
assertresults.entries|>Enum.any?(&(&1.id==random_guide_id2))
71+
end
72+
end
73+
74+
describe"[publised guide comments]"do
75+
test"can get published article comments",~m(guide user)ado
76+
total_count=10
77+
78+
Enum.reduce(1..total_count,[],fn_,acc->
79+
{:ok,comment}=CMS.create_comment(:guide,guide.id,mock_comment(),user)
80+
acc++[comment]
81+
end)
82+
83+
filter=%{page:1,size:20}
84+
{:ok,articles}=Accounts.paged_published_comments(user,:guide,filter)
85+
86+
entries=articles.entries
87+
article=entries|>List.first()
88+
89+
assertarticle.article.id==guide.id
90+
assertarticle.article.title==guide.title
91+
end
92+
end
93+
end
Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
defmoduleGroupherServer.Test.CMS.AbuseReports.GuideReportdo
2+
@moduledocfalse
3+
4+
useGroupherServer.TestTools
5+
6+
aliasHelper.ORM
7+
aliasGroupherServer.CMS
8+
aliasCMS.Model.Guide
9+
10+
setupdo
11+
{:ok,user}=db_insert(:user)
12+
{:ok,user2}=db_insert(:user)
13+
14+
{:ok,community}=db_insert(:community)
15+
guide_attrs=mock_attrs(:guide,%{community_id:community.id})
16+
17+
{:ok,~m(user user2 community guide_attrs)a}
18+
end
19+
20+
describe"[article guide report/unreport]"do
21+
test"list article reports should work",~m(community user user2 guide_attrs)ado
22+
{:ok,guide}=CMS.create_article(community,:guide,guide_attrs,user)
23+
{:ok,_report}=CMS.report_article(:guide,guide.id,"reason","attr_info",user)
24+
{:ok,_report}=CMS.report_article(:guide,guide.id,"reason","attr_info",user2)
25+
26+
filter=%{content_type::guide,content_id:guide.id,page:1,size:20}
27+
{:ok,all_reports}=CMS.paged_reports(filter)
28+
29+
report=all_reports.entries|>List.first()
30+
assertreport.article.id==guide.id
31+
assertreport.article.thread=="GUIDE"
32+
end
33+
34+
test"report a guide should have a abuse report record",~m(community user guide_attrs)ado
35+
{:ok,guide}=CMS.create_article(community,:guide,guide_attrs,user)
36+
{:ok,_report}=CMS.report_article(:guide,guide.id,"reason","attr_info",user)
37+
38+
filter=%{content_type::guide,content_id:guide.id,page:1,size:20}
39+
{:ok,all_reports}=CMS.paged_reports(filter)
40+
41+
report=List.first(all_reports.entries)
42+
report_cases=report.report_cases
43+
44+
assertreport.article.id==guide.id
45+
assertall_reports.total_count==1
46+
assertreport.report_cases_count==1
47+
assertList.first(report_cases).user.login==user.login
48+
49+
{:ok,guide}=ORM.find(Guide,guide.id)
50+
assertguide.meta.reported_count==1
51+
assertuser.idinguide.meta.reported_user_ids
52+
end
53+
54+
test"can undo a report",~m(community user guide_attrs)ado
55+
{:ok,guide}=CMS.create_article(community,:guide,guide_attrs,user)
56+
{:ok,_report}=CMS.report_article(:guide,guide.id,"reason","attr_info",user)
57+
{:ok,_report}=CMS.undo_report_article(:guide,guide.id,user)
58+
59+
filter=%{content_type::guide,content_id:guide.id,page:1,size:20}
60+
{:ok,all_reports}=CMS.paged_reports(filter)
61+
assertall_reports.total_count==0
62+
63+
{:ok,guide}=ORM.find(Guide,guide.id)
64+
assertuser.idnot inguide.meta.reported_user_ids
65+
end
66+
67+
test"can undo a existed report",~m(community user user2 guide_attrs)ado
68+
{:ok,guide}=CMS.create_article(community,:guide,guide_attrs,user)
69+
{:ok,_report}=CMS.report_article(:guide,guide.id,"reason","attr_info",user)
70+
{:ok,_report}=CMS.report_article(:guide,guide.id,"reason","attr_info",user2)
71+
{:ok,_report}=CMS.undo_report_article(:guide,guide.id,user)
72+
73+
filter=%{content_type::guide,content_id:guide.id,page:1,size:20}
74+
{:ok,all_reports}=CMS.paged_reports(filter)
75+
assertall_reports.total_count==1
76+
77+
{:ok,guide}=ORM.find(Guide,guide.id)
78+
79+
assertuser2.idinguide.meta.reported_user_ids
80+
assertuser.idnot inguide.meta.reported_user_ids
81+
end
82+
83+
test"can undo a report with other user report it too",
84+
~m(community user user2 guide_attrs)ado
85+
{:ok,guide}=CMS.create_article(community,:guide,guide_attrs,user)
86+
{:ok,_report}=CMS.report_article(:guide,guide.id,"reason","attr_info",user)
87+
{:ok,_report}=CMS.report_article(:guide,guide.id,"reason","attr_info",user2)
88+
89+
filter=%{content_type::guide,content_id:guide.id,page:1,size:20}
90+
{:ok,all_reports}=CMS.paged_reports(filter)
91+
assertall_reports.total_count==1
92+
93+
report=all_reports.entries|>List.first()
94+
assertreport.report_cases|>length==2
95+
assertEnum.any?(report.report_cases,&(&1.user.login==user.login))
96+
assertEnum.any?(report.report_cases,&(&1.user.login==user2.login))
97+
98+
{:ok,_report}=CMS.undo_report_article(:guide,guide.id,user)
99+
100+
filter=%{content_type::guide,content_id:guide.id,page:1,size:20}
101+
{:ok,all_reports}=CMS.paged_reports(filter)
102+
assertall_reports.total_count==1
103+
104+
report=all_reports.entries|>List.first()
105+
assertreport.report_cases|>length==1
106+
assertEnum.any?(report.report_cases,&(&1.user.login==user2.login))
107+
end
108+
109+
test"different user report a comment should have same report with different report cases",
110+
~m(community user user2 guide_attrs)ado
111+
{:ok,guide}=CMS.create_article(community,:guide,guide_attrs,user)
112+
113+
{:ok,_report}=CMS.report_article(:guide,guide.id,"reason","attr_info",user)
114+
{:ok,_report}=CMS.report_article(:guide,guide.id,"reason2","attr_info 2",user2)
115+
116+
filter=%{content_type::guide,content_id:guide.id,page:1,size:20}
117+
{:ok,all_reports}=CMS.paged_reports(filter)
118+
119+
report=List.first(all_reports.entries)
120+
report_cases=report.report_cases
121+
122+
assertall_reports.total_count==1
123+
assertlength(report_cases)==2
124+
assertreport.report_cases_count==2
125+
126+
assertList.first(report_cases).user.login==user.login
127+
assertList.last(report_cases).user.login==user2.login
128+
end
129+
130+
test"same user can not report a comment twice",~m(community guide_attrs user)ado
131+
{:ok,guide}=CMS.create_article(community,:guide,guide_attrs,user)
132+
133+
{:ok,_report}=CMS.report_article(:guide,guide.id,"reason","attr_info",user)
134+
assert{:error,_report}=CMS.report_article(:guide,guide.id,"reason","attr_info",user)
135+
end
136+
end
137+
end
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
defmoduleGroupherServer.Test.CMS.ArticleCommunity.Guidedo
2+
useGroupherServer.TestTools
3+
4+
aliasHelper.ORM
5+
aliasGroupherServer.CMS
6+
aliasCMS.Model.Guide
7+
8+
setupdo
9+
{:ok,user}=db_insert(:user)
10+
{:ok,user2}=db_insert(:user)
11+
{:ok,guide}=db_insert(:guide)
12+
{:ok,community}=db_insert(:community)
13+
{:ok,community2}=db_insert(:community)
14+
{:ok,community3}=db_insert(:community)
15+
16+
guide_attrs=mock_attrs(:guide,%{community_id:community.id})
17+
18+
{:ok,~m(user user2 community community2 community3 guide guide_attrs)a}
19+
end
20+
21+
describe"[article mirror/move]"do
22+
test"created guide has origial community info",~m(user community guide_attrs)ado
23+
{:ok,guide}=CMS.create_article(community,:guide,guide_attrs,user)
24+
{:ok,guide}=ORM.find(Guide,guide.id,preload::original_community)
25+
26+
assertguide.original_community_id==community.id
27+
end
28+
29+
test"guide can be move to other community",~m(user community community2 guide_attrs)ado
30+
{:ok,guide}=CMS.create_article(community,:guide,guide_attrs,user)
31+
assertguide.original_community_id==community.id
32+
33+
{:ok,_}=CMS.move_article(:guide,guide.id,community2.id)
34+
{:ok,guide}=ORM.find(Guide,guide.id,preload:[:original_community,:communities])
35+
36+
assertguide.original_community.id==community2.id
37+
assertnotis_nil(Enum.find(guide.communities,&(&1.id==community2.id)))
38+
end
39+
40+
test"guide can be mirror to other community",~m(user community community2 guide_attrs)ado
41+
{:ok,guide}=CMS.create_article(community,:guide,guide_attrs,user)
42+
43+
{:ok,guide}=ORM.find(Guide,guide.id,preload::communities)
44+
assertguide.communities|>length==1
45+
46+
assertnotis_nil(Enum.find(guide.communities,&(&1.id==community.id)))
47+
48+
{:ok,_}=CMS.mirror_article(:guide,guide.id,community2.id)
49+
50+
{:ok,guide}=ORM.find(Guide,guide.id,preload::communities)
51+
assertguide.communities|>length==2
52+
assertnotis_nil(Enum.find(guide.communities,&(&1.id==community.id)))
53+
assertnotis_nil(Enum.find(guide.communities,&(&1.id==community2.id)))
54+
end
55+
56+
test"guide can be unmirror from community",
57+
~m(user community community2 community3 guide_attrs)ado
58+
{:ok,guide}=CMS.create_article(community,:guide,guide_attrs,user)
59+
{:ok,_}=CMS.mirror_article(:guide,guide.id,community2.id)
60+
{:ok,_}=CMS.mirror_article(:guide,guide.id,community3.id)
61+
62+
{:ok,guide}=ORM.find(Guide,guide.id,preload::communities)
63+
assertguide.communities|>length==3
64+
65+
{:ok,_}=CMS.unmirror_article(:guide,guide.id,community3.id)
66+
{:ok,guide}=ORM.find(Guide,guide.id,preload::communities)
67+
assertguide.communities|>length==2
68+
69+
assertis_nil(Enum.find(guide.communities,&(&1.id==community3.id)))
70+
end
71+
72+
test"guide can not unmirror from original community",
73+
~m(user community community2 community3 guide_attrs)ado
74+
{:ok,guide}=CMS.create_article(community,:guide,guide_attrs,user)
75+
{:ok,_}=CMS.mirror_article(:guide,guide.id,community2.id)
76+
{:ok,_}=CMS.mirror_article(:guide,guide.id,community3.id)
77+
78+
{:ok,guide}=ORM.find(Guide,guide.id,preload::communities)
79+
assertguide.communities|>length==3
80+
81+
{:error,reason}=CMS.unmirror_article(:guide,guide.id,community.id)
82+
assertreason|>is_error?(:mirror_article)
83+
end
84+
end
85+
end

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp