|
9 | 9 | group.add(user) |
10 | 10 | assign_fake_provider_to(:ai_summarization_model) |
11 | 11 | SiteSetting.ai_summarization_enabled = true |
| 12 | + SiteSetting.ai_summarize_max_hot_topics_gists_per_batch = 1 |
12 | 13 | end |
13 | 14 |
|
14 | | - describe "#can_see_summary?" do |
15 | | - let(:guardian) { Guardian.new(user) } |
| 15 | + let(:anon_guardian) { Guardian.new } |
| 16 | + let(:guardian) { Guardian.new(user) } |
16 | 17 |
|
| 18 | + describe "#can_see_summary?" do |
17 | 19 | context "when the user cannot generate a summary" do |
18 | 20 | before { SiteSetting.ai_custom_summarization_allowed_groups = "" } |
19 | 21 |
|
20 | 22 | it "returns false" do |
21 | 23 | SiteSetting.ai_custom_summarization_allowed_groups = "" |
22 | 24 |
|
23 | | - expect(guardian.can_see_summary?(topic, AiSummary.summary_types[:complete])).to eq(false) |
| 25 | + expect(guardian.can_see_summary?(topic)).to eq(false) |
24 | 26 | end |
25 | 27 |
|
26 | 28 | it "returns true if there is a cached summary" do |
|
32 | 34 | summary_type: AiSummary.summary_types[:complete], |
33 | 35 | ) |
34 | 36 |
|
35 | | - expect(guardian.can_see_summary?(topic, AiSummary.summary_types[:complete])).to eq(true) |
| 37 | + expect(guardian.can_see_summary?(topic)).to eq(true) |
36 | 38 | end |
37 | 39 | end |
38 | 40 |
|
39 | 41 | context "when the user can generate a summary" do |
40 | 42 | before { SiteSetting.ai_custom_summarization_allowed_groups = group.id } |
41 | 43 |
|
42 | 44 | it "returns true if the user group is present in the ai_custom_summarization_allowed_groups_map setting" do |
43 | | - expect(guardian.can_see_summary?(topic, AiSummary.summary_types[:complete])).to eq(true) |
| 45 | + expect(guardian.can_see_summary?(topic)).to eq(true) |
44 | 46 | end |
45 | 47 | end |
46 | 48 |
|
|
49 | 51 | let(:pm) { Fabricate(:private_message_topic) } |
50 | 52 |
|
51 | 53 | it "returns false" do |
52 | | - expect(guardian.can_see_summary?(pm, AiSummary.summary_types[:complete])).to eq(false) |
| 54 | + expect(guardian.can_see_summary?(pm)).to eq(false) |
53 | 55 | end |
54 | 56 |
|
55 | 57 | it "returns true if user is in a group that is allowed summaries" do |
56 | 58 | SiteSetting.ai_pm_summarization_allowed_groups = group.id |
57 | | - expect(guardian.can_see_summary?(pm, AiSummary.summary_types[:complete])).to eq(true) |
| 59 | + expect(guardian.can_see_summary?(pm)).to eq(true) |
58 | 60 | end |
59 | 61 | end |
60 | 62 |
|
61 | 63 | context "when there is no user" do |
62 | | - let(:guardian) { Guardian.new } |
63 | | - |
64 | 64 | it "returns false for anons" do |
65 | | - expect(guardian.can_see_summary?(topic, AiSummary.summary_types[:complete])).to eq(false) |
| 65 | + expect(anon_guardian.can_see_summary?(topic)).to eq(false) |
66 | 66 | end |
67 | 67 |
|
68 | 68 | it "returns true for anons when there is a cached summary" do |
|
74 | 74 | summary_type: AiSummary.summary_types[:complete], |
75 | 75 | ) |
76 | 76 |
|
77 | | - expect(guardian.can_see_summary?(topic, AiSummary.summary_types[:complete])).to eq(true) |
| 77 | + expect(guardian.can_see_summary?(topic)).to eq(true) |
| 78 | + end |
| 79 | + end |
| 80 | + end |
| 81 | + |
| 82 | + describe "#can_see_gists?" do |
| 83 | + before { SiteSetting.ai_hot_topic_gists_allowed_groups = group.id } |
| 84 | + let(:guardian) { Guardian.new(user) } |
| 85 | + |
| 86 | + context "when there is no user" do |
| 87 | + it "returns false for anons" do |
| 88 | + expect(anon_guardian.can_see_gists?).to eq(false) |
| 89 | + end |
| 90 | + end |
| 91 | + |
| 92 | + context "when there is a user but it's not a member of the allowed groups" do |
| 93 | + before { SiteSetting.ai_hot_topic_gists_allowed_groups = "" } |
| 94 | + |
| 95 | + it "returns false" do |
| 96 | + expect(guardian.can_see_gists?).to eq(false) |
| 97 | + end |
| 98 | + end |
| 99 | + |
| 100 | + context "when there is a user who is a member of an allowed group" do |
| 101 | + it "returns false" do |
| 102 | + expect(guardian.can_see_gists?).to eq(true) |
78 | 103 | end |
79 | 104 | end |
80 | 105 | end |
|
0 commit comments