caperoma 0.1.0 → 4.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.ruby-version +1 -0
- data/Capefile +48 -0
- data/Capefile.template +48 -0
- data/Capefile.test +20 -0
- data/Gemfile +25 -10
- data/Gemfile.lock +196 -77
- data/HELP +321 -0
- data/README.md +528 -0
- data/Rakefile +73 -18
- data/VERSION +1 -1
- data/bin/caperoma +47 -11
- data/caperoma.gemspec +144 -45
- data/config/crontab +10 -0
- data/config/schedule.rb +21 -0
- data/lib/caperoma.rb +409 -9
- data/lib/caperoma/models/account.rb +47 -0
- data/lib/caperoma/models/application_record.rb +5 -0
- data/lib/caperoma/models/branch.rb +6 -0
- data/lib/caperoma/models/project.rb +14 -0
- data/lib/caperoma/models/property.rb +5 -0
- data/lib/caperoma/models/report.rb +177 -0
- data/lib/caperoma/models/report_recipient.rb +6 -0
- data/lib/caperoma/models/reports/daily_report.rb +23 -0
- data/lib/caperoma/models/reports/retrospective_report.rb +19 -0
- data/lib/caperoma/models/reports/three_day_report.rb +19 -0
- data/lib/caperoma/models/task.rb +368 -0
- data/lib/caperoma/models/tasks/bug.rb +36 -0
- data/lib/caperoma/models/tasks/chore.rb +40 -0
- data/lib/caperoma/models/tasks/feature.rb +27 -0
- data/lib/caperoma/models/tasks/fix.rb +56 -0
- data/lib/caperoma/models/tasks/meeting.rb +40 -0
- data/lib/caperoma/models/tasks/modules/git.rb +65 -0
- data/lib/caperoma/models/tasks/task_with_commit.rb +40 -0
- data/lib/caperoma/models/tasks/task_with_separate_branch.rb +42 -0
- data/lib/caperoma/services/airbrake_email_processor.rb +47 -0
- data/lib/caperoma/services/pivotal_fetcher.rb +108 -0
- data/lib/caperoma/version.rb +9 -0
- data/spec/caperoma_spec.rb +3 -21
- data/spec/factories/accounts.rb +10 -0
- data/spec/factories/branches.rb +9 -0
- data/spec/factories/projects.rb +8 -0
- data/spec/factories/report_recipients.rb +7 -0
- data/spec/factories/reports.rb +16 -0
- data/spec/factories/tasks.rb +37 -0
- data/spec/features/bug_spec.rb +60 -0
- data/spec/features/chore_spec.rb +60 -0
- data/spec/features/command_unknown_spec.rb +14 -0
- data/spec/features/config_spec.rb +161 -0
- data/spec/features/feature_spec.rb +60 -0
- data/spec/features/finish_spec.rb +18 -0
- data/spec/features/fix_spec.rb +60 -0
- data/spec/features/meeting_spec.rb +22 -0
- data/spec/features/projects_spec.rb +17 -0
- data/spec/features/report_recipientss_spec.rb +117 -0
- data/spec/features/reports_spec.rb +65 -0
- data/spec/features/status_spec.rb +33 -0
- data/spec/features/version_spec.rb +11 -0
- data/spec/models/account_spec.rb +51 -0
- data/spec/models/branch_spec.rb +8 -0
- data/spec/models/bug_spec.rb +33 -0
- data/spec/models/chore_spec.rb +33 -0
- data/spec/models/daily_report_spec.rb +38 -0
- data/spec/models/feature_spec.rb +33 -0
- data/spec/models/fix_spec.rb +55 -0
- data/spec/models/meeting_spec.rb +33 -0
- data/spec/models/project_spec.rb +11 -0
- data/spec/models/report_recipient_spec.rb +22 -0
- data/spec/models/report_spec.rb +16 -0
- data/spec/models/retrospective_report_spec.rb +38 -0
- data/spec/models/task_spec.rb +613 -0
- data/spec/models/task_with_commit_spec.rb +105 -0
- data/spec/models/task_with_separate_branch_spec.rb +97 -0
- data/spec/models/three_day_report_spec.rb +49 -0
- data/spec/spec_helper.rb +26 -16
- data/spec/support/capefile_generator.rb +36 -0
- data/spec/support/database_cleaner.rb +21 -0
- data/spec/support/stubs.rb +178 -9
- metadata +283 -42
- data/.document +0 -5
- data/README.rdoc +0 -26
- data/lib/caperoma/credentials.rb +0 -13
- data/lib/caperoma/jira_client.rb +0 -57
- data/spec/caperoma/credentials_spec.rb +0 -25
- data/spec/caperoma/jira_spec.rb +0 -35
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
4
|
+
ENV['spec_type'] = 'feature'
|
5
|
+
|
6
|
+
describe 'Finish' do
|
7
|
+
let!(:account) { create :account }
|
8
|
+
let!(:project) { create :project }
|
9
|
+
let!(:task) { create :task, project: project, finished_at: nil }
|
10
|
+
|
11
|
+
it 'finishes started task' do
|
12
|
+
expect do
|
13
|
+
`CAPEROMA_INTEGRATION_TEST=true ruby -I./lib bin/caperoma finish`
|
14
|
+
end.to change {
|
15
|
+
Task.unfinished.count
|
16
|
+
}.by(-1)
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
4
|
+
ENV['spec_type'] = 'feature'
|
5
|
+
|
6
|
+
describe 'Fix' do
|
7
|
+
let!(:project) { create :project, jira_project_id: '123' }
|
8
|
+
|
9
|
+
before { create_capefile('123') }
|
10
|
+
|
11
|
+
context 'pivotal id blank' do
|
12
|
+
it 'submits a fix' do
|
13
|
+
expect do
|
14
|
+
`CAPEROMA_INTEGRATION_TEST=true ruby -I./lib bin/caperoma fix -t "awesome work" -d "some description" -ptid 12345678`
|
15
|
+
end.to change {
|
16
|
+
Fix.where(
|
17
|
+
title: 'awesome work',
|
18
|
+
description: 'some description',
|
19
|
+
project_id: project.id
|
20
|
+
).count
|
21
|
+
}.by(1)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
context 'pivotal id present' do
|
26
|
+
it 'submits a fix' do
|
27
|
+
expect do
|
28
|
+
`CAPEROMA_INTEGRATION_TEST=true ruby -I./lib bin/caperoma fix -t "awesome work" -d "some description" -ptid 12345678`
|
29
|
+
end.to change {
|
30
|
+
Fix.where(
|
31
|
+
title: 'awesome work',
|
32
|
+
description: 'some description',
|
33
|
+
project_id: project.id,
|
34
|
+
pivotal_id: '12345678'
|
35
|
+
).count
|
36
|
+
}.by(1)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
context 'pivotal id present, additional_time present', :unstub_time_now do
|
41
|
+
it 'submits a fix' do
|
42
|
+
expect do
|
43
|
+
`CAPEROMA_INTEGRATION_TEST=true ruby -I./lib bin/caperoma fix -t "awesome work" -d "some description" -p 12345678 -a 23`
|
44
|
+
end.to change {
|
45
|
+
Fix.where(
|
46
|
+
title: 'awesome work',
|
47
|
+
description: 'some description',
|
48
|
+
project_id: project.id,
|
49
|
+
pivotal_id: '12345678'
|
50
|
+
).count
|
51
|
+
}.by(1)
|
52
|
+
|
53
|
+
time = Time.now
|
54
|
+
created = Fix.first.started_at
|
55
|
+
time_difference = TimeDifference.between(time, created).in_minutes
|
56
|
+
|
57
|
+
expect(time_difference).to eq 23
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
4
|
+
ENV['spec_type'] = 'feature'
|
5
|
+
|
6
|
+
describe 'Meeting' do
|
7
|
+
let!(:project) { create :project, jira_project_id: '123' }
|
8
|
+
|
9
|
+
before { create_capefile('123') }
|
10
|
+
|
11
|
+
it 'submits a meeting' do
|
12
|
+
expect do
|
13
|
+
`CAPEROMA_INTEGRATION_TEST=true ruby -I./lib bin/caperoma meeting -t "awesome meeting" -d "some description" -a 1`
|
14
|
+
end.to change {
|
15
|
+
Meeting.where(
|
16
|
+
title: 'awesome meeting',
|
17
|
+
description: 'some description',
|
18
|
+
project_id: project.id
|
19
|
+
).count
|
20
|
+
}.by(1)
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
4
|
+
ENV['spec_type'] = 'feature'
|
5
|
+
|
6
|
+
describe 'Projects' do
|
7
|
+
before { Project.destroy_all }
|
8
|
+
|
9
|
+
it 'displays all projects' do
|
10
|
+
project1 = create :project, folder_path: '/MyProj', jira_project_id: '123', pivotal_tracker_project_id: '123456'
|
11
|
+
project2 = create :project, folder_path: '/MyProj2', jira_project_id: '321', pivotal_tracker_project_id: '765432'
|
12
|
+
|
13
|
+
result = `CAPEROMA_INTEGRATION_TEST=true ruby -I./lib bin/caperoma projects`
|
14
|
+
expect(result).to eq "#{project1.id}) /MyProj (jira_project_id: 123, pivotal_tracker_project_id: 123456)\n#{project2.id}) /MyProj2 (jira_project_id: 321, pivotal_tracker_project_id: 765432)\n"
|
15
|
+
# TODO: it should also include pivotal project id
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,117 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
4
|
+
ENV['spec_type'] = 'feature'
|
5
|
+
|
6
|
+
describe 'Report' do
|
7
|
+
describe 'Add' do
|
8
|
+
it 'flag creates report recipient' do
|
9
|
+
expect do
|
10
|
+
`CAPEROMA_INTEGRATION_TEST=true ruby -I./lib bin/caperoma recipients -a dude@example.com`
|
11
|
+
end.to change {
|
12
|
+
ReportRecipient.where(email: 'dude@example.com').count
|
13
|
+
}.by(1)
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'command creates report recipient' do
|
17
|
+
expect do
|
18
|
+
`CAPEROMA_INTEGRATION_TEST=true ruby -I./lib bin/caperoma recipients add dude@example.com`
|
19
|
+
end.to change {
|
20
|
+
ReportRecipient.where(email: 'dude@example.com').count
|
21
|
+
}.by(1)
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'command creates report recipient' do
|
25
|
+
expect do
|
26
|
+
`CAPEROMA_INTEGRATION_TEST=true ruby -I./lib bin/caperoma recipients --add dude@example.com`
|
27
|
+
end.to change {
|
28
|
+
ReportRecipient.where(email: 'dude@example.com').count
|
29
|
+
}.by(1)
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'flag creates report recipient' do
|
33
|
+
expect do
|
34
|
+
`CAPEROMA_INTEGRATION_TEST=true ruby -I./lib bin/caperoma recipients -c dude@example.com`
|
35
|
+
end.to change {
|
36
|
+
ReportRecipient.where(email: 'dude@example.com').count
|
37
|
+
}.by(1)
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'command creates report recipient' do
|
41
|
+
expect do
|
42
|
+
`CAPEROMA_INTEGRATION_TEST=true ruby -I./lib bin/caperoma recipients create dude@example.com`
|
43
|
+
end.to change {
|
44
|
+
ReportRecipient.where(email: 'dude@example.com').count
|
45
|
+
}.by(1)
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'command creates report recipient' do
|
49
|
+
expect do
|
50
|
+
`CAPEROMA_INTEGRATION_TEST=true ruby -I./lib bin/caperoma recipients --create dude@example.com`
|
51
|
+
end.to change {
|
52
|
+
ReportRecipient.where(email: 'dude@example.com').count
|
53
|
+
}.by(1)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
describe 'Destroy' do
|
58
|
+
let!(:recipient) { create :report_recipient, email: 'dude@example.com' }
|
59
|
+
|
60
|
+
it 'flag removes recipient' do
|
61
|
+
expect do
|
62
|
+
`CAPEROMA_INTEGRATION_TEST=true ruby -I./lib bin/caperoma recipients -r dude@example.com`
|
63
|
+
end.to change {
|
64
|
+
ReportRecipient.where(email: 'dude@example.com').count
|
65
|
+
}.by(-1)
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'command removes recipient' do
|
69
|
+
expect do
|
70
|
+
`CAPEROMA_INTEGRATION_TEST=true ruby -I./lib bin/caperoma recipients remove dude@example.com`
|
71
|
+
end.to change {
|
72
|
+
ReportRecipient.where(email: 'dude@example.com').count
|
73
|
+
}.by(-1)
|
74
|
+
end
|
75
|
+
|
76
|
+
it 'command removes recipient' do
|
77
|
+
expect do
|
78
|
+
`CAPEROMA_INTEGRATION_TEST=true ruby -I./lib bin/caperoma recipients --remove dude@example.com`
|
79
|
+
end.to change {
|
80
|
+
ReportRecipient.where(email: 'dude@example.com').count
|
81
|
+
}.by(-1)
|
82
|
+
end
|
83
|
+
|
84
|
+
it 'flag removes recipient' do
|
85
|
+
expect do
|
86
|
+
`CAPEROMA_INTEGRATION_TEST=true ruby -I./lib bin/caperoma recipients -d dude@example.com`
|
87
|
+
end.to change {
|
88
|
+
ReportRecipient.where(email: 'dude@example.com').count
|
89
|
+
}.by(-1)
|
90
|
+
end
|
91
|
+
|
92
|
+
it 'command removes recipient' do
|
93
|
+
expect do
|
94
|
+
`CAPEROMA_INTEGRATION_TEST=true ruby -I./lib bin/caperoma recipients delete dude@example.com`
|
95
|
+
end.to change {
|
96
|
+
ReportRecipient.where(email: 'dude@example.com').count
|
97
|
+
}.by(-1)
|
98
|
+
end
|
99
|
+
|
100
|
+
it 'command removes recipient' do
|
101
|
+
expect do
|
102
|
+
`CAPEROMA_INTEGRATION_TEST=true ruby -I./lib bin/caperoma recipients --delete dude@example.com`
|
103
|
+
end.to change {
|
104
|
+
ReportRecipient.where(email: 'dude@example.com').count
|
105
|
+
}.by(-1)
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
describe 'List' do
|
110
|
+
let!(:recipient) { create :report_recipient, email: 'dude@example.com' }
|
111
|
+
|
112
|
+
it 'removes recipient' do
|
113
|
+
result = `CAPEROMA_INTEGRATION_TEST=true ruby -I./lib bin/caperoma recipients`
|
114
|
+
expect(result).to match /dude/
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
4
|
+
ENV['spec_type'] = 'feature'
|
5
|
+
|
6
|
+
describe 'Report' do
|
7
|
+
describe 'Daily Report' do
|
8
|
+
it 'creates daily report' do
|
9
|
+
expect do
|
10
|
+
`CAPEROMA_INTEGRATION_TEST=true ruby -I./lib bin/caperoma report daily`
|
11
|
+
end.to change {
|
12
|
+
DailyReport.count
|
13
|
+
}.by(1)
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'creates daily report' do
|
17
|
+
expect do
|
18
|
+
`CAPEROMA_INTEGRATION_TEST=true ruby -I./lib bin/caperoma report -d`
|
19
|
+
end.to change {
|
20
|
+
DailyReport.count
|
21
|
+
}.by(1)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe 'Three Day Report' do
|
26
|
+
it 'creates three day report' do
|
27
|
+
expect do
|
28
|
+
`CAPEROMA_INTEGRATION_TEST=true ruby -I./lib bin/caperoma report three_day`
|
29
|
+
end.to change {
|
30
|
+
ThreeDayReport.count
|
31
|
+
}.by(1)
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'creates three day report' do
|
35
|
+
expect do
|
36
|
+
`CAPEROMA_INTEGRATION_TEST=true ruby -I./lib bin/caperoma report -t`
|
37
|
+
end.to change {
|
38
|
+
ThreeDayReport.count
|
39
|
+
}.by(1)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
describe 'Weekly Report' do
|
44
|
+
it 'creates weekly report' do
|
45
|
+
expect do
|
46
|
+
`CAPEROMA_INTEGRATION_TEST=true ruby -I./lib bin/caperoma report weekly`
|
47
|
+
end.to change {
|
48
|
+
RetrospectiveReport.count
|
49
|
+
}.by(1)
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'creates weekly report' do
|
53
|
+
expect do
|
54
|
+
`CAPEROMA_INTEGRATION_TEST=true ruby -I./lib bin/caperoma report -w`
|
55
|
+
end.to change {
|
56
|
+
RetrospectiveReport.count
|
57
|
+
}.by(1)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
describe 'auto' do
|
62
|
+
xit 'on'
|
63
|
+
xit 'off'
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
4
|
+
ENV['spec_type'] = 'feature'
|
5
|
+
|
6
|
+
describe 'Status' do
|
7
|
+
|
8
|
+
context "not working on anything" do
|
9
|
+
it "should say I am not working" do
|
10
|
+
result = `CAPEROMA_INTEGRATION_TEST=true ruby -I./lib bin/caperoma status`
|
11
|
+
expect(result).to eq "You are not working on anything now.\n"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
context "working on a feature", :unstub_time_now do
|
16
|
+
let!(:account) { create :account }
|
17
|
+
let!(:project) { create :project }
|
18
|
+
let!(:task) { create :feature, project: project, title: 'my title', jira_key: 'PBO-2', pivotal_id: 12345678, finished_at: nil }
|
19
|
+
|
20
|
+
before { task.update_column :started_at, 2.hours.ago }
|
21
|
+
before { task.update_column :parent_branch, 'master' }
|
22
|
+
|
23
|
+
it "should say I am not working" do
|
24
|
+
result = `CAPEROMA_INTEGRATION_TEST=true ruby -I./lib bin/caperoma status`
|
25
|
+
expect(result).to match /Type: Feature/
|
26
|
+
expect(result).to match /Title: my title/
|
27
|
+
expect(result).to match /Jira ID: PBO-2/
|
28
|
+
expect(result).to match /Pivotal ID: 12345678/
|
29
|
+
expect(result).to match /Time spent at the moment: 2h/
|
30
|
+
expect(result).to match /Pull request will be sent to this branch: master/
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
4
|
+
ENV['spec_type'] = 'feature'
|
5
|
+
|
6
|
+
describe 'version' do
|
7
|
+
it 'outputs the current version' do
|
8
|
+
result = `CAPEROMA_INTEGRATION_TEST=true ruby -I./lib bin/caperoma -v`
|
9
|
+
expect(result).to start_with '4'
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
4
|
+
|
5
|
+
RSpec.describe Account, type: :model do
|
6
|
+
describe 'validations' do
|
7
|
+
it { expect(subject).to validate_presence_of(:email) }
|
8
|
+
it { expect(subject).to validate_presence_of(:password) }
|
9
|
+
# TODO: validate username for jira only (use STI)
|
10
|
+
it { expect(subject).to validate_presence_of(:type) }
|
11
|
+
it { expect(subject).to validate_inclusion_of(:type).in_array(%w[--jira --gmail --caperoma --pivotal --git]) }
|
12
|
+
end
|
13
|
+
|
14
|
+
describe 'class methods' do
|
15
|
+
let!(:caperoma) { create :account, type: '--caperoma' }
|
16
|
+
let!(:gmail) { create :account, type: '--gmail' }
|
17
|
+
let!(:jira) { create :account, type: '--jira' }
|
18
|
+
let!(:pivotal) { create :account, type: '--pivotal' }
|
19
|
+
let!(:git) { create :account, type: '--git' }
|
20
|
+
|
21
|
+
specify '::caperoma' do
|
22
|
+
expect(Account.caperoma).to eq caperoma
|
23
|
+
end
|
24
|
+
|
25
|
+
specify '::gmail' do
|
26
|
+
expect(Account.gmail).to eq gmail
|
27
|
+
end
|
28
|
+
|
29
|
+
specify '::jira' do
|
30
|
+
expect(Account.jira).to eq jira
|
31
|
+
end
|
32
|
+
|
33
|
+
specify '::pivotal' do
|
34
|
+
expect(Account.pivotal).to eq pivotal
|
35
|
+
end
|
36
|
+
|
37
|
+
specify '::git' do
|
38
|
+
expect(Account.git).to eq git
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
describe 'observers' do
|
43
|
+
it 'should overwrite accounts of same type' do
|
44
|
+
create :account, type: '--jira'
|
45
|
+
create :account, type: '--jira', email: 'new-email@example.com'
|
46
|
+
|
47
|
+
expect(Account.count).to eq 1
|
48
|
+
expect(Account.first.email).to eq 'new-email@example.com'
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
4
|
+
|
5
|
+
RSpec.describe Bug, type: :model do
|
6
|
+
describe 'inheritence' do
|
7
|
+
it { expect(subject).to be_a_kind_of TaskWithSeparateBranch }
|
8
|
+
end
|
9
|
+
|
10
|
+
describe 'private methods' do
|
11
|
+
describe '#issue_type' do
|
12
|
+
let!(:project) { create :project, bug_jira_task_id: '1234' }
|
13
|
+
|
14
|
+
let!(:task) { create :bug, project: project }
|
15
|
+
|
16
|
+
it { expect(task.send(:issue_type)).to eq '1234' }
|
17
|
+
end
|
18
|
+
|
19
|
+
describe '#story_type' do
|
20
|
+
let!(:task) { create :bug }
|
21
|
+
|
22
|
+
it { expect(task.send(:story_type)).to eq 'bug' }
|
23
|
+
end
|
24
|
+
|
25
|
+
describe '#this_is_a_type_a_user_wants_to_create' do
|
26
|
+
let!(:project) { create :project, create_bugs_in_pivotal: true }
|
27
|
+
|
28
|
+
let!(:task) { build :bug, project: project }
|
29
|
+
|
30
|
+
it { expect(task.send(:this_is_a_type_a_user_wants_to_create?)).to be_truthy }
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|