fixed commit commenting

This commit is contained in:
Dmitriy Zaporozhets 2012-01-21 14:54:32 +02:00
parent 3d7b35a37d
commit f4e3ec29c4
7 changed files with 84 additions and 7 deletions

View file

@ -55,11 +55,12 @@ end
# Table name: keys # Table name: keys
# #
# id :integer not null, primary key # id :integer not null, primary key
# user_id :integer not null # user_id :integer
# created_at :datetime # created_at :datetime
# updated_at :datetime # updated_at :datetime
# key :text # key :text
# title :string(255) # title :string(255)
# identifier :string(255) # identifier :string(255)
# project_id :integer
# #

View file

@ -88,5 +88,6 @@ end
# updated_at :datetime # updated_at :datetime
# project_id :integer # project_id :integer
# attachment :string(255) # attachment :string(255)
# line_code :string(255)
# #

View file

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

View file

@ -11,7 +11,19 @@
# #
# It's strongly recommended to check this file into your version control system. # 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| create_table "issues", :force => true do |t|
t.string "title" t.string "title"
@ -54,7 +66,7 @@ ActiveRecord::Schema.define(:version => 20120119203233) do
create_table "notes", :force => true do |t| create_table "notes", :force => true do |t|
t.text "note" t.text "note"
t.integer "noteable_id", :limit => 255 t.string "noteable_id"
t.string "noteable_type" t.string "noteable_type"
t.integer "author_id" t.integer "author_id"
t.datetime "created_at" t.datetime "created_at"

View file

@ -22,11 +22,12 @@ end
# Table name: keys # Table name: keys
# #
# id :integer not null, primary key # id :integer not null, primary key
# user_id :integer not null # user_id :integer
# created_at :datetime # created_at :datetime
# updated_at :datetime # updated_at :datetime
# key :text # key :text
# title :string(255) # title :string(255)
# identifier :string(255) # identifier :string(255)
# project_id :integer
# #

View file

@ -1,6 +1,9 @@
require 'spec_helper' require 'spec_helper'
describe Note do describe Note do
let(:project) { Factory :project }
let!(:commit) { project.commit }
describe "Associations" do describe "Associations" do
it { should belong_to(:project) } it { should belong_to(:project) }
end end
@ -11,16 +14,60 @@ describe Note do
end end
it { Factory.create(:note, it { Factory.create(:note,
:project => Factory.create(:project)).should be_valid } :project => project).should be_valid }
describe "Scopes" do describe "Scopes" do
it "should have a today named scope that returns ..." do it "should have a today named scope that returns ..." do
Note.today.where_values.should == ["created_at >= '#{Date.today}'"] Note.today.where_values.should == ["created_at >= '#{Date.today}'"]
end end
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 describe :authorization do
before do before do
@p1 = Factory :project @p1 = project
@p2 = Factory :project, :code => "alien", :path => "legit_1" @p2 = Factory :project, :code => "alien", :path => "legit_1"
@u1 = Factory :user @u1 = Factory :user
@u2 = Factory :user @u2 = Factory :user
@ -79,5 +126,6 @@ end
# updated_at :datetime # updated_at :datetime
# project_id :integer # project_id :integer
# attachment :string(255) # attachment :string(255)
# line_code :string(255)
# #

View file

@ -19,5 +19,10 @@ describe "Issues" do
it "should conatin new note" do it "should conatin new note" do
page.should have_content("I commented this commit") page.should have_content("I commented this commit")
end 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
end end