Commit 9a1ad6b5566d45dae346a96be91f71ff4eddb708
1 parent
8afb5c2f
Exists in
master
and in
1 other branch
Add body and title vadation to issue model
Showing
2 changed files
with
32 additions
and
2 deletions
Show diff stats
app/models/issue.rb
... | ... | @@ -7,6 +7,16 @@ class Issue |
7 | 7 | end |
8 | 8 | |
9 | 9 | def save |
10 | + unless body | |
11 | + errors.add :base, "The issue has no body" | |
12 | + return false | |
13 | + end | |
14 | + | |
15 | + unless title | |
16 | + errors.add :base, "The issue has no title" | |
17 | + return false | |
18 | + end | |
19 | + | |
10 | 20 | if issue_tracker |
11 | 21 | issue_tracker.tracker.errors.each do |k, err| |
12 | 22 | errors.add k, err | ... | ... |
spec/models/issue_spec.rb
... | ... | @@ -28,15 +28,35 @@ describe Issue, type: 'model' do |
28 | 28 | end |
29 | 29 | |
30 | 30 | context "when has no title" do |
31 | + let(:title) { nil } | |
31 | 32 | let(:body) { "barrr" } |
32 | 33 | |
33 | - pending "returns an error" | |
34 | + context "#save" do | |
35 | + it "returns false" do | |
36 | + expect(issue.save).to be false | |
37 | + end | |
38 | + | |
39 | + it "returns an error" do | |
40 | + issue.save | |
41 | + expect(errors).to include("The issue has no title") | |
42 | + end | |
43 | + end | |
34 | 44 | end |
35 | 45 | |
36 | 46 | context "when has no body" do |
37 | 47 | let(:title) { "Foo" } |
48 | + let(:body) { nil } | |
38 | 49 | |
39 | - pending "returns an error" | |
50 | + context "#save" do | |
51 | + it "returns false" do | |
52 | + expect(issue.save).to be false | |
53 | + end | |
54 | + | |
55 | + it "returns an error" do | |
56 | + issue.save | |
57 | + expect(errors).to include("The issue has no body") | |
58 | + end | |
59 | + end | |
40 | 60 | end |
41 | 61 | |
42 | 62 | context "when app has a issue tracker" do | ... | ... |