OSDN Git Service

Drop support of root namespace in model
authorHiroyuki Sato <sathiroyuki@gmail.com>
Tue, 17 Sep 2013 13:12:10 +0000 (22:12 +0900)
committerHiroyuki Sato <sathiroyuki@gmail.com>
Tue, 17 Sep 2013 14:05:42 +0000 (23:05 +0900)
app/models/project.rb
spec/contexts/issues/bulk_update_context_spec.rb
spec/contexts/projects_create_context_spec.rb
spec/models/project_spec.rb
spec/requests/api/internal_spec.rb
spec/requests/api/issues_spec.rb
spec/requests/api/notes_spec.rb
spec/services/project_transfer_service_spec.rb

index 6c4f307..f4d9151 100644 (file)
@@ -83,6 +83,7 @@ class Project < ActiveRecord::Base
             :wiki_enabled, inclusion: { in: [true, false] }
   validates :issues_tracker_id, length: { within: 0..255 }
 
+  validates :namespace, presence: true
   validates_uniqueness_of :name, scope: :namespace_id
   validates_uniqueness_of :path, scope: :namespace_id
 
@@ -165,11 +166,7 @@ class Project < ActiveRecord::Base
   end
 
   def to_param
-    if namespace
-      namespace.path + "/" + path
-    else
-      path
-    end
+    namespace.path + "/" + path
   end
 
   def web_url
index 0966ee3..058e43b 100644 (file)
@@ -1,6 +1,8 @@
 require 'spec_helper'
 
 describe Issues::BulkUpdateContext do
+  before(:each) { ActiveRecord::Base.observers.enable(:user_observer) }
+  after(:each) { ActiveRecord::Base.observers.disable(:user_observer) }
 
   let(:issue) {
     create(:issue, project: @project)
@@ -9,7 +11,8 @@ describe Issues::BulkUpdateContext do
   before do
     @user = create :user
     opts = {
-      name: "GitLab"
+      name: "GitLab",
+      namespace: @user.namespace
     }
     @project = Projects::CreateContext.new(@user, opts).execute
   end
index be49258..7b5fa53 100644 (file)
@@ -1,11 +1,15 @@
 require 'spec_helper'
 
 describe Projects::CreateContext do
+  before(:each) { ActiveRecord::Base.observers.enable(:user_observer) }
+  after(:each) { ActiveRecord::Base.observers.disable(:user_observer) }
+
   describe :create_by_user do
     before do
       @user = create :user
       @opts = {
-        name: "GitLab"
+        name: "GitLab",
+        namespace: @user.namespace
       }
     end
 
index 3bac142..c3d2bf5 100644 (file)
@@ -67,6 +67,7 @@ describe Project do
     it { should ensure_length_of(:description).is_within(0..2000) }
     it { should validate_presence_of(:creator) }
     it { should ensure_length_of(:issues_tracker_id).is_within(0..255) }
+    it { should validate_presence_of(:namespace) }
 
     it "should not allow new projects beyond user limits" do
       project2 = build(:project)
index 028617a..e8870f4 100644 (file)
@@ -2,6 +2,8 @@ require 'spec_helper'
 
 describe API::API do
   include ApiHelpers
+  before(:each) { ActiveRecord::Base.observers.enable(:user_observer) }
+  after(:each) { ActiveRecord::Base.observers.disable(:user_observer) }
 
   let(:user) { create(:user) }
   let(:key) { create(:key, user: user) }
index d5f7536..a97d6a2 100644 (file)
@@ -2,6 +2,8 @@ require 'spec_helper'
 
 describe API::API do
   include ApiHelpers
+  before(:each) { ActiveRecord::Base.observers.enable(:user_observer) }
+  after(:each) { ActiveRecord::Base.observers.disable(:user_observer) }
 
   let(:user) { create(:user) }
   let!(:project) { create(:project, namespace: user.namespace ) }
index 48a2d11..ba18b12 100644 (file)
@@ -2,6 +2,8 @@ require 'spec_helper'
 
 describe API::API do
   include ApiHelpers
+  before(:each) { ActiveRecord::Base.observers.enable(:user_observer) }
+  after(:each) { ActiveRecord::Base.observers.disable(:user_observer) }
 
   let(:user) { create(:user) }
   let!(:project) { create(:project, namespace: user.namespace ) }
index bc26403..109b429 100644 (file)
@@ -21,25 +21,7 @@ describe ProjectTransferService do
     let(:user) { create(:user) }
     let(:project) { create(:project, namespace: user.namespace) }
 
-    before do
-      @result = service.transfer(project, nil)
-    end
-
-
-    it { @result.should be_true }
-    it { project.namespace.should == nil }
-  end
-
-  context 'no namespace -> namespace' do
-    let(:project) { create(:project) }
-    let(:user) { create(:user) }
-
-    before do
-      @result = service.transfer(project, user.namespace)
-    end
-
-    it { @result.should be_true }
-    it { project.namespace.should == user.namespace }
+    it { lambda{service.transfer(project, nil)}.should raise_error(ActiveRecord::RecordInvalid) }
   end
 
   def service