# frozen_string_literal: true require "spec_helper" RSpec.describe "spree/admin/payment_methods/index.html.haml" do include AuthenticationHelper helper Spree::Admin::NavigationHelper helper Spree::Admin::BaseHelper helper Spree::Core::Engine.routes.url_helpers before do ActionView::Base.class_eval do def new_object_url() "" end def edit_object_url(_object, _options = {}) "" end def object_url(_object = nil, _options = {}) "" end end assign(:payment_methods, [ create(:payment_method), create(:payment_method) ]) allow(controller).to receive(:controller_name).and_return("tests") end describe "payment methods index page" do context "when user is not admin" do before do allow(view).to receive_messages spree_current_user: create(:user) end it "shows only the providers of the existing payment methods" do render expect(rendered).to have_content( "Cash/EFT/etc. (payments for which automatic validation is not required)", count: 2 ) end it "does not show Enviroment column" do render expect(rendered).not_to have_content "Environment" end it "does not show column content" do render expect(rendered).not_to have_content "Test" end end context "when user is admin" do before do allow(view).to receive_messages spree_current_user: create(:admin_user) end it "shows only the providers of the existing payment methods" do render expect(rendered).to have_content( "Cash/EFT/etc. (payments for which automatic validation is not required)", count: 2 ) end it "shows the Enviroment column" do render expect(rendered).to have_content "Environment" end it "shows the column content" do render expect(rendered).to have_content "Test" end end end end