Sha256: 7c1f436f2a04d4042c90b72c76e7dd97817ae1bb45964a644e1a878dff0e19b0

Contents?: true

Size: 1.54 KB

Versions: 3

Compression:

Stored size: 1.54 KB

Contents

describe TrophyHelper, type: :helper do
  describe "#display_trophy_link" do
    let(:user) { FactoryGirl.create(:user) }
    let(:id) { '9999' }

    let(:text_attributes) { '[data-add-text="Highlight Work on Profile"][data-remove-text="Unhighlight Work"]' }
    let(:url_attribute) { "[data-url=\"/users/#{user.to_param}/trophy?work_id=#{id}\"]" }

    context "when there is no trophy" do
      it "has a link for highlighting" do
        out = helper.display_trophy_link(user, id) { |text| "foo #{text} bar" }
        node = Capybara::Node::Simple.new(out)
        expect(node).to have_selector("a.trophy-class.trophy-off#{text_attributes}#{url_attribute}")
        expect(node).to have_link 'foo Highlight Work on Profile bar', href: '#'
      end
    end

    context "when there is a trophy" do
      before do
        user.trophies.create(work_id: id)
      end

      it "has a link for highlighting" do
        out = helper.display_trophy_link(user, id) { |text| "foo #{text} bar" }
        node = Capybara::Node::Simple.new(out)
        expect(node).to have_selector("a.trophy-class.trophy-on#{text_attributes}#{url_attribute}")
        expect(node).to have_link 'foo Unhighlight Work bar', href: '#'
      end

      it "allows removerow to be passed" do
        out = helper.display_trophy_link(user, id, data: { removerow: true }) { |text| "foo #{text} bar" }
        node = Capybara::Node::Simple.new(out)
        expect(node).to have_selector("a.trophy-class.trophy-on[data-removerow=\"true\"]#{text_attributes}#{url_attribute}")
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
sufia-7.0.0.beta3 spec/helpers/trophy_helper_spec.rb
sufia-7.0.0.beta2 spec/helpers/trophy_helper_spec.rb
sufia-7.0.0.beta1 spec/helpers/trophy_helper_spec.rb