Skip to content

Commit

Permalink
[webui][ci] Add User@#home_project and refactor Projec.find_by(name: …
Browse files Browse the repository at this point in the history
…user.home_project_name) uses
  • Loading branch information
Moises Deniz Aleman committed May 23, 2016
1 parent 62933d5 commit 0c575d7
Show file tree
Hide file tree
Showing 18 changed files with 42 additions and 40 deletions.
4 changes: 2 additions & 2 deletions src/api/app/controllers/webui/user_controller.rb
Expand Up @@ -188,8 +188,8 @@ def register
else
session[:login] = opts[:login]
User.current = User.find_by_login(session[:login])
if Project.where(name: User.current.home_project_name).exists?
redirect_to project_show_path(User.current.home_project_name)
if User.current.home_project
redirect_to project_show_path(User.current.home_project)
else
redirect_to root_path
end
Expand Down
5 changes: 5 additions & 0 deletions src/api/app/models/user.rb
Expand Up @@ -74,6 +74,7 @@ def create_home_project
project.relationships.create(user: self,
role: Role.find_by_title('maintainer'))
project.store({login: self.login})
@home_project = project
end
true
end
Expand Down Expand Up @@ -524,6 +525,10 @@ def home_project_name
"home:#{self.login}"
end

def home_project
@home_project ||= Project.find_by(name: home_project_name)
end

def branch_project_name(branch)
"#{self.home_project_name}:branches:#{branch}"
end
Expand Down
4 changes: 2 additions & 2 deletions src/api/app/views/layouts/webui/_personal_navigation.html.erb
Expand Up @@ -13,8 +13,8 @@
<%= User.current %>
<% end %>
<% end %> |
<% if Project.where(name: User.current.home_project_name).exists? %>
<%= link_to "Home Project", project_show_path(User.current.home_project_name) %>
<% if User.current.home_project %>
<%= link_to "Home Project", project_show_path(User.current.home_project) %>
<% else %>
<%= link_to "Create Home", new_project_path(name: User.current.home_project_name) %>
<% end %> |
Expand Down
12 changes: 6 additions & 6 deletions src/api/app/views/layouts/webui/webui.html.erb
Expand Up @@ -25,7 +25,7 @@
$(function() {
<%= yield :ready_function %>
<% if @configuration['theme'] == 'bento' %>
callPiwik();
callPiwik();
<% end %>
});
<% end %>
Expand Down Expand Up @@ -85,8 +85,8 @@
<strong class="grey-medium spacer1"><%= link_to(user_show_path(User.current)) do %><%= User.current %><% end %>:</strong>
<ul>
<li><%= link_to "Your Profile", user_show_path(User.current) %> </li>
<% if Project.where(name: User.current.home_project_name).exists? %>
<li><%= link_to "Home Project", project_show_path(User.current.home_project_name) %></li>
<% if User.current.home_project %>
<li><%= link_to "Home Project", project_show_path(User.current.home_project) %></li>
<% else %>
<li><%= link_to "Create Home Project", new_project_path(name: User.current.home_project_name) %></li>
<% end %>
Expand Down Expand Up @@ -116,7 +116,7 @@
{ 'OBS Manuals' => 'http://openbuildservice.org/help/manuals/' },
{ 'openSUSEs OBS Portal' => 'http://en.opensuse.org/Portal:Build_service' },
{ 'Reporting a Bug' => 'http://openbuildservice.org/support/' } ]

@helplinks.each do |helplink|
for k in helplink.keys %>
<li><a href="<%= helplink[k] -%>"><%= k %></a></li>
Expand All @@ -133,15 +133,15 @@
{ 'Forums' => 'http://forums.opensuse.org/forumdisplay.php/692-Open-Build-Service-%28OBS%29' },
{ 'Chat (IRC)' => 'irc://irc.opensuse.org/opensuse-buildservice' },
{ 'Twitter' => 'http://twitter.com/OBShq' } ]

@contactlinks.each do |contactlink|
for k in contactlink.keys %>
<li><a href="<%= contactlink[k] -%>"><%= k %></a></li>
<% end %>
<% end %>
</ul>
</div>
<div class="clear"></div>
<div class="clear"></div>
<div id="footer-legal" class="grid_12">
<p>
<a href="http://openbuildservice.org">Open Build Service (OBS)</a> is an <a href="http://www.opensuse.org">openSUSE project</a>.
Expand Down
4 changes: 2 additions & 2 deletions src/api/spec/controllers/webui/attributes_spec.rb
Expand Up @@ -5,8 +5,8 @@

describe 'GET index' do
it 'shows an error message when package does not exist' do
get :index, project: user.home_project_name, package: "Pok"
expect(response).to redirect_to(project_show_path(user.home_project_name))
get :index, project: user.home_project, package: "Pok"
expect(response).to redirect_to(project_show_path(user.home_project))
expect(flash[:error]).to eq("Package Pok not found")
end

Expand Down
2 changes: 1 addition & 1 deletion src/api/spec/controllers/webui/package_controller_spec.rb
Expand Up @@ -2,7 +2,7 @@

RSpec.describe Webui::PackageController, vcr: true do
let(:user) { create(:user, login: 'tom') }
let(:source_project) { Project.find_by(name: user.home_project_name) }
let(:source_project) { user.home_project }
let(:source_package) { create(:package, name: 'my_package', project: source_project) }
let(:target_project) { create(:project) }

Expand Down
6 changes: 3 additions & 3 deletions src/api/spec/controllers/webui/project_controller_spec.rb
Expand Up @@ -67,7 +67,7 @@
end

describe 'PATCH #update' do
let(:project) { Project.find_by_name(user_tom.home_project_name) }
let(:project) { user_tom.home_project }

context "with valid parameters" do
before do
Expand Down Expand Up @@ -355,15 +355,15 @@
describe 'GET #add_person' do
it do
login user_moi
get :add_person, project: Project.find_by(name: user_moi.home_project_name)
get :add_person, project: user_moi.home_project
expect(assigns(:roles)).to match_array(Role.local_roles)
end
end

describe 'GET #add_group' do
it do
login user_moi
get :add_group, project: Project.find_by(name: user_moi.home_project_name)
get :add_group, project: user_moi.home_project
expect(assigns(:roles)).to match_array(Role.local_roles)
end
end
Expand Down
2 changes: 1 addition & 1 deletion src/api/spec/controllers/webui/user_controller_spec.rb
Expand Up @@ -190,7 +190,7 @@
end

it { expect(flash[:success]).to eq("The account '#{new_user.login}' is now active.") }
it { expect(response).to redirect_to project_show_path(new_user.home_project_name) }
it { expect(response).to redirect_to project_show_path(new_user.home_project) }
end

context "when home project creation disabled" do
Expand Down
4 changes: 2 additions & 2 deletions src/api/spec/features/webui/attributes_spec.rb
Expand Up @@ -3,7 +3,7 @@
RSpec.feature "Attributes", :type => :feature, :js => true do
let!(:user) { create(:confirmed_user) }
let!(:attribute_type) { create(:attrib_type_with_namespace) }
let!(:attribute) { create(:attrib, project_id: Project.find_by_name(user.home_project_name).id) }
let!(:attribute) { create(:attrib, project_id: user.home_project.id) }

def add_attribute_with_values(package = nil)
visit index_attribs_path(project: user.home_project_name, package: package.try(:name))
Expand Down Expand Up @@ -69,7 +69,7 @@ def add_attribute_with_values(package = nil)

describe "for a project with a package" do
let!(:package) {
create(:package, project_id: Project.find_by_name(user.home_project_name).id)
create(:package, project_id: user.home_project.id)
}

scenario "add attribute with values" do
Expand Down
2 changes: 1 addition & 1 deletion src/api/spec/features/webui/login_spec.rb
Expand Up @@ -46,7 +46,7 @@
end

scenario "login without home project shows a link to create it" do
Project.find_by(name: user.home_project_name).destroy
user.home_project.destroy
login user
expect(page).to have_content "#{user.login} | Create Home | Logout"
end
Expand Down
4 changes: 2 additions & 2 deletions src/api/spec/features/webui/packages_spec.rb
Expand Up @@ -4,9 +4,9 @@
it_behaves_like 'user tab' do
let(:package) {
create(:package, name: "group_test_package",
project_id: Project.find_by(name: user_tab_user.home_project_name).id)
project_id: user_tab_user.home_project.id)
}
let!(:maintainer_user_role) { create(:relationship, package: package, user: user_tab_user) }
let(:project_path) { package_show_path(project: user_tab_user.home_project_name, package: package) }
let(:project_path) { package_show_path(project: user_tab_user.home_project, package: package) }
end
end
10 changes: 5 additions & 5 deletions src/api/spec/features/webui/projects_spec.rb
Expand Up @@ -3,11 +3,11 @@
RSpec.feature "Projects", :type => :feature, :js => true do
let!(:admin_user) { create(:admin_user) }
let!(:user) { create(:confirmed_user, login: "Jane") }
let(:project) { Project.find_by_name(user.home_project_name) }
let(:project) { user.home_project }

it_behaves_like 'user tab' do
let(:project_path) { project_show_path(project: user_tab_user.home_project_name) }
let(:project) { Project.find_by_name(user_tab_user.home_project_name) }
let(:project_path) { project_show_path(user_tab_user.home_project) }
let(:project) { user_tab_user.home_project }
end

scenario "project show" do
Expand Down Expand Up @@ -37,7 +37,7 @@

scenario "create package" do
login user
visit project_show_path(project: user.home_project_name)
visit project_show_path(user.home_project)
click_link("Create package")
expect(page).to have_text("Create New Package for #{user.home_project_name}")
fill_in "name", :with => "coolstuff"
Expand All @@ -46,7 +46,7 @@

scenario "create subproject" do
login user
visit project_show_path(project: user.home_project_name)
visit project_show_path(user.home_project)
click_link("Subprojects")

expect(page).to have_text("This project has no subprojects")
Expand Down
4 changes: 2 additions & 2 deletions src/api/spec/features/webui/requests_spec.rb
Expand Up @@ -7,9 +7,9 @@
RSpec.feature "Requests", :type => :feature, :js => true do
let(:submitter) { create(:confirmed_user, login: 'kugelblitz' ) }
let(:receiver) { create(:confirmed_user, login: 'titan' ) }
let(:target_project) { Project.find_by(name: receiver.home_project_name) }
let(:target_project) { receiver.home_project }
let(:target_package) { create(:package, name: 'goal', project_id: target_project.id) }
let(:source_project) { Project.find_by(name: submitter.home_project_name) }
let(:source_project) { submitter.home_project }
let(:source_package) { create(:package, name: 'ball', project_id: source_project.id) }
let(:bs_request) { create(:bs_request, description: "a long text - " * 200, creator: submitter.login) }
let(:create_submit_request) do
Expand Down
5 changes: 2 additions & 3 deletions src/api/spec/features/webui/users/users_home_project_spec.rb
Expand Up @@ -4,14 +4,13 @@
let!(:user) { create(:confirmed_user, login: 'moi') }

scenario "creating a home project" do
Project.find_by(name: user.home_project_name).destroy
user.home_project.destroy
login user
visit(new_project_path(name: user.home_project_name))

click_button("Create Project")
expect(page).to have_content("Project '#{user.home_project_name}' was created successfully")
expect(page).to have_content "#{user.login} | Home Project | Logout"
project = Project.find_by(name: user.home_project_name)
expect(project).not_to be_nil
expect(user.home_project).not_to be_nil
end
end
2 changes: 1 addition & 1 deletion src/api/spec/features/webui/watchlists_spec.rb
Expand Up @@ -12,7 +12,7 @@

scenario "add projects to watchlist" do
login user
visit project_show_path(project: user.home_project_name)
visit project_show_path(user.home_project)

page.execute_script("$('#menu-favorites').show();")
expect(page).to have_content("List of projects you are watching")
Expand Down
2 changes: 1 addition & 1 deletion src/api/spec/models/package_spec.rb
Expand Up @@ -2,7 +2,7 @@

RSpec.describe Package, vcr: true do
let(:user) { create(:confirmed_user, login: 'tom') }
let(:home_project) { Project.find_by(name: user.home_project_name) }
let(:home_project) { user.home_project }
let(:package) { create(:package, name: 'test_package', project: home_project) }
let(:services) { package.services }

Expand Down
2 changes: 1 addition & 1 deletion src/api/spec/models/service_spec.rb
Expand Up @@ -3,7 +3,7 @@

RSpec.describe Service, vcr: true do
let(:user) { create(:confirmed_user, login: 'tom') }
let(:home_project) { Project.find_by(name: user.home_project_name) }
let(:home_project) { user.home_project }
let(:package) { create(:package, name: 'test_package', project: home_project) }
let(:service) { package.services }
let(:url) { "http://localhost:3200/source/#{home_project.name}/#{package.name}" }
Expand Down
8 changes: 3 additions & 5 deletions src/api/spec/models/user_spec.rb
Expand Up @@ -92,15 +92,13 @@
it 'creates a home project by default if allow_user_to_create_home_project is enabled' do
Configuration.stubs(:allow_user_to_create_home_project).returns(true)
user = create(:confirmed_user, login: 'random_name')
project = Project.find_by(name: user.home_project_name)
expect(project).not_to be_nil
expect(user.home_project).not_to be_nil
end

it "doesn't creates a home project if allow_user_to_create_home_project is disabled" do
Configuration.stubs(:allow_user_to_create_home_project).returns(false)
user = create(:confirmed_user, login: 'another_random_name')
project = Project.find_by(name: user.home_project_name)
expect(project).to be_nil
expect(user.home_project).to be_nil
end
end

Expand All @@ -117,7 +115,7 @@
create(:relationship_project_user, project: project, user: user)
create(:relationship_project_user, project: project_with_package, user: user)
involved_projects = user.involved_projects
expect(involved_projects).to include(Project.find_by_name(user.home_project_name))
expect(involved_projects).to include(user.home_project)
expect(involved_projects).to include(project)
expect(involved_projects).to include(project_with_package)
end
Expand Down

0 comments on commit 0c575d7

Please sign in to comment.