diff options
Diffstat (limited to 'spec/models/project_services/irker_service_spec.rb')
-rw-r--r-- | spec/models/project_services/irker_service_spec.rb | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/spec/models/project_services/irker_service_spec.rb b/spec/models/project_services/irker_service_spec.rb deleted file mode 100644 index 07963947de8..00000000000 --- a/spec/models/project_services/irker_service_spec.rb +++ /dev/null @@ -1,76 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' -require 'socket' -require 'json' - -RSpec.describe IrkerService do - describe 'Associations' do - it { is_expected.to belong_to :project } - it { is_expected.to have_one :service_hook } - end - - describe 'Validations' do - context 'when service is active' do - before do - subject.active = true - end - - it { is_expected.to validate_presence_of(:recipients) } - end - - context 'when service is inactive' do - before do - subject.active = false - end - - it { is_expected.not_to validate_presence_of(:recipients) } - end - end - - describe 'Execute' do - let(:irker) { described_class.new } - let(:user) { create(:user) } - let(:project) { create(:project, :repository) } - let(:sample_data) do - Gitlab::DataBuilder::Push.build_sample(project, user) - end - - let(:recipients) { '#commits irc://test.net/#test ftp://bad' } - let(:colorize_messages) { '1' } - - before do - @irker_server = TCPServer.new 'localhost', 0 - - allow(irker).to receive_messages( - active: true, - project: project, - project_id: project.id, - service_hook: true, - server_host: @irker_server.addr[2], - server_port: @irker_server.addr[1], - default_irc_uri: 'irc://chat.freenode.net/', - recipients: recipients, - colorize_messages: colorize_messages) - - irker.valid? - end - - after do - @irker_server.close - end - - it 'sends valid JSON messages to an Irker listener', :sidekiq_might_not_need_inline do - irker.execute(sample_data) - - conn = @irker_server.accept - conn.each_line do |line| - msg = Gitlab::Json.parse(line.chomp("\n")) - expect(msg.keys).to match_array(%w(to privmsg)) - expect(msg['to']).to match_array(["irc://chat.freenode.net/#commits", - "irc://test.net/#test"]) - end - conn.close - end - end -end |