summaryrefslogtreecommitdiff
path: root/spec/factories/services.rb
blob: b2d6ada91fa54be2f100ed70c0d9a649b71cc51b (plain)
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
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# frozen_string_literal: true

FactoryBot.define do
  factory :service do
    project
    type 'Service'
  end

  factory :custom_issue_tracker_service, class: CustomIssueTrackerService do
    project
    active true
    properties(
      project_url: 'https://project.url.com',
      issues_url: 'https://issues.url.com',
      new_issue_url: 'https://newissue.url.com'
    )
  end

  factory :emails_on_push_service do
    project
    type 'EmailsOnPushService'
    active true
    push_events true
    tag_push_events true
    properties(
      recipients: 'test@example.com',
      disable_diffs: true,
      send_from_committer_email: true
    )
  end

  factory :mock_deployment_service do
    project
    type 'MockDeploymentService'
    active true
  end

  factory :prometheus_service do
    project
    active true
    properties({
      api_url: 'https://prometheus.example.com/',
      manual_configuration: true
    })
  end

  factory :jira_service do
    project
    active true
    properties(
      url: 'https://jira.example.com',
      username: 'jira_user',
      password: 'my-secret-password',
      project_key: 'jira-key'
    )
  end

  factory :bugzilla_service do
    project
    active true
    issue_tracker
  end

  factory :redmine_service do
    project
    active true
    issue_tracker
  end

  factory :youtrack_service do
    project
    active true
    issue_tracker
  end

  factory :gitlab_issue_tracker_service do
    project
    active true
    issue_tracker
  end

  trait :issue_tracker do
    properties(
      project_url: 'http://issue-tracker.example.com',
      issues_url: 'http://issue-tracker.example.com/issues/:id',
      new_issue_url: 'http://issue-tracker.example.com'
    )
  end

  trait :jira_cloud_service do
    properties(
      url: 'https://mysite.atlassian.net',
      username: 'jira_user',
      password: 'my-secret-password',
      project_key: 'jira-key'
    )
  end

  factory :hipchat_service do
    project
    type 'HipchatService'
    token 'test_token'
  end

  trait :without_properties_callback do
    after(:build) do |service|
      allow(service).to receive(:handle_properties)
    end

    after(:create) do |service|
      # we have to remove the stub because the behaviour of
      # handle_properties method is tested after the creation
      allow(service).to receive(:handle_properties).and_call_original
    end
  end
end