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 | ... | ... |