2019-12-04 20:38:33 +05:30
# frozen_string_literal: true
2021-02-22 17:27:13 +05:30
require 'fast_spec_helper'
2019-12-04 20:38:33 +05:30
2020-07-28 23:09:34 +05:30
RSpec . describe GitlabDanger do
2019-12-04 20:38:33 +05:30
let ( :gitlab_danger_helper ) { nil }
subject { described_class . new ( gitlab_danger_helper ) }
describe '.local_warning_message' do
it 'returns an informational message with rules that can run' do
2021-02-22 17:27:13 +05:30
expect ( described_class . local_warning_message ) . to eq ( " ==> Only the following Danger rules can be run locally: #{ described_class :: LOCAL_RULES . join ( ', ' ) } " )
2019-12-04 20:38:33 +05:30
end
end
describe '.success_message' do
it 'returns an informational success message' do
expect ( described_class . success_message ) . to eq ( '==> No Danger rule violations!' )
end
end
describe '#rule_names' do
context 'when running locally' do
it 'returns local only rules' do
expect ( subject . rule_names ) . to eq ( described_class :: LOCAL_RULES )
end
end
context 'when running under CI' do
let ( :gitlab_danger_helper ) { double ( 'danger_gitlab_helper' ) }
it 'returns all rules' do
expect ( subject . rule_names ) . to eq ( described_class :: LOCAL_RULES | described_class :: CI_ONLY_RULES )
end
end
end
describe '#html_link' do
context 'when running locally' do
it 'returns the same string' do
str = 'something'
expect ( subject . html_link ( str ) ) . to eq ( str )
end
end
context 'when running under CI' do
let ( :gitlab_danger_helper ) { double ( 'danger_gitlab_helper' ) }
it 'returns a HTML link formatted version of the string' do
str = 'something'
html_formatted_str = %Q{ <a href=" #{ str } "> #{ str } </a> }
expect ( gitlab_danger_helper ) . to receive ( :html_link ) . with ( str ) . and_return ( html_formatted_str )
expect ( subject . html_link ( str ) ) . to eq ( html_formatted_str )
end
end
end
describe '#ci?' do
context 'when gitlab_danger_helper is not available' do
it 'returns false' do
expect ( subject . ci? ) . to be_falsey
end
end
context 'when gitlab_danger_helper is available' do
let ( :gitlab_danger_helper ) { double ( 'danger_gitlab_helper' ) }
it 'returns true' do
expect ( subject . ci? ) . to be_truthy
end
end
end
end