Commit 91463e52 authored by Tiago Botelho's avatar Tiago Botelho Committed by Jose

Specify environment actions to distinguish between metrics and every other...

Specify environment actions to distinguish between metrics and every other environment related actions
parent c4df74d1
...@@ -31,10 +31,6 @@ class Projects::EnvironmentsController < Projects::ApplicationController ...@@ -31,10 +31,6 @@ class Projects::EnvironmentsController < Projects::ApplicationController
end end
end end
def empty
render :empty
end
def folder def folder
folder_environments = project.environments.where(environment_type: params[:id]) folder_environments = project.environments.where(environment_type: params[:id])
@environments = folder_environments.with_state(params[:scope] || :available) @environments = folder_environments.with_state(params[:scope] || :available)
...@@ -124,6 +120,10 @@ class Projects::EnvironmentsController < Projects::ApplicationController ...@@ -124,6 +120,10 @@ class Projects::EnvironmentsController < Projects::ApplicationController
end end
end end
def empty
render :empty
end
def metrics def metrics
# Currently, this acts as a hint to load the metrics details into the cache # Currently, this acts as a hint to load the metrics details into the cache
# if they aren't there already # if they aren't there already
......
...@@ -15,6 +15,7 @@ class Projects::GitHttpClientController < Projects::ApplicationController ...@@ -15,6 +15,7 @@ class Projects::GitHttpClientController < Projects::ApplicationController
# Git clients will not know what authenticity token to send along # Git clients will not know what authenticity token to send along
skip_before_action :verify_authenticity_token skip_before_action :verify_authenticity_token
skip_before_action :repository skip_before_action :repository
skip_before_action :available_environment
before_action :authenticate_user before_action :authenticate_user
private private
......
...@@ -2,7 +2,7 @@ class Projects::UploadsController < Projects::ApplicationController ...@@ -2,7 +2,7 @@ class Projects::UploadsController < Projects::ApplicationController
include UploadsActions include UploadsActions
# These will kick you out if you don't have access. # These will kick you out if you don't have access.
skip_before_action :project, :repository, skip_before_action :project, :repository, :available_environment,
if: -> { action_name == 'show' && image_or_video? } if: -> { action_name == 'show' && image_or_video? }
before_action :authorize_upload_file!, only: [:create] before_action :authorize_upload_file!, only: [:create]
......
...@@ -204,18 +204,18 @@ ...@@ -204,18 +204,18 @@
%ul.sidebar-sub-level-items %ul.sidebar-sub-level-items
= nav_link(controller: [:environments, :clusters, :user, :gcp], html_options: { class: "fly-out-top-item" } ) do = nav_link(controller: [:environments, :clusters, :user, :gcp], html_options: { class: "fly-out-top-item" } ) do
= link_to project_environments_path(@project) do = link_to operations_metrics_path(@project, @available_environment) do
%strong.fly-out-top-item-name %strong.fly-out-top-item-name
= _('Operations') = _('Operations')
%li.divider.fly-out-top-item %li.divider.fly-out-top-item
- if project_nav_tab? :environments - if project_nav_tab? :environments
= nav_link(controller: [:environments, :metrics]) do = nav_link(controller: :environments, action: [:metrics, :empty]) do
= link_to operations_metrics_path(@project, @available_environment), title: 'Metrics', class: 'shortcuts-environments' do = link_to operations_metrics_path(@project, @available_environment), title: 'Metrics', class: 'shortcuts-environments' do
%span %span
= _('Metrics') = _('Metrics')
= nav_link(controller: :environments) do = nav_link(controller: :environments, action: [:index, :folder, :show, :new, :edit, :create, :update, :stop, :terminal]) do
= link_to project_environments_path(@project), title: 'Environments', class: 'shortcuts-environments' do = link_to project_environments_path(@project), title: 'Environments', class: 'shortcuts-environments' do
%span %span
= _('Environments') = _('Environments')
......
...@@ -277,6 +277,16 @@ describe Projects::EnvironmentsController do ...@@ -277,6 +277,16 @@ describe Projects::EnvironmentsController do
end end
end end
describe 'GET #empty' do
it 'responds with HTML' do
get :empty, namespace_id: project.namespace,
project_id: project
expect(response).to be_ok
expect(response).to render_template 'empty'
end
end
describe 'GET #metrics' do describe 'GET #metrics' do
before do before do
allow(controller).to receive(:environment).and_return(environment) allow(controller).to receive(:environment).and_return(environment)
......
...@@ -110,6 +110,14 @@ describe 'User uses shortcuts', :js do ...@@ -110,6 +110,14 @@ describe 'User uses shortcuts', :js do
end end
context 'when navigating to the Operations pages' do context 'when navigating to the Operations pages' do
it 'redirects to the Metrics page' do
find('body').native.send_key('g')
find('body').native.send_key('m')
expect(page).to have_active_navigation('Operations')
expect(page).to have_active_sub_navigation('Metrics')
end
it 'redirects to the Environments page' do it 'redirects to the Environments page' do
find('body').native.send_key('g') find('body').native.send_key('g')
find('body').native.send_key('e') find('body').native.send_key('e')
......
require 'spec_helper'
describe EnvironmentsHelper do
include ApplicationHelper
describe 'operations_metrics_path' do
let(:project) { create(:project) }
it 'returns empty metrics path when environment is nil' do
expect(helper.operations_metrics_path(project, nil)).to eq(empty_project_environments_path(project))
end
it 'returns environment metrics path when environment is passed' do
environment = create(:environment, project: project)
expect(helper.operations_metrics_path(project, environment)).to eq(environment_metrics_path(environment))
end
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment