Sha256: 60afebb2e8935260e5bd6ceedf698c8e6628619ae8912e08ebedcf257de1ee1f

Contents?: true

Size: 1.96 KB

Versions: 13

Compression:

Stored size: 1.96 KB

Contents

# frozen_string_literal: true

require 'spec_helper'

describe "spree/admin/shared/_navigation_footer", type: :view do
  let(:user) { FactoryBot.build_stubbed(:user, :admin) }
  let(:ability) { Object.new.extend(CanCan::Ability) }
  before do
    allow(view).to receive(:try_spree_current_user).and_return(user)
    allow(controller).to receive(:current_ability).and_return(ability)
  end

  it "has a a login-nav section" do
    render
    expect(rendered).to have_selector("#login-nav")
  end

  context "authorized user" do
    before do
      ability.can :admin, user
    end

    it "has a user-account-link that links to edit_admin_user_path" do
      render
      expect(rendered).to have_link(user.email, href: Spree::Core::Engine.routes.url_helpers.edit_admin_user_path(user))
    end

    it "has not a user-account-link that links to admin_path" do
      render
      expect(rendered).to_not have_link(user.email, href: Spree::Core::Engine.routes.url_helpers.admin_path)
    end
  end

  context "unauthorized user" do
    it "has a user-account-link that links to admin_path" do
      render
      expect(rendered).to_not have_link(user.email, href: Spree::Core::Engine.routes.url_helpers.admin_path)
    end

    it "has not a user-account-link that links to edit_admin_user_path" do
      render
      expect(rendered).to_not have_link(user.email, href: Spree::Core::Engine.routes.url_helpers.edit_admin_user_path(user))
    end
  end

  context "with a required spree_logout_path helper" do
    before do
      allow(view).to receive(:spree_logout_path).and_return("/logout")
    end

    it "has user-logout-link" do
      render
      expect(rendered).to have_link(I18n.t('spree.logout'), href: "/logout")
    end
  end

  context "with a spree.root_path" do
    before do
      allow(view.spree).to receive("root_path").and_return("/")
    end

    it "has a back to store link" do
      render
      expect(rendered).to have_link(I18n.t('spree.back_to_store'), href: "/")
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
solidus_backend_devise_token_auth-2.8.0.alpha.14 spec/views/spree/admin/shared/navigation_footer_spec.rb
solidus_backend_devise_token_auth-2.8.0.alpha.13 spec/views/spree/admin/shared/navigation_footer_spec.rb
solidus_backend_devise_token_auth-2.8.0.alpha.12 spec/views/spree/admin/shared/navigation_footer_spec.rb
solidus_backend_devise_token_auth-2.8.0.alpha.11 spec/views/spree/admin/shared/navigation_footer_spec.rb
solidus_backend_devise_token_auth-2.8.0.alpha.10 spec/views/spree/admin/shared/navigation_footer_spec.rb
solidus_backend_devise_token_auth-2.8.0.alpha.9 spec/views/spree/admin/shared/navigation_footer_spec.rb
solidus_backend_devise_token_auth-2.8.0.alpha.8 spec/views/spree/admin/shared/navigation_footer_spec.rb
solidus_backend_devise_token_auth-2.8.0.alpha.7 spec/views/spree/admin/shared/navigation_footer_spec.rb
solidus_backend_devise_token_auth-2.8.0.alpha.6 spec/views/spree/admin/shared/navigation_footer_spec.rb
solidus_backend_devise_token_auth-2.8.0.alpha.5 spec/views/spree/admin/shared/navigation_footer_spec.rb
solidus_backend_devise_token_auth-2.8.0.alpha.4 spec/views/spree/admin/shared/navigation_footer_spec.rb
solidus_backend_devise_token_auth-2.8.0.alpha.3 spec/views/spree/admin/shared/navigation_footer_spec.rb
solidus_backend_devise_token_auth-2.8.0.alpha.2 spec/views/spree/admin/shared/navigation_footer_spec.rb