Skip to content
This repository was archived by the owner on Nov 8, 2022. It is now read-only.

Commit 6818e50

Browse files
committed
fix(reaction-replate): test errors
1 parent abe5a30 commit 6818e50

24 files changed

+302
-451
lines changed

lib/groupher_server/cms/delegates/article_comment.ex

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -496,14 +496,11 @@ defmodule GroupherServer.CMS.Delegate.ArticleComment do
496496

497497
cur_count = Repo.aggregate(count_query, :count)
498498

499+
# dec 是 comment 还没有删除的时候的操作,和 inc 不同
500+
# 因为 dec 操作如果放在 delete 后面,那么 update 会失败
499501
case opt do
500-
:inc ->
501-
new_count = Enum.max([0, cur_count])
502-
ORM.update(article, %{article_comments_count: new_count + 1})
503-
504-
:dec ->
505-
new_count = Enum.max([1, cur_count])
506-
ORM.update(article, %{article_comments_count: new_count - 1})
502+
:inc -> ORM.update(article, %{article_comments_count: cur_count})
503+
:dec -> ORM.update(article, %{article_comments_count: Enum.max([1, cur_count]) - 1})
507504
end
508505
end
509506
end

lib/groupher_server/cms/utils/matcher.ex

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,6 @@ defmodule GroupherServer.CMS.Utils.Matcher do
1515
JobViewer,
1616
RepoViewer,
1717
# reactions
18-
PostFavorite,
19-
JobFavorite,
20-
RepoFavorite,
21-
PostStar,
22-
JobStar,
2318
# comments
2419
PostComment,
2520
# commtnes reaction
@@ -39,10 +34,6 @@ defmodule GroupherServer.CMS.Utils.Matcher do
3934
def match_action(:post, :self),
4035
do: {:ok, %{target: Post, reactor: Post, preload: :author, viewer: PostViewer}}
4136

42-
def match_action(:post, :favorite),
43-
do: {:ok, %{target: Post, reactor: PostFavorite, preload: :user, preload_right: :post}}
44-
45-
def match_action(:post, :star), do: {:ok, %{target: Post, reactor: PostStar, preload: :user}}
4637
def match_action(:post, :tag), do: {:ok, %{target: Post, reactor: Tag}}
4738
# NOTE: the tech, radar, share, city thread also use common tag
4839
def match_action(:radar, :tag), do: {:ok, %{target: Post, reactor: Tag}}
@@ -68,10 +59,6 @@ defmodule GroupherServer.CMS.Utils.Matcher do
6859
def match_action(:job, :community),
6960
do: {:ok, %{target: Job, reactor: Community, flag: JobCommunityFlag}}
7061

71-
def match_action(:job, :favorite),
72-
do: {:ok, %{target: Job, reactor: JobFavorite, preload: :user}}
73-
74-
def match_action(:job, :star), do: {:ok, %{target: Job, reactor: JobStar, preload: :user}}
7562
def match_action(:job, :tag), do: {:ok, %{target: Job, reactor: Tag}}
7663

7764
#########################################
@@ -85,9 +72,6 @@ defmodule GroupherServer.CMS.Utils.Matcher do
8572

8673
def match_action(:repo, :tag), do: {:ok, %{target: Repo, reactor: Tag}}
8774

88-
def match_action(:repo, :favorite),
89-
do: {:ok, %{target: Repo, reactor: RepoFavorite, preload: :user}}
90-
9175
# dynamic where query match
9276
def dynamic_where(thread, id) do
9377
case thread do

lib/groupher_server/statistics/delegates/contribute.ex

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,11 +70,8 @@ defmodule GroupherServer.Statistics.Delegate.Contribute do
7070
scope = Cache.get_scope(:community_contributes, id)
7171

7272
case Cache.get(:common, scope) do
73-
{:ok, result} ->
74-
{:ok, result}
75-
76-
{:error, _} ->
77-
get_contributes_then_cache(%Community{id: id})
73+
{:ok, result} -> {:ok, result}
74+
{:error, _} -> get_contributes_then_cache(%Community{id: id})
7875
end
7976
end
8077

@@ -85,7 +82,7 @@ defmodule GroupherServer.Statistics.Delegate.Contribute do
8582
%Community{id: id}
8683
|> do_get_contributes()
8784
|> to_counts_digest(days: @community_contribute_days)
88-
|> done_and_cache(:common, scope, expire: 60_000)
85+
|> done_and_cache(:common, scope, expire_min: 10)
8986
end
9087

9188
defp update_contribute_record(%UserContribute{} = contribute) do

lib/helper/utils/utils.ex

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,14 +67,21 @@ defmodule Helper.Utils do
6767
def done({n, nil}) when is_integer(n), do: {:ok, %{done: true}}
6868
def done(result), do: {:ok, result}
6969

70-
def done_and_cache(pool, result, scope, expire: expire_time) do
70+
def done_and_cache(result, pool, scope, expire_sec: expire_sec) do
7171
with {:ok, res} <- done(result) do
72-
Cache.put(pool, scope, res, expire: expire_time)
72+
Cache.put(pool, scope, res, expire_sec: expire_sec)
7373
{:ok, res}
7474
end
7575
end
7676

77-
def done_and_cache(pool, result, scope) do
77+
def done_and_cache(result, pool, scope, expire_min: expire_min) do
78+
with {:ok, res} <- done(result) do
79+
Cache.put(pool, scope, res, expire_min: expire_min)
80+
{:ok, res}
81+
end
82+
end
83+
84+
def done_and_cache(result, pool, scope) do
7885
with {:ok, res} <- done(result) do
7986
Cache.put(pool, scope, res)
8087
{:ok, res}

test/groupher_server/accounts/achievement_test.exs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,11 @@ defmodule GroupherServer.Test.Accounts.Achievement do
5151
describe "[Accounts Achievement funtion]" do
5252
alias Accounts.Achievement
5353

54+
@tag :wip
5455
test "Accounts.achieve should inc / dec achievement by parts", ~m(user)a do
5556
user |> Accounts.achieve(:inc, :follow)
56-
user |> Accounts.achieve(:inc, :star)
57-
user |> Accounts.achieve(:inc, :favorite)
57+
user |> Accounts.achieve(:inc, :upvote)
58+
user |> Accounts.achieve(:inc, :collect)
5859
{:ok, achievement} = Achievement |> ORM.find_by(user_id: user.id)
5960

6061
assert achievement.followers_count == 1
@@ -65,8 +66,8 @@ defmodule GroupherServer.Test.Accounts.Achievement do
6566
assert achievement.reputation == reputation
6667

6768
user |> Accounts.achieve(:dec, :follow)
68-
user |> Accounts.achieve(:dec, :star)
69-
user |> Accounts.achieve(:dec, :favorite)
69+
user |> Accounts.achieve(:dec, :upvote)
70+
user |> Accounts.achieve(:dec, :collect)
7071

7172
{:ok, achievement} = Achievement |> ORM.find_by(user_id: user.id)
7273
assert achievement.followers_count == 0
@@ -75,10 +76,11 @@ defmodule GroupherServer.Test.Accounts.Achievement do
7576
assert achievement.reputation == 0
7677
end
7778

79+
@tag :wip
7880
test "Accounts.achieve can not minus count < 0", ~m(user)a do
7981
user |> Accounts.achieve(:dec, :follow)
80-
user |> Accounts.achieve(:dec, :star)
81-
user |> Accounts.achieve(:dec, :favorite)
82+
user |> Accounts.achieve(:dec, :upvote)
83+
user |> Accounts.achieve(:dec, :collect)
8284

8385
{:ok, achievement} = Achievement |> ORM.find_by(user_id: user.id)
8486
assert achievement.followers_count == 0

test/groupher_server/accounts/collect_folder_test.exs

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ defmodule GroupherServer.Test.Accounts.CollectFolder do
2222
end
2323

2424
describe "[collect folder curd]" do
25-
@tag :wip3
25+
@tag :wip
2626
test "user can create collect folder", ~m(user)a do
2727
folder_title = "test folder"
2828

@@ -35,23 +35,23 @@ defmodule GroupherServer.Test.Accounts.CollectFolder do
3535
assert folder.meta |> Map.from_struct() |> Map.delete(:id) == @default_meta
3636
end
3737

38-
@tag :wip3
38+
@tag :wip
3939
test "user create dup collect folder fails", ~m(user)a do
4040
{:ok, _folder} = Accounts.create_collect_folder(%{title: "test folder"}, user)
4141
{:error, reason} = Accounts.create_collect_folder(%{title: "test folder"}, user)
4242

4343
assert reason |> is_error?(:already_exsit)
4444
end
4545

46-
@tag :wip3
46+
@tag :wip
4747
test "user can delete a empty collect folder", ~m(user)a do
4848
{:ok, folder} = Accounts.create_collect_folder(%{title: "test folder"}, user)
4949
{:ok, _} = Accounts.delete_collect_folder(folder.id)
5050

5151
assert {:error, _} = ORM.find(CMS.ArticleCollect, folder.id)
5252
end
5353

54-
@tag :wip3
54+
@tag :wip
5555
test "user can not delete a non-empty collect folder", ~m(post user)a do
5656
{:ok, folder} = Accounts.create_collect_folder(%{title: "test folder"}, user)
5757
{:ok, _folder} = Accounts.add_to_collect(:post, post.id, folder.id, user)
@@ -61,7 +61,7 @@ defmodule GroupherServer.Test.Accounts.CollectFolder do
6161
assert reason |> is_error?(:delete_no_empty_collect_folder)
6262
end
6363

64-
@tag :wip2
64+
@tag :wip
6565
test "user can get public collect-folder list", ~m(user)a do
6666
{:ok, _folder} = Accounts.create_collect_folder(%{title: "test folder"}, user)
6767
{:ok, _folder} = Accounts.create_collect_folder(%{title: "test folder2"}, user)
@@ -72,7 +72,7 @@ defmodule GroupherServer.Test.Accounts.CollectFolder do
7272
assert result.total_count == 2
7373
end
7474

75-
@tag :wip3
75+
@tag :wip
7676
test "user can get public collect-folder list by thread", ~m(user post)a do
7777
{:ok, folder} = Accounts.create_collect_folder(%{title: "test folder"}, user)
7878
{:ok, _folder} = Accounts.create_collect_folder(%{title: "test folder2"}, user)
@@ -87,7 +87,7 @@ defmodule GroupherServer.Test.Accounts.CollectFolder do
8787
assert result.entries |> List.first() |> Map.get(:id) == folder.id
8888
end
8989

90-
@tag :wip3
90+
@tag :wip
9191
test "user can not get private folder list of other user", ~m(user user2)a do
9292
{:ok, _folder} =
9393
Accounts.create_collect_folder(%{title: "test folder", private: true}, user2)
@@ -100,7 +100,7 @@ defmodule GroupherServer.Test.Accounts.CollectFolder do
100100
assert result.total_count == 1
101101
end
102102

103-
@tag :wip3
103+
@tag :wip
104104
test "collect creator can get both public and private folder list", ~m(user)a do
105105
{:ok, _folder} =
106106
Accounts.create_collect_folder(%{title: "test folder", private: true}, user)
@@ -112,7 +112,7 @@ defmodule GroupherServer.Test.Accounts.CollectFolder do
112112
assert result.total_count == 2
113113
end
114114

115-
@tag :wip2
115+
@tag :wip
116116
test "user can update a collect folder", ~m(user)a do
117117
{:ok, folder} = Accounts.create_collect_folder(%{title: "test folder", private: true}, user)
118118

@@ -128,7 +128,7 @@ defmodule GroupherServer.Test.Accounts.CollectFolder do
128128
end
129129

130130
describe "[add/remove from collect]" do
131-
@tag :wip3
131+
@tag :wip
132132
test "can add post to exsit colect-folder", ~m(user post)a do
133133
{:ok, folder} = Accounts.create_collect_folder(%{title: "test folder"}, user)
134134

@@ -139,7 +139,7 @@ defmodule GroupherServer.Test.Accounts.CollectFolder do
139139
assert folder.collects |> List.first() |> Map.get(:post_id) == post.id
140140
end
141141

142-
@tag :wip3
142+
@tag :wip
143143
test "can not collect some article in one collect-folder", ~m(user post)a do
144144
{:ok, folder} = Accounts.create_collect_folder(%{title: "test folder"}, user)
145145
{:ok, folder} = Accounts.add_to_collect(:post, post.id, folder.id, user)
@@ -148,7 +148,7 @@ defmodule GroupherServer.Test.Accounts.CollectFolder do
148148
assert reason |> is_error?(:already_collected_in_folder)
149149
end
150150

151-
@tag :wip3
151+
@tag :wip
152152
test "colect-folder should in article_collect's meta info too", ~m(user post)a do
153153
{:ok, folder} = Accounts.create_collect_folder(%{title: "test folder"}, user)
154154
{:ok, folder} = Accounts.add_to_collect(:post, post.id, folder.id, user)
@@ -159,7 +159,7 @@ defmodule GroupherServer.Test.Accounts.CollectFolder do
159159
assert article_collect_folder.id == folder.id
160160
end
161161

162-
@tag :wip3
162+
@tag :wip
163163
test "one article collected in different collect-folder should only have one article-collect record",
164164
~m(user post)a do
165165
{:ok, folder} = Accounts.create_collect_folder(%{title: "test folder"}, user)
@@ -175,7 +175,7 @@ defmodule GroupherServer.Test.Accounts.CollectFolder do
175175
assert result.total_count == 1
176176
end
177177

178-
@tag :wip3
178+
@tag :wip
179179
test "can remove post to exsit colect-folder", ~m(user post post2)a do
180180
{:ok, folder} = Accounts.create_collect_folder(%{title: "test folder"}, user)
181181
{:ok, _folder} = Accounts.add_to_collect(:post, post.id, folder.id, user)
@@ -190,7 +190,7 @@ defmodule GroupherServer.Test.Accounts.CollectFolder do
190190
assert result.entries |> List.first() |> Map.get(:id) == post2.id
191191
end
192192

193-
@tag :wip3
193+
@tag :wip
194194
test "can remove post to exsit colect-folder should update article collect meta",
195195
~m(user post)a do
196196
{:ok, folder} = Accounts.create_collect_folder(%{title: "test folder"}, user)
@@ -209,7 +209,7 @@ defmodule GroupherServer.Test.Accounts.CollectFolder do
209209
assert article_collect.id == folder2.id
210210
end
211211

212-
@tag :wip3
212+
@tag :wip
213213
test "post belongs to other folder should keep article collect record",
214214
~m(user post)a do
215215
{:ok, folder} = Accounts.create_collect_folder(%{title: "test folder"}, user)
@@ -230,7 +230,7 @@ defmodule GroupherServer.Test.Accounts.CollectFolder do
230230
assert result.total_count == 0
231231
end
232232

233-
@tag :wip3
233+
@tag :wip
234234
test "add post to exsit colect-folder should update meta", ~m(user post post2 job)a do
235235
{:ok, folder} = Accounts.create_collect_folder(%{title: "test folder"}, user)
236236

@@ -247,7 +247,7 @@ defmodule GroupherServer.Test.Accounts.CollectFolder do
247247
assert folder.meta.job_count == 1
248248
end
249249

250-
@tag :wip3
250+
@tag :wip
251251
test "remove post to exsit colect-folder should update meta", ~m(user post post2 job)a do
252252
{:ok, folder} = Accounts.create_collect_folder(%{title: "test folder"}, user)
253253
{:ok, _folder} = Accounts.add_to_collect(:post, post.id, folder.id, user)
@@ -269,7 +269,7 @@ defmodule GroupherServer.Test.Accounts.CollectFolder do
269269
assert not folder.meta.has_job
270270
end
271271

272-
@tag :wip3
272+
@tag :wip
273273
test "can get articles of a collect folder", ~m(user post job)a do
274274
{:ok, folder} = Accounts.create_collect_folder(%{title: "test folder"}, user)
275275
{:ok, _folder} = Accounts.add_to_collect(:post, post.id, folder.id, user)
@@ -288,7 +288,7 @@ defmodule GroupherServer.Test.Accounts.CollectFolder do
288288
assert collect_post.title == post.title
289289
end
290290

291-
@tag :wip3
291+
@tag :wip
292292
test "can not get articles of a private collect folder if not owner",
293293
~m(user user2 post job)a do
294294
{:ok, folder} = Accounts.create_collect_folder(%{title: "test folder", private: true}, user)

test/groupher_server/accounts/reacted_articles_test.exs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ defmodule GroupherServer.Test.Accounts.ReactedContents do
1414
end
1515

1616
describe "[user upvoted articles]" do
17-
@tag :wip2
17+
@tag :wip
1818
test "user can get paged upvoted common articles", ~m(user post job)a do
1919
{:ok, _} = CMS.upvote_article(:post, post.id, user)
2020
{:ok, _} = CMS.upvote_article(:job, job.id, user)
@@ -33,7 +33,7 @@ defmodule GroupherServer.Test.Accounts.ReactedContents do
3333
assert [:id, :thread, :title, :upvotes_count] == article_job |> Map.keys()
3434
end
3535

36-
@tag :wip2
36+
@tag :wip
3737
test "user can get paged upvoted posts by thread filter", ~m(user post job)a do
3838
{:ok, _} = CMS.upvote_article(:post, post.id, user)
3939
{:ok, _} = CMS.upvote_article(:job, job.id, user)
@@ -46,7 +46,7 @@ defmodule GroupherServer.Test.Accounts.ReactedContents do
4646
assert 1 == articles |> Map.get(:total_count)
4747
end
4848

49-
@tag :wip2
49+
@tag :wip
5050
test "user can get paged upvoted jobs by thread filter", ~m(user post job)a do
5151
{:ok, _} = CMS.upvote_article(:post, post.id, user)
5252
{:ok, _} = CMS.upvote_article(:job, job.id, user)

test/groupher_server/accounts/utils_test.exs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ defmodule GroupherServer.Test.Accounts.Utils do
88
@cache_pool :user_login
99

1010
describe "[get userid]" do
11-
@tag :wip2
11+
@tag :wip
1212
test "get_userid_and_cache should work" do
1313
{:ok, user} = db_insert(:user)
1414

0 commit comments

Comments
 (0)