Merge pull request #5705 from discourse/new_webhooks

FEATURE: Webhook for group and category events
This commit is contained in:
Vinoth Kannan
2018-04-02 10:53:21 +05:30
committed by GitHub
18 changed files with 214 additions and 13 deletions

View File

@ -368,6 +368,17 @@ describe Category do
end
end
describe 'new' do
subject { Fabricate.build(:category, user: Fabricate(:user)) }
it 'triggers a extensibility event' do
event = DiscourseEvent.track_events { subject.save! }.last
expect(event[:event_name]).to eq(:category_created)
expect(event[:params].first).to eq(subject)
end
end
describe "update" do
it "should enforce uniqueness of slug" do
Fabricate(:category, slug: "the-slug")
@ -384,14 +395,21 @@ describe Category do
@category_id = @category.id
@topic_id = @category.topic_id
SiteSetting.shared_drafts_category = @category.id.to_s
@category.destroy
end
it 'is deleted correctly' do
@category.destroy
expect(Category.exists?(id: @category_id)).to be false
expect(Topic.exists?(id: @topic_id)).to be false
expect(SiteSetting.shared_drafts_category).to be_blank
end
it 'triggers a extensibility event' do
event = DiscourseEvent.track_events { @category.destroy }.first
expect(event[:event_name]).to eq(:category_destroyed)
expect(event[:params].first).to eq(@category)
end
end
describe 'latest' do

View File

@ -411,17 +411,37 @@ describe Group do
expect(g.usernames.split(",").sort).to eq usernames.split(",").sort
end
it "correctly destroys groups" do
describe 'new' do
subject { Fabricate.build(:group) }
g = Fabricate(:group)
u1 = Fabricate(:user)
g.add(u1)
g.save!
it 'triggers a extensibility event' do
event = DiscourseEvent.track_events { subject.save! }.first
g.destroy
expect(event[:event_name]).to eq(:group_created)
expect(event[:params].first).to eq(subject)
end
end
expect(User.where(id: u1.id).count).to eq 1
expect(GroupUser.where(group_id: g.id).count).to eq 0
describe 'destroy' do
let(:user) { Fabricate(:user) }
let(:group) { Fabricate(:group, users: [user]) }
before do
group.add(user)
end
it "it deleted correctly" do
group.destroy!
expect(User.where(id: user.id).count).to eq 1
expect(GroupUser.where(group_id: group.id).count).to eq 0
end
it 'triggers a extensibility event' do
event = DiscourseEvent.track_events { group.destroy! }.first
expect(event[:event_name]).to eq(:group_destroyed)
expect(event[:params].first).to eq(group)
end
end
it "has custom fields" do