BigW Consortium Gitlab

bamboo_service_spec.rb 3.05 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
# == Schema Information
#
# Table name: services
#
#  id                    :integer          not null, primary key
#  type                  :string(255)
#  title                 :string(255)
#  project_id            :integer
#  created_at            :datetime
#  updated_at            :datetime
#  active                :boolean          default(FALSE), not null
#  properties            :text
#  template              :boolean          default(FALSE)
#  push_events           :boolean          default(TRUE)
#  issues_events         :boolean          default(TRUE)
#  merge_requests_events :boolean          default(TRUE)
#  tag_push_events       :boolean          default(TRUE)
#  note_events           :boolean          default(TRUE), not null
#

require 'spec_helper'

describe BambooService, models: true do
  describe "Associations" do
    it { is_expected.to belong_to :project }
    it { is_expected.to have_one :service_hook }
  end

  describe "Execute" do
    let(:user)    { create(:user) }
    let(:project) { create(:project) }

33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
    context "when a password was previously set" do
      before do
        @bamboo_service = BambooService.create(
          project: create(:project),
          properties: {
            bamboo_url: 'http://gitlab.com',
            username: 'mic',
            password: "password"
          }
        )
      end
  
      it "reset password if url changed" do
        @bamboo_service.bamboo_url = 'http://gitlab1.com'
        @bamboo_service.save
        expect(@bamboo_service.password).to be_nil
      end
  
      it "does not reset password if username changed" do
        @bamboo_service.username = "some_name"
        @bamboo_service.save
        expect(@bamboo_service.password).to eq("password")
      end

      it "does not reset password if new url is set together with password, even if it's the same password" do
        @bamboo_service.bamboo_url = 'http://gitlab_edited.com'
        @bamboo_service.password = 'password'
        @bamboo_service.save
        expect(@bamboo_service.password).to eq("password")
        expect(@bamboo_service.bamboo_url).to eq("http://gitlab_edited.com")
      end
64

65 66 67 68 69 70
      it "should reset password if url changed, even if setter called multiple times" do
        @bamboo_service.bamboo_url = 'http://gitlab1.com'
        @bamboo_service.bamboo_url = 'http://gitlab1.com'
        @bamboo_service.save
        expect(@bamboo_service.password).to be_nil
      end
71
    end
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
    
    context "when no password was previously set" do
      before do
        @bamboo_service = BambooService.create(
          project: create(:project),
          properties: {
            bamboo_url: 'http://gitlab.com',
            username: 'mic'
          }
        )
      end

      it "saves password if new url is set together with password" do
        @bamboo_service.bamboo_url = 'http://gitlab_edited.com'
        @bamboo_service.password = 'password'
        @bamboo_service.save
        expect(@bamboo_service.password).to eq("password")
        expect(@bamboo_service.bamboo_url).to eq("http://gitlab_edited.com")
      end
91 92 93 94

    end
  end
end