mirror of
https://github.com/zammad/zammad
synced 2026-05-24 09:48:36 +00:00
43 lines
1.6 KiB
Ruby
43 lines
1.6 KiB
Ruby
# Copyright (C) 2012-2026 Zammad Foundation, https://zammad-foundation.org/
|
|
|
|
require 'rails_helper'
|
|
|
|
RSpec.describe(Webhook::PreDefined) do
|
|
it 'checks that pre defined webhook list can be used' do
|
|
expect(described_class.pre_defined_webhooks.sort_by(&:name)).to include(
|
|
Webhook::PreDefined::Mattermost,
|
|
Webhook::PreDefined::MicrosoftTeams,
|
|
Webhook::PreDefined::RocketChat,
|
|
Webhook::PreDefined::Slack
|
|
)
|
|
end
|
|
|
|
context 'when definition is used' do
|
|
let(:slack_custom_payload) do
|
|
# rubocop:disable Lint/InterpolationCheck
|
|
JSON.pretty_generate({
|
|
mrkdwn: true,
|
|
text: '# #{ticket.title}',
|
|
attachments: [
|
|
{
|
|
text: "_[Ticket#\#{ticket.number}](\#{notification.link}): \#{notification.message}_\n\n\#{notification.changes}\n\n\#{notification.body}",
|
|
mrkdwn_in: [
|
|
'text'
|
|
],
|
|
color: '#{ticket.current_state_color}'
|
|
}
|
|
]
|
|
})
|
|
# rubocop:enable Lint/InterpolationCheck
|
|
end
|
|
|
|
it 'checks that pre defined webhook definitions are returned' do
|
|
expect(described_class.pre_defined_webhook_definitions.find { |item| item[:id] == 'Slack' }).to include(
|
|
id: 'Slack',
|
|
name: 'Slack Notifications',
|
|
custom_payload: include(slack_custom_payload),
|
|
fields: [],
|
|
)
|
|
end
|
|
end
|
|
end
|