UX: Various improvements to welcome topic CTA (#21010)

- Update welcome topic copy
- Edit the welcome topic automatically when the title or description changes
- Remove “Create your Welcome Topic” banner/CTA
- Add "edit welcome topic" user tip
This commit is contained in:
Bianca Nenciu
2023-05-12 16:09:40 +02:00
committed by GitHub
parent b85d057df4
commit b73a9a1faa
30 changed files with 86 additions and 487 deletions

View File

@ -188,66 +188,4 @@ RSpec.describe Site do
data = JSON.parse(Site.json_for(Guardian.new))
expect(data["auth_providers"].map { |a| a["name"] }).to contain_exactly("facebook", "twitter")
end
describe ".show_welcome_topic_banner?" do
it "returns false when the user is not admin" do
first_post = Fabricate(:post, created_at: 25.days.ago)
SiteSetting.welcome_topic_id = first_post.topic.id
expect(Site.show_welcome_topic_banner?(Guardian.new(Fabricate(:user)))).to eq(false)
end
it "returns false when the user is not first admin who logs in" do
admin = Fabricate(:admin)
first_post = Fabricate(:post, created_at: 25.days.ago)
SiteSetting.welcome_topic_id = first_post.topic.id
expect(Site.show_welcome_topic_banner?(Guardian.new(admin))).to eq(false)
end
it "returns true when welcome topic is less than month old" do
admin = Fabricate(:admin)
UserAuthToken.generate!(user_id: admin.id)
first_post = Fabricate(:post, created_at: 25.days.ago)
SiteSetting.welcome_topic_id = first_post.topic.id
expect(Site.show_welcome_topic_banner?(Guardian.new(admin))).to eq(true)
expect(Discourse.cache.read(Site.welcome_topic_banner_cache_key(admin.id))).to eq(true)
end
it "returns false when welcome topic is more than month old" do
admin = Fabricate(:admin)
UserAuthToken.generate!(user_id: admin.id)
first_post = Fabricate(:post, created_at: 35.days.ago)
SiteSetting.welcome_topic_id = first_post.topic.id
expect(Site.show_welcome_topic_banner?(Guardian.new(admin))).to eq(false)
expect(Discourse.cache.read(Site.welcome_topic_banner_cache_key(admin.id))).to eq(false)
end
it "returns false when welcome topic has been edited" do
admin = Fabricate(:admin)
UserAuthToken.generate!(user_id: admin.id)
first_post = Fabricate(:post, version: 2, created_at: 25.days.ago)
SiteSetting.welcome_topic_id = first_post.topic.id
expect(Site.show_welcome_topic_banner?(Guardian.new(admin))).to eq(false)
expect(Discourse.cache.read(Site.welcome_topic_banner_cache_key(admin.id))).to eq(false)
end
it "returns false when welcome topic has been deleted" do
admin = Fabricate(:admin)
UserAuthToken.generate!(user_id: admin.id)
topic = Fabricate(:topic, deleted_at: 1.minute.ago)
first_post = Fabricate(:post, topic: topic, created_at: 25.days.ago)
SiteSetting.welcome_topic_id = topic.id
expect(Site.show_welcome_topic_banner?(Guardian.new(admin))).to eq(false)
expect(Discourse.cache.read(Site.welcome_topic_banner_cache_key(admin.id))).to eq(false)
end
end
end