2019-12-04 20:38:33 +05:30
# frozen_string_literal: true
2017-08-17 22:00:37 +05:30
require 'spec_helper'
2020-07-28 23:09:34 +05:30
RSpec . describe MicrosoftTeams :: Notifier do
2017-08-17 22:00:37 +05:30
subject { described_class . new ( webhook_url ) }
let ( :webhook_url ) { 'https://example.gitlab.com/' }
let ( :header ) { { 'Content-Type' = > 'application/json' } }
let ( :options ) do
{
title : 'JohnDoe4/project2' ,
2018-11-08 19:23:39 +05:30
summary : '[[JohnDoe4/project2](http://localhost/namespace2/gitlabhq)] Issue [#1 Awesome issue](http://localhost/namespace2/gitlabhq/issues/1) opened by user6' ,
2017-08-17 22:00:37 +05:30
activity : {
title : 'Issue opened by user6' ,
subtitle : 'in [JohnDoe4/project2](http://localhost/namespace2/gitlabhq)' ,
text : '[#1 Awesome issue](http://localhost/namespace2/gitlabhq/issues/1)' ,
image : 'http://someimage.com'
} ,
2020-03-09 13:42:32 +05:30
attachments : " [GitLab](https://gitlab.com) \n \n - _Ruby_ \n - **Go** \n "
2017-08-17 22:00:37 +05:30
}
end
let ( :body ) do
{
'sections' = > [
{
'activityTitle' = > 'Issue opened by user6' ,
'activitySubtitle' = > 'in [JohnDoe4/project2](http://localhost/namespace2/gitlabhq)' ,
'activityText' = > '[#1 Awesome issue](http://localhost/namespace2/gitlabhq/issues/1)' ,
'activityImage' = > 'http://someimage.com'
} ,
{
2020-03-09 13:42:32 +05:30
text : " [GitLab](https://gitlab.com) \n \n - _Ruby_ \n - **Go** \n "
2017-08-17 22:00:37 +05:30
}
] ,
'title' = > 'JohnDoe4/project2' ,
'summary' = > '[[JohnDoe4/project2](http://localhost/namespace2/gitlabhq)] Issue [#1 Awesome issue](http://localhost/namespace2/gitlabhq/issues/1) opened by user6'
}
end
describe '#ping' do
before do
stub_request ( :post , webhook_url ) . with ( body : JSON ( body ) , headers : { 'Content-Type' = > 'application/json' } ) . to_return ( status : 200 , body : " " , headers : { } )
end
2018-12-13 13:39:08 +05:30
it 'expects to receive successful answer' do
2017-08-17 22:00:37 +05:30
expect ( subject . ping ( options ) ) . to be true
end
end
2020-03-09 13:42:32 +05:30
describe '#body' do
it 'returns Markdown-based body when HTML was passed' do
expect ( subject . send ( :body , options ) ) . to eq ( body . to_json )
end
it 'fails when empty Hash was passed' do
expect { subject . send ( :body , { } ) } . to raise_error ( ArgumentError )
end
end
2017-08-17 22:00:37 +05:30
end