From 5529970126a4be20898ae7ede319da8e0d7fbb91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20Fankh=C3=A4nel?= Date: Wed, 26 Jul 2017 12:53:58 +0200 Subject: [PATCH 1/2] Basic tests for UsersTab add user button --- .../add_membership_button_if_needed_spec.rb | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 spec/views/components/pageflow/admin/add_membership_button_if_needed_spec.rb diff --git a/spec/views/components/pageflow/admin/add_membership_button_if_needed_spec.rb b/spec/views/components/pageflow/admin/add_membership_button_if_needed_spec.rb new file mode 100644 index 0000000000..ee616b3418 --- /dev/null +++ b/spec/views/components/pageflow/admin/add_membership_button_if_needed_spec.rb @@ -0,0 +1,46 @@ +require 'spec_helper' + +module Pageflow + module Admin + describe AddMembershipButtonIfNeeded, type: :view_component do + before do + helper.extend(ActiveAdmin::ViewHelpers) + helper.extend(Pageflow::Admin::MembershipsHelper) + allow(helper).to receive(:new_admin_account_membership_path) + allow(helper).to receive(:url_for) + end + + it 'renders add user button when account available' do + account = create(:account) + user_account = create(:account) + create(:user, :member, on: user_account) + account_manager = create(:user, :manager, on: account) + create(:membership, + user: account_manager, + entity: user_account, + role: :manager) + sign_in(account_manager) + + render do + add_membership_button_if_needed(account_manager, account, 'account') + end + + expect(rendered).to have_selector('a', text: 'Add user') + expect(rendered).to_not have_selector('a', class: 'disabled') + end + + it 'renders disabled add user button when account unavailable' do + account = create(:account) + create(:user, :member, on: account) + account_manager = create(:user, :manager, on: account) + sign_in(account_manager) + + render do + add_membership_button_if_needed(account_manager, account, 'account') + end + + expect(rendered).to have_selector('a', class: 'disabled') + end + end + end +end From 6f5445849e97dc66a3352409bfe2f6ba50872302 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20Fankh=C3=A4nel?= Date: Tue, 1 Aug 2017 19:21:43 +0200 Subject: [PATCH 2/2] Basic tests for UserAccountsTab add user button --- .../add_membership_button_if_needed_spec.rb | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/spec/views/components/pageflow/admin/add_membership_button_if_needed_spec.rb b/spec/views/components/pageflow/admin/add_membership_button_if_needed_spec.rb index ee616b3418..e02a128abc 100644 --- a/spec/views/components/pageflow/admin/add_membership_button_if_needed_spec.rb +++ b/spec/views/components/pageflow/admin/add_membership_button_if_needed_spec.rb @@ -7,6 +7,7 @@ module Admin helper.extend(ActiveAdmin::ViewHelpers) helper.extend(Pageflow::Admin::MembershipsHelper) allow(helper).to receive(:new_admin_account_membership_path) + allow(helper).to receive(:new_admin_user_membership_path) allow(helper).to receive(:url_for) end @@ -41,6 +42,38 @@ module Admin expect(rendered).to have_selector('a', class: 'disabled') end + + it 'renders add account button when account available' do + first_account = create(:account) + user = create(:user, :member, on: first_account) + second_account = create(:account) + account_manager = create(:user, :manager, on: first_account) + create(:membership, + user: account_manager, + entity: second_account, + role: 'manager') + sign_in(account_manager) + + render do + add_membership_button_if_needed(user, user, 'account') + end + + expect(rendered).to have_selector('a', text: 'Add Account') + expect(rendered).to_not have_selector('a', class: 'disabled') + end + + it 'renders disabled add account button when account unavailable' do + first_account = create(:account) + user = create(:user, :member, on: first_account) + account_manager = create(:user, :manager, on: first_account) + sign_in(account_manager) + + render do + add_membership_button_if_needed(user, user, 'account') + end + + expect(rendered).to have_selector('a', class: 'disabled') + end end end end