zammad/spec/models/webhook/pre_defined_spec.rb
2026-01-02 15:41:09 +02:00

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