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.

Commit0afb2c9

Browse files
committed
chore(works): tests
1 parent3e5047c commit0afb2c9

File tree

22 files changed

+3985
-0
lines changed

22 files changed

+3985
-0
lines changed
Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
defmoduleGroupherServer.Test.CMS.AbuseReports.WorksReportdo
2+
@moduledocfalse
3+
4+
useGroupherServer.TestTools
5+
6+
aliasHelper.ORM
7+
aliasGroupherServer.CMS
8+
aliasCMS.Model.Works
9+
10+
setupdo
11+
{:ok,user}=db_insert(:user)
12+
{:ok,user2}=db_insert(:user)
13+
14+
{:ok,community}=db_insert(:community)
15+
works_attrs=mock_attrs(:works,%{community_id:community.id})
16+
17+
{:ok,~m(user user2 community works_attrs)a}
18+
end
19+
20+
describe"[article works report/unreport]"do
21+
test"list article reports should work",~m(community user user2 works_attrs)ado
22+
{:ok,works}=CMS.create_article(community,:works,works_attrs,user)
23+
{:ok,_report}=CMS.report_article(:works,works.id,"reason","attr_info",user)
24+
{:ok,_report}=CMS.report_article(:works,works.id,"reason","attr_info",user2)
25+
26+
filter=%{content_type::works,content_id:works.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==works.id
31+
assertreport.article.thread=="WORKS"
32+
end
33+
34+
test"report a works should have a abuse report record",~m(community user works_attrs)ado
35+
{:ok,works}=CMS.create_article(community,:works,works_attrs,user)
36+
{:ok,_report}=CMS.report_article(:works,works.id,"reason","attr_info",user)
37+
38+
filter=%{content_type::works,content_id:works.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==works.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,works}=ORM.find(Works,works.id)
50+
assertworks.meta.reported_count==1
51+
assertuser.idinworks.meta.reported_user_ids
52+
end
53+
54+
test"can undo a report",~m(community user works_attrs)ado
55+
{:ok,works}=CMS.create_article(community,:works,works_attrs,user)
56+
{:ok,_report}=CMS.report_article(:works,works.id,"reason","attr_info",user)
57+
{:ok,_report}=CMS.undo_report_article(:works,works.id,user)
58+
59+
filter=%{content_type::works,content_id:works.id,page:1,size:20}
60+
{:ok,all_reports}=CMS.paged_reports(filter)
61+
assertall_reports.total_count==0
62+
63+
{:ok,works}=ORM.find(Works,works.id)
64+
assertuser.idnot inworks.meta.reported_user_ids
65+
end
66+
67+
test"can undo a existed report",~m(community user user2 works_attrs)ado
68+
{:ok,works}=CMS.create_article(community,:works,works_attrs,user)
69+
{:ok,_report}=CMS.report_article(:works,works.id,"reason","attr_info",user)
70+
{:ok,_report}=CMS.report_article(:works,works.id,"reason","attr_info",user2)
71+
{:ok,_report}=CMS.undo_report_article(:works,works.id,user)
72+
73+
filter=%{content_type::works,content_id:works.id,page:1,size:20}
74+
{:ok,all_reports}=CMS.paged_reports(filter)
75+
assertall_reports.total_count==1
76+
77+
{:ok,works}=ORM.find(Works,works.id)
78+
79+
assertuser2.idinworks.meta.reported_user_ids
80+
assertuser.idnot inworks.meta.reported_user_ids
81+
end
82+
83+
test"can undo a report with other user report it too",
84+
~m(community user user2 works_attrs)ado
85+
{:ok,works}=CMS.create_article(community,:works,works_attrs,user)
86+
{:ok,_report}=CMS.report_article(:works,works.id,"reason","attr_info",user)
87+
{:ok,_report}=CMS.report_article(:works,works.id,"reason","attr_info",user2)
88+
89+
filter=%{content_type::works,content_id:works.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(:works,works.id,user)
99+
100+
filter=%{content_type::works,content_id:works.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 works_attrs)ado
111+
{:ok,works}=CMS.create_article(community,:works,works_attrs,user)
112+
113+
{:ok,_report}=CMS.report_article(:works,works.id,"reason","attr_info",user)
114+
{:ok,_report}=CMS.report_article(:works,works.id,"reason2","attr_info 2",user2)
115+
116+
filter=%{content_type::works,content_id:works.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 works_attrs user)ado
131+
{:ok,works}=CMS.create_article(community,:works,works_attrs,user)
132+
133+
{:ok,_report}=CMS.report_article(:works,works.id,"reason","attr_info",user)
134+
assert{:error,_report}=CMS.report_article(:works,works.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.Worksdo
2+
useGroupherServer.TestTools
3+
4+
aliasHelper.ORM
5+
aliasGroupherServer.CMS
6+
aliasCMS.Model.Works
7+
8+
setupdo
9+
{:ok,user}=db_insert(:user)
10+
{:ok,user2}=db_insert(:user)
11+
{:ok,works}=db_insert(:works)
12+
{:ok,community}=db_insert(:community)
13+
{:ok,community2}=db_insert(:community)
14+
{:ok,community3}=db_insert(:community)
15+
16+
works_attrs=mock_attrs(:works,%{community_id:community.id})
17+
18+
{:ok,~m(user user2 community community2 community3 works works_attrs)a}
19+
end
20+
21+
describe"[article mirror/move]"do
22+
test"created works has origial community info",~m(user community works_attrs)ado
23+
{:ok,works}=CMS.create_article(community,:works,works_attrs,user)
24+
{:ok,works}=ORM.find(Works,works.id,preload::original_community)
25+
26+
assertworks.original_community_id==community.id
27+
end
28+
29+
test"works can be move to other community",~m(user community community2 works_attrs)ado
30+
{:ok,works}=CMS.create_article(community,:works,works_attrs,user)
31+
assertworks.original_community_id==community.id
32+
33+
{:ok,_}=CMS.move_article(:works,works.id,community2.id)
34+
{:ok,works}=ORM.find(Works,works.id,preload:[:original_community,:communities])
35+
36+
assertworks.original_community.id==community2.id
37+
assertnotis_nil(Enum.find(works.communities,&(&1.id==community2.id)))
38+
end
39+
40+
test"works can be mirror to other community",~m(user community community2 works_attrs)ado
41+
{:ok,works}=CMS.create_article(community,:works,works_attrs,user)
42+
43+
{:ok,works}=ORM.find(Works,works.id,preload::communities)
44+
assertworks.communities|>length==1
45+
46+
assertnotis_nil(Enum.find(works.communities,&(&1.id==community.id)))
47+
48+
{:ok,_}=CMS.mirror_article(:works,works.id,community2.id)
49+
50+
{:ok,works}=ORM.find(Works,works.id,preload::communities)
51+
assertworks.communities|>length==2
52+
assertnotis_nil(Enum.find(works.communities,&(&1.id==community.id)))
53+
assertnotis_nil(Enum.find(works.communities,&(&1.id==community2.id)))
54+
end
55+
56+
test"works can be unmirror from community",
57+
~m(user community community2 community3 works_attrs)ado
58+
{:ok,works}=CMS.create_article(community,:works,works_attrs,user)
59+
{:ok,_}=CMS.mirror_article(:works,works.id,community2.id)
60+
{:ok,_}=CMS.mirror_article(:works,works.id,community3.id)
61+
62+
{:ok,works}=ORM.find(Works,works.id,preload::communities)
63+
assertworks.communities|>length==3
64+
65+
{:ok,_}=CMS.unmirror_article(:works,works.id,community3.id)
66+
{:ok,works}=ORM.find(Works,works.id,preload::communities)
67+
assertworks.communities|>length==2
68+
69+
assertis_nil(Enum.find(works.communities,&(&1.id==community3.id)))
70+
end
71+
72+
test"works can not unmirror from original community",
73+
~m(user community community2 community3 works_attrs)ado
74+
{:ok,works}=CMS.create_article(community,:works,works_attrs,user)
75+
{:ok,_}=CMS.mirror_article(:works,works.id,community2.id)
76+
{:ok,_}=CMS.mirror_article(:works,works.id,community3.id)
77+
78+
{:ok,works}=ORM.find(Works,works.id,preload::communities)
79+
assertworks.communities|>length==3
80+
81+
{:error,reason}=CMS.unmirror_article(:works,works.id,community.id)
82+
assertreason|>is_error?(:mirror_article)
83+
end
84+
end
85+
end
Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
defmoduleGroupherServer.Test.CMS.ArticleTag.WorksTagdo
2+
useGroupherServer.TestTools
3+
4+
aliasGroupherServer.CMS
5+
aliasCMS.Model.{Community,ArticleTag,Works}
6+
aliasHelper.{ORM}
7+
8+
setupdo
9+
{:ok,user}=db_insert(:user)
10+
{:ok,works}=db_insert(:works)
11+
{:ok,community}=db_insert(:community)
12+
article_tag_attrs=mock_attrs(:article_tag)
13+
article_tag_attrs2=mock_attrs(:article_tag)
14+
15+
works_attrs=mock_attrs(:works)
16+
17+
{:ok,~m(user community works works_attrs article_tag_attrs article_tag_attrs2)a}
18+
end
19+
20+
describe"[works tag CURD]"do
21+
test"create article tag with valid data",~m(community article_tag_attrs user)ado
22+
{:ok,article_tag}=CMS.create_article_tag(community,:works,article_tag_attrs,user)
23+
assertarticle_tag.title==article_tag_attrs.title
24+
assertarticle_tag.group==article_tag_attrs.group
25+
end
26+
27+
test"can update an article tag",~m(community article_tag_attrs user)ado
28+
{:ok,article_tag}=CMS.create_article_tag(community,:works,article_tag_attrs,user)
29+
30+
new_attrs=article_tag_attrs|>Map.merge(%{title:"new title"})
31+
32+
{:ok,article_tag}=CMS.update_article_tag(article_tag.id,new_attrs)
33+
assertarticle_tag.title=="new title"
34+
end
35+
36+
test"create article tag with non-exsit community fails",~m(article_tag_attrs user)ado
37+
assert{:error,_}=
38+
CMS.create_article_tag(
39+
%Community{id:non_exsit_id()},
40+
:works,
41+
article_tag_attrs,
42+
user
43+
)
44+
end
45+
46+
test"tag can be deleted",~m(community article_tag_attrs user)ado
47+
{:ok,article_tag}=CMS.create_article_tag(community,:works,article_tag_attrs,user)
48+
{:ok,article_tag}=ORM.find(ArticleTag,article_tag.id)
49+
50+
{:ok,_}=CMS.delete_article_tag(article_tag.id)
51+
52+
assert{:error,_}=ORM.find(ArticleTag,article_tag.id)
53+
end
54+
55+
test"assoc tag should be delete after tag deleted",
56+
~m(community works article_tag_attrs article_tag_attrs2 user)ado
57+
{:ok,article_tag}=CMS.create_article_tag(community,:works,article_tag_attrs,user)
58+
{:ok,article_tag2}=CMS.create_article_tag(community,:works,article_tag_attrs2,user)
59+
60+
{:ok,works}=CMS.set_article_tag(:works,works.id,article_tag.id)
61+
{:ok,works}=CMS.set_article_tag(:works,works.id,article_tag2.id)
62+
63+
{:ok,works}=ORM.find(Works,works.id,preload::article_tags)
64+
assertexist_in?(article_tag,works.article_tags)
65+
assertexist_in?(article_tag2,works.article_tags)
66+
67+
{:ok,_}=CMS.delete_article_tag(article_tag.id)
68+
69+
{:ok,works}=ORM.find(Works,works.id,preload::article_tags)
70+
assertnotexist_in?(article_tag,works.article_tags)
71+
assertexist_in?(article_tag2,works.article_tags)
72+
73+
{:ok,_}=CMS.delete_article_tag(article_tag2.id)
74+
75+
{:ok,works}=ORM.find(Works,works.id,preload::article_tags)
76+
assertnotexist_in?(article_tag,works.article_tags)
77+
assertnotexist_in?(article_tag2,works.article_tags)
78+
end
79+
end
80+
81+
describe"[create/update works with tags]"do
82+
test"can create works with exsited article tags",
83+
~m(community user works_attrs article_tag_attrs article_tag_attrs2)ado
84+
{:ok,article_tag}=CMS.create_article_tag(community,:works,article_tag_attrs,user)
85+
{:ok,article_tag2}=CMS.create_article_tag(community,:works,article_tag_attrs2,user)
86+
87+
works_with_tags=Map.merge(works_attrs,%{article_tags:[article_tag.id,article_tag2.id]})
88+
89+
{:ok,created}=CMS.create_article(community,:works,works_with_tags,user)
90+
{:ok,works}=ORM.find(Works,created.id,preload::article_tags)
91+
92+
assertexist_in?(article_tag,works.article_tags)
93+
assertexist_in?(article_tag2,works.article_tags)
94+
end
95+
96+
test"can not create works with other community's article tags",
97+
~m(community user works_attrs article_tag_attrs article_tag_attrs2)ado
98+
{:ok,community2}=db_insert(:community)
99+
{:ok,article_tag}=CMS.create_article_tag(community,:works,article_tag_attrs,user)
100+
{:ok,article_tag2}=CMS.create_article_tag(community2,:works,article_tag_attrs2,user)
101+
102+
works_with_tags=Map.merge(works_attrs,%{article_tags:[article_tag.id,article_tag2.id]})
103+
104+
{:error,reason}=CMS.create_article(community,:works,works_with_tags,user)
105+
is_error?(reason,:invalid_domain_tag)
106+
end
107+
end
108+
109+
describe"[works tag set /unset]"do
110+
test"can set a tag ",~m(community works article_tag_attrs article_tag_attrs2 user)ado
111+
{:ok,article_tag}=CMS.create_article_tag(community,:works,article_tag_attrs,user)
112+
{:ok,article_tag2}=CMS.create_article_tag(community,:works,article_tag_attrs2,user)
113+
114+
{:ok,works}=CMS.set_article_tag(:works,works.id,article_tag.id)
115+
assertworks.article_tags|>length==1
116+
assertexist_in?(article_tag,works.article_tags)
117+
118+
{:ok,works}=CMS.set_article_tag(:works,works.id,article_tag2.id)
119+
assertworks.article_tags|>length==2
120+
assertexist_in?(article_tag,works.article_tags)
121+
assertexist_in?(article_tag2,works.article_tags)
122+
123+
{:ok,works}=CMS.unset_article_tag(:works,works.id,article_tag.id)
124+
assertworks.article_tags|>length==1
125+
assertnotexist_in?(article_tag,works.article_tags)
126+
assertexist_in?(article_tag2,works.article_tags)
127+
128+
{:ok,works}=CMS.unset_article_tag(:works,works.id,article_tag2.id)
129+
assertworks.article_tags|>length==0
130+
assertnotexist_in?(article_tag,works.article_tags)
131+
assertnotexist_in?(article_tag2,works.article_tags)
132+
end
133+
end
134+
end

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp