Rspec test repo replaced.\nMerge Requests improved
This commit is contained in:
parent
781f5aa6fb
commit
3676838dc9
18 changed files with 90 additions and 41 deletions
|
@ -531,7 +531,7 @@ table a code {
|
||||||
|
|
||||||
/** FLASH message **/
|
/** FLASH message **/
|
||||||
#flash_container {
|
#flash_container {
|
||||||
height:45px;
|
height:50px;
|
||||||
position:fixed;
|
position:fixed;
|
||||||
z-index:10001;
|
z-index:10001;
|
||||||
top:0px;
|
top:0px;
|
||||||
|
@ -540,7 +540,7 @@ table a code {
|
||||||
overflow:hidden;
|
overflow:hidden;
|
||||||
background:white;
|
background:white;
|
||||||
cursor:pointer;
|
cursor:pointer;
|
||||||
border-bottom:1px solid #777;
|
border-bottom:1px solid #ccc;
|
||||||
|
|
||||||
h4 {
|
h4 {
|
||||||
color:#444;
|
color:#444;
|
||||||
|
@ -901,3 +901,23 @@ p.time {
|
||||||
margin:2px;
|
margin:2px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.mr_source_commit ,
|
||||||
|
.mr_target_commit {
|
||||||
|
.commit {
|
||||||
|
list-style:none;
|
||||||
|
margin-top:10px;
|
||||||
|
&:hover {
|
||||||
|
background:none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.prettyprint {
|
||||||
|
background-color: #fefbf3;
|
||||||
|
padding: 9px;
|
||||||
|
border: 1px solid rgba(0,0,0,.2);
|
||||||
|
-webkit-box-shadow: 0 1px 2px rgba(0,0,0,.1);
|
||||||
|
-moz-box-shadow: 0 1px 2px rgba(0,0,0,.1);
|
||||||
|
box-shadow: 0 1px 2px rgba(0,0,0,.1);
|
||||||
|
}
|
||||||
|
|
|
@ -106,6 +106,14 @@ class MergeRequestsController < ApplicationController
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def branch_from
|
||||||
|
@commit = project.commit(params[:ref])
|
||||||
|
end
|
||||||
|
|
||||||
|
def branch_to
|
||||||
|
@commit = project.commit(params[:ref])
|
||||||
|
end
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
||||||
def merge_request
|
def merge_request
|
||||||
|
|
|
@ -12,6 +12,7 @@ class MergeRequest < ActiveRecord::Base
|
||||||
validates_presence_of :author_id
|
validates_presence_of :author_id
|
||||||
validates_presence_of :source_branch
|
validates_presence_of :source_branch
|
||||||
validates_presence_of :target_branch
|
validates_presence_of :target_branch
|
||||||
|
validate :validate_branches
|
||||||
|
|
||||||
delegate :name,
|
delegate :name,
|
||||||
:email,
|
:email,
|
||||||
|
@ -31,6 +32,13 @@ class MergeRequest < ActiveRecord::Base
|
||||||
scope :closed, where(:closed => true)
|
scope :closed, where(:closed => true)
|
||||||
scope :assigned, lambda { |u| where(:assignee_id => u.id)}
|
scope :assigned, lambda { |u| where(:assignee_id => u.id)}
|
||||||
|
|
||||||
|
|
||||||
|
def validate_branches
|
||||||
|
if target_branch == source_branch
|
||||||
|
errors.add :base, "You can not use same branch for source and target branches"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def new?
|
def new?
|
||||||
today? && created_at == updated_at
|
today? && created_at == updated_at
|
||||||
end
|
end
|
||||||
|
|
|
@ -10,10 +10,14 @@
|
||||||
.input= f.text_area :title, :class => "xxlarge", :maxlength => 255, :rows => 5
|
.input= f.text_area :title, :class => "xxlarge", :maxlength => 255, :rows => 5
|
||||||
.clearfix
|
.clearfix
|
||||||
= f.label :source_branch, "From"
|
= f.label :source_branch, "From"
|
||||||
.input= f.select(:source_branch, @project.heads.map(&:name), { :include_blank => "Select branch" }, :style => "width:250px")
|
.input
|
||||||
|
= f.select(:source_branch, @project.heads.map(&:name), { :include_blank => "Select branch" }, :style => "width:250px")
|
||||||
|
.mr_source_commit
|
||||||
.clearfix
|
.clearfix
|
||||||
= f.label :target_branch, "To"
|
= f.label :target_branch, "To"
|
||||||
.input= f.select(:target_branch, @project.heads.map(&:name), { :include_blank => "Select branch" }, :style => "width:250px")
|
.input
|
||||||
|
= f.select(:target_branch, @project.heads.map(&:name), { :include_blank => "Select branch" }, :style => "width:250px")
|
||||||
|
.mr_target_commit
|
||||||
.clearfix
|
.clearfix
|
||||||
= f.label :assignee_id, "Assign to"
|
= f.label :assignee_id, "Assign to"
|
||||||
.input= f.select(:assignee_id, @project.users.all.collect {|p| [ p.name, p.id ] }, { :include_blank => "Select user" }, :style => "width:250px")
|
.input= f.select(:assignee_id, @project.users.all.collect {|p| [ p.name, p.id ] }, { :include_blank => "Select user" }, :style => "width:250px")
|
||||||
|
@ -34,5 +38,15 @@
|
||||||
$('select#merge_request_assignee_id').chosen();
|
$('select#merge_request_assignee_id').chosen();
|
||||||
$('select#merge_request_source_branch').chosen();
|
$('select#merge_request_source_branch').chosen();
|
||||||
$('select#merge_request_target_branch').chosen();
|
$('select#merge_request_target_branch').chosen();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$("#merge_request_source_branch").live("change", function() {
|
||||||
|
$.get("#{branch_from_project_merge_requests_path(@project)}", {ref: $(this).val() });
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#merge_request_target_branch").live("change", function() {
|
||||||
|
$.get("#{branch_to_project_merge_requests_path(@project)}", {ref: $(this).val() });
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
2
app/views/merge_requests/branch_from.js.haml
Normal file
2
app/views/merge_requests/branch_from.js.haml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
:plain
|
||||||
|
$(".mr_source_commit").html("#{escape_javascript(render 'commits/commit', :commit => @commit)}");
|
3
app/views/merge_requests/branch_to.js.haml
Normal file
3
app/views/merge_requests/branch_to.js.haml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
:plain
|
||||||
|
$(".mr_target_commit").html("#{escape_javascript(render 'commits/commit', :commit => @commit)}");
|
||||||
|
|
|
@ -101,6 +101,11 @@ Gitlab::Application.routes.draw do
|
||||||
member do
|
member do
|
||||||
get :diffs
|
get :diffs
|
||||||
end
|
end
|
||||||
|
|
||||||
|
collection do
|
||||||
|
get :branch_from
|
||||||
|
get :branch_to
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
resources :snippets
|
resources :snippets
|
||||||
|
|
|
@ -10,6 +10,6 @@ Dir.mkdir(repo_dir) unless File.exists?(repo_dir)
|
||||||
Dir.chdir(repo_dir)
|
Dir.chdir(repo_dir)
|
||||||
`tar -xf seed_project.tar.gz`
|
`tar -xf seed_project.tar.gz`
|
||||||
3.times do |i|
|
3.times do |i|
|
||||||
`cp -r legit/ legit_#{i}/`
|
`cp -r gitlabhq/ gitlabhq_#{i}/`
|
||||||
puts "Unpacked seed repo - tmp/tests/legit_#{i}"
|
puts "Unpacked seed repo - tmp/tests/gitlabhq_#{i}"
|
||||||
end
|
end
|
||||||
|
|
|
@ -2,14 +2,14 @@ require File.join(Rails.root, 'spec', 'factory')
|
||||||
|
|
||||||
Factory.add(:project, Project) do |obj|
|
Factory.add(:project, Project) do |obj|
|
||||||
obj.name = Faker::Internet.user_name
|
obj.name = Faker::Internet.user_name
|
||||||
obj.path = 'legit'
|
obj.path = 'gitlabhq'
|
||||||
obj.owner = Factory(:user)
|
obj.owner = Factory(:user)
|
||||||
obj.code = 'LGT'
|
obj.code = 'LGT'
|
||||||
end
|
end
|
||||||
|
|
||||||
Factory.add(:public_project, Project) do |obj|
|
Factory.add(:public_project, Project) do |obj|
|
||||||
obj.name = Faker::Internet.user_name
|
obj.name = Faker::Internet.user_name
|
||||||
obj.path = 'legit'
|
obj.path = 'gitlabhq'
|
||||||
obj.private_flag = false
|
obj.private_flag = false
|
||||||
obj.owner = Factory(:user)
|
obj.owner = Factory(:user)
|
||||||
obj.code = 'LGT'
|
obj.code = 'LGT'
|
||||||
|
@ -41,7 +41,7 @@ Factory.add(:merge_request, MergeRequest) do |obj|
|
||||||
obj.author = Factory :user
|
obj.author = Factory :user
|
||||||
obj.assignee = Factory :user
|
obj.assignee = Factory :user
|
||||||
obj.source_branch = "master"
|
obj.source_branch = "master"
|
||||||
obj.target_branch = "master"
|
obj.target_branch = "stable"
|
||||||
obj.closed = false
|
obj.closed = false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -54,7 +54,7 @@ describe Note do
|
||||||
describe :authorization do
|
describe :authorization do
|
||||||
before do
|
before do
|
||||||
@p1 = project
|
@p1 = project
|
||||||
@p2 = Factory :project, :code => "alien", :path => "legit_1"
|
@p2 = Factory :project, :code => "alien", :path => "gitlabhq_1"
|
||||||
@u1 = Factory :user
|
@u1 = Factory :user
|
||||||
@u2 = Factory :user
|
@u2 = Factory :user
|
||||||
@u3 = Factory :user
|
@u3 = Factory :user
|
||||||
|
|
|
@ -86,23 +86,22 @@ describe Project do
|
||||||
let(:project) { Factory :project }
|
let(:project) { Factory :project }
|
||||||
|
|
||||||
it { project.fresh_commits(3).count.should == 3 }
|
it { project.fresh_commits(3).count.should == 3 }
|
||||||
it { project.fresh_commits.first.id.should == "2fb376f61875b58bceee0492e270e9c805294b1a" }
|
it { project.fresh_commits.first.id.should == "bcf03b5de6c33f3869ef70d68cf06e679d1d7f9a" }
|
||||||
it { project.fresh_commits.last.id.should == "0dac878dbfe0b9c6104a87d65fe999149a8d862c" }
|
it { project.fresh_commits.last.id.should == "f403da73f5e62794a0447aca879360494b08f678" }
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "commits_between" do
|
describe "commits_between" do
|
||||||
let(:project) { Factory :project }
|
let(:project) { Factory :project }
|
||||||
|
|
||||||
subject do
|
subject do
|
||||||
commits = project.commits_between("a6d1d4aca0c85816ddfd27d93773f43a31395033",
|
commits = project.commits_between("3a4b4fb4cde7809f033822a171b9feae19d41fff",
|
||||||
"2fb376f61875b58bceee0492e270e9c805294b1a")
|
"8470d70da67355c9c009e4401746b1d5410af2e3")
|
||||||
commits.map { |c| c.id }
|
commits.map { |c| c.id }
|
||||||
end
|
end
|
||||||
|
|
||||||
it { should have(2).elements }
|
it { should have(3).elements }
|
||||||
it { should include("2fb376f61875b58bceee0492e270e9c805294b1a") }
|
it { should include("f0f14c8eaba69ebddd766498a9d0b0e79becd633") }
|
||||||
it { should include("4571e226fbcd7be1af16e9fa1e13b7ac003bebdf") }
|
it { should_not include("bcf03b5de6c33f3869ef70d68cf06e679d1d7f9a") }
|
||||||
it { should_not include("a6d1d4aca0c85816ddfd27d93773f43a31395033") }
|
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "Git methods" do
|
describe "Git methods" do
|
||||||
|
|
|
@ -87,7 +87,7 @@ describe "Admin::Projects" do
|
||||||
visit new_admin_project_path
|
visit new_admin_project_path
|
||||||
fill_in 'Name', :with => 'NewProject'
|
fill_in 'Name', :with => 'NewProject'
|
||||||
fill_in 'Code', :with => 'NPR'
|
fill_in 'Code', :with => 'NPR'
|
||||||
fill_in 'Path', :with => 'legit_1'
|
fill_in 'Path', :with => 'gitlabhq_1'
|
||||||
expect { click_button "Save" }.to change { Project.count }.by(1)
|
expect { click_button "Save" }.to change { Project.count }.by(1)
|
||||||
@project = Project.last
|
@project = Project.last
|
||||||
end
|
end
|
||||||
|
|
|
@ -52,7 +52,7 @@ describe "MergeRequests" do
|
||||||
visit new_project_merge_request_path(project)
|
visit new_project_merge_request_path(project)
|
||||||
fill_in "merge_request_title", :with => "Merge Request Title"
|
fill_in "merge_request_title", :with => "Merge Request Title"
|
||||||
select "master", :from => "merge_request_source_branch"
|
select "master", :from => "merge_request_source_branch"
|
||||||
select "master", :from => "merge_request_target_branch"
|
select "stable", :from => "merge_request_target_branch"
|
||||||
select @user.name, :from => "merge_request_assignee_id"
|
select @user.name, :from => "merge_request_assignee_id"
|
||||||
click_button "Save"
|
click_button "Save"
|
||||||
end
|
end
|
||||||
|
|
|
@ -134,7 +134,7 @@ describe "Projects" do
|
||||||
visit edit_project_path(@project)
|
visit edit_project_path(@project)
|
||||||
|
|
||||||
fill_in 'Name', :with => 'Awesome'
|
fill_in 'Name', :with => 'Awesome'
|
||||||
fill_in 'Path', :with => 'legit'
|
fill_in 'Path', :with => 'gitlabhq'
|
||||||
fill_in 'Description', :with => 'Awesome project'
|
fill_in 'Description', :with => 'Awesome project'
|
||||||
click_button "Save"
|
click_button "Save"
|
||||||
@project = @project.reload
|
@project = @project.reload
|
||||||
|
|
|
@ -57,7 +57,7 @@ describe "Projects" do
|
||||||
@project = Factory :project
|
@project = Factory :project
|
||||||
@project.add_access(@user, :read)
|
@project.add_access(@user, :read)
|
||||||
|
|
||||||
visit tree_project_ref_path(@project, @project.root_ref, :path => ".rvmrc")
|
visit tree_project_ref_path(@project, @project.root_ref, :path => "Gemfile")
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should be correct path" do
|
it "should be correct path" do
|
||||||
|
@ -65,7 +65,7 @@ describe "Projects" do
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should contain file view" do
|
it "should contain file view" do
|
||||||
page.should have_content("rvm use 1.9.2@legit")
|
page.should have_content("rubygems.org")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -42,7 +42,7 @@ describe "Repository" do
|
||||||
|
|
||||||
it "should have link to repo activities" do
|
it "should have link to repo activities" do
|
||||||
page.should have_content("Tags")
|
page.should have_content("Tags")
|
||||||
page.should have_content("No tags")
|
page.should have_content("v1.2.1")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Binary file not shown.
|
@ -1,25 +1,15 @@
|
||||||
module ValidCommit
|
module ValidCommit
|
||||||
ID = "eaffbe556ec3a8dc84ef15892a9f12d84dde7e1d"
|
ID = "8470d70da67355c9c009e4401746b1d5410af2e3"
|
||||||
MESSAGE = "style"
|
MESSAGE = "notes controller refactored"
|
||||||
AUTHOR_FULL_NAME = "Dmitriy Zaporozhets"
|
AUTHOR_FULL_NAME = "Dmitriy Zaporozhets"
|
||||||
|
|
||||||
FILES = [".gitignore", ".rspec", ".rvmrc", "Gemfile", "Gemfile.lock", "LICENSE", "README.rdoc", "Rakefile", "app", "config.ru", "config", "db", "doc", "lib", "log", "public", "script", "spec", "vendor"]
|
FILES = [".foreman", ".gitignore", ".rails_footnotes", ".rspec", ".travis.yml", "CHANGELOG", "Gemfile", "Gemfile.lock", "LICENSE", "Procfile", "Procfile.production", "README.md", "Rakefile", "VERSION", "app", "config.ru", "config", "db", "doc", "lib", "log", "public", "resque.sh", "script", "spec", "vendor"]
|
||||||
FILES_COUNT = 19
|
FILES_COUNT = 26
|
||||||
|
|
||||||
C_FILE_PATH = "app/models"
|
C_FILE_PATH = "app/models"
|
||||||
C_FILES = [".gitkeep", "project.rb", "user.rb"]
|
C_FILES = [".gitkeep", "ability.rb", "commit.rb", "issue.rb", "key.rb", "mailer_observer.rb", "merge_request.rb", "note.rb", "project.rb", "protected_branch.rb", "repository.rb", "snippet.rb", "tree.rb", "user.rb", "users_project.rb", "web_hook.rb", "wiki.rb"]
|
||||||
|
|
||||||
BLOB_FILE = <<-blob
|
BLOB_FILE = %{%h3= @key.title\n%hr\n%pre= @key.key\n.actions\n = link_to 'Remove', @key, :confirm => 'Are you sure?', :method => :delete, :class => \"btn danger delete-key\"\n\n\n}
|
||||||
<div class="span-14 colborder">
|
BLOB_FILE_PATH = "app/views/keys/show.html.haml"
|
||||||
<h2>Tree / <%= link_to "Commits", project_commits_path(@project) %></h2>
|
|
||||||
<%= render :partial => "tree", :locals => {:repo => @repo, :commit => @commit, :tree => @commit.tree} %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="span-8 right">
|
|
||||||
<%= render "side_panel" %>
|
|
||||||
</div>
|
|
||||||
blob
|
|
||||||
|
|
||||||
BLOB_FILE_PATH = "app/views/projects/show.html.erb"
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue