diff --git a/app/models/key.rb b/app/models/key.rb index e5975368..fb59d759 100644 --- a/app/models/key.rb +++ b/app/models/key.rb @@ -55,11 +55,12 @@ end # Table name: keys # # id :integer not null, primary key -# user_id :integer not null +# user_id :integer # created_at :datetime # updated_at :datetime # key :text # title :string(255) # identifier :string(255) +# project_id :integer # diff --git a/app/models/note.rb b/app/models/note.rb index 689b620d..f499b62d 100644 --- a/app/models/note.rb +++ b/app/models/note.rb @@ -88,5 +88,6 @@ end # updated_at :datetime # project_id :integer # attachment :string(255) +# line_code :string(255) # diff --git a/db/migrate/20120121122616_fix_noteable_id.rb b/db/migrate/20120121122616_fix_noteable_id.rb new file mode 100644 index 00000000..dbc0fa3e --- /dev/null +++ b/db/migrate/20120121122616_fix_noteable_id.rb @@ -0,0 +1,9 @@ +class FixNoteableId < ActiveRecord::Migration + def up + change_column :notes, :noteable_id, :string, :limit => 255 + end + + def down + change_column :notes, :noteable_id, :integer, :limit => 11 + end +end diff --git a/db/schema.rb b/db/schema.rb index 2fd67075..3e7866f3 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,19 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20120119203233) do +ActiveRecord::Schema.define(:version => 20120121122616) do + + create_table "features", :force => true do |t| + t.string "name" + t.string "branch_name" + t.integer "assignee_id" + t.integer "author_id" + t.integer "project_id" + t.datetime "created_at" + t.datetime "updated_at" + t.string "version" + t.integer "status", :default => 0, :null => false + end create_table "issues", :force => true do |t| t.string "title" @@ -54,7 +66,7 @@ ActiveRecord::Schema.define(:version => 20120119203233) do create_table "notes", :force => true do |t| t.text "note" - t.integer "noteable_id", :limit => 255 + t.string "noteable_id" t.string "noteable_type" t.integer "author_id" t.datetime "created_at" diff --git a/spec/models/key_spec.rb b/spec/models/key_spec.rb index dec0b996..44963e3c 100644 --- a/spec/models/key_spec.rb +++ b/spec/models/key_spec.rb @@ -22,11 +22,12 @@ end # Table name: keys # # id :integer not null, primary key -# user_id :integer not null +# user_id :integer # created_at :datetime # updated_at :datetime # key :text # title :string(255) # identifier :string(255) +# project_id :integer # diff --git a/spec/models/note_spec.rb b/spec/models/note_spec.rb index ce7488db..75503fd9 100644 --- a/spec/models/note_spec.rb +++ b/spec/models/note_spec.rb @@ -1,6 +1,9 @@ require 'spec_helper' describe Note do + let(:project) { Factory :project } + let!(:commit) { project.commit } + describe "Associations" do it { should belong_to(:project) } end @@ -11,16 +14,60 @@ describe Note do end it { Factory.create(:note, - :project => Factory.create(:project)).should be_valid } + :project => project).should be_valid } describe "Scopes" do it "should have a today named scope that returns ..." do Note.today.where_values.should == ["created_at >= '#{Date.today}'"] end end - + + describe "Commit notes" do + + before do + @note = Factory :note, + :project => project, + :noteable_id => commit.id, + :noteable_type => "Commit" + end + + it "should save a valid note" do + @note.noteable_id.should == commit.id + @note.target.id.should == commit.id + end + end + + describe "Pre-line commit notes" do + before do + @note = Factory :note, + :project => project, + :noteable_id => commit.id, + :noteable_type => "Commit", + :line_code => "OLD_1_23" + end + + it "should save a valid note" do + @note.noteable_id.should == commit.id + @note.target.id.should == commit.id + end + + it { @note.line_type_id.should == "OLD" } + it { @note.line_file_id.should == 1 } + it { @note.line_number.should == 23 } + + it { @note.for_line?(1, 23, 34).should be_true } + it { @note.for_line?(1, 23, nil).should be_true } + it { @note.for_line?(1, 23, 0).should be_true } + it { @note.for_line?(1, 23, 23).should be_true } + + it { @note.for_line?(1, nil, 34).should be_false } + it { @note.for_line?(1, 24, nil).should be_false } + it { @note.for_line?(1, 24, 0).should be_false } + it { @note.for_line?(1, 24, 23).should be_false } + end + describe :authorization do before do - @p1 = Factory :project + @p1 = project @p2 = Factory :project, :code => "alien", :path => "legit_1" @u1 = Factory :user @u2 = Factory :user @@ -79,5 +126,6 @@ end # updated_at :datetime # project_id :integer # attachment :string(255) +# line_code :string(255) # diff --git a/spec/requests/commits_notes_spec.rb b/spec/requests/commits_notes_spec.rb index 69a492e9..23ca045e 100644 --- a/spec/requests/commits_notes_spec.rb +++ b/spec/requests/commits_notes_spec.rb @@ -19,5 +19,10 @@ describe "Issues" do it "should conatin new note" do page.should have_content("I commented this commit") end + + it "should be displayed when i visit this commit again" do + visit project_commit_path(project, commit) + page.should have_content("I commented this commit") + end end end