Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -48,19 +48,21 @@
tab_nav.with_tab(
test_selector: "project-overview-tab",
selected: current_page?(project_overview_path),
href: helpers.project_overview_path,
href: helpers.project_overview_path
) do |t|
t.with_icon(icon: :"op-view-split")
t.with_text { I18n.t("overviews.label_overview") }
end

tab_nav.with_tab(
test_selector: "project-dashboard-tab",
selected: current_page?(dashboard_project_overview_path),
href: helpers.dashboard_project_overview_path,
) do |t|
t.with_icon(icon: :"op-view-list")
t.with_text { I18n.t("overviews.label_dashboard") }
if current_user.allowed_in_project?(:manage_dashboards, project)
tab_nav.with_tab(
test_selector: "project-dashboard-tab",
selected: current_page?(dashboard_project_overview_path),
href: helpers.dashboard_project_overview_path
) do |t|
t.with_icon(icon: :"op-view-list")
t.with_text { I18n.t("overviews.label_dashboard") }
end
end
end
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ def render_component(...)

let(:workspace_type) { :project }
let(:project) { build_stubbed(:project, name: "Too big to fail", workspace_type:) }
let(:user) { build_stubbed(:user) }
let(:user) { build_stubbed(:admin) }

current_user { user }

Expand Down Expand Up @@ -135,7 +135,9 @@ def render_component(...)
expect(rendered_component).to have_element "action-menu", "data-select-variant": "none"
end

context "without manage permissions" do
context "without manage dashboard permissions" do
let(:user) { create(:user) }

it "renders action menu items", :aggregate_failures do
expect(rendered_component).to have_menu do |menu|
expect(menu).to have_selector :menuitem, count: 1
Expand All @@ -144,7 +146,7 @@ def render_component(...)
end
end

context "with manage permissions" do
context "with manage dashboard permissions" do
let(:user) { build_stubbed(:admin) }

it "renders action menu items", :aggregate_failures do
Expand All @@ -159,27 +161,40 @@ def render_component(...)
end

describe "tab bar", with_flag: { new_project_overview: true } do
it "renders a tab bar" do
expect(rendered_component).to have_css ".PageHeader-tabNavBar"
end
context "when user has permission to manage dashboard" do
let(:user) { build_stubbed(:admin) }

it "renders 2 tabs", :aggregate_failures do
expect(rendered_component).to have_list class: "tabnav-tabs" do |list|
expect(list).to have_list_item count: 2
expect(list).to have_list_item "Overview"
expect(list).to have_list_item "Dashboard"
it "renders a tab bar" do
expect(rendered_component).to have_css ".PageHeader-tabNavBar"
end

it "renders 2 tabs", :aggregate_failures do
expect(rendered_component).to have_list class: "tabnav-tabs" do |list|
expect(list).to have_list_item count: 2
expect(list).to have_list_item "Overview"
expect(list).to have_list_item "Dashboard"
end
end

it "renders Overview tab link", :aggregate_failures do
expect(rendered_component).to have_link "Overview" do |link|
expect(link).to have_octicon :"op-view-split"
end
end
end

it "renders Overview tab link", :aggregate_failures do
expect(rendered_component).to have_link "Overview" do |link|
expect(link).to have_octicon :"op-view-split"
it "renders Dashboard tab link", :aggregate_failures do
expect(rendered_component).to have_link "Dashboard" do |link|
expect(link).to have_octicon :"op-view-list"
end
end
end

it "renders Dashboard tab link", :aggregate_failures do
expect(rendered_component).to have_link "Dashboard" do |link|
expect(link).to have_octicon :"op-view-list"
context "when user does NOT have permission to manage dashboard" do
let(:user) { create(:user, member_with_permissions: { project => %i[view_work_packages edit_work_packages] }) }

it "renders only the Overview tab", :aggregate_failures do
expect(rendered_component).to have_link "Overview"
expect(rendered_component).to have_no_link "Dashboard"
end
end
end
Expand Down
Loading