scottwillson/racing_on_rails

View on GitHub
test_ruby/helpers/results/renderers/team_name_renderer_test.rb

Summary

Maintainability
A
15 mins
Test Coverage
# frozen_string_literal: true

require_relative "../../../test_case"
require "tabular"
require_relative "../../../../app/helpers/results/renderers/team_name_renderer"
require "nokogiri"

module Results
  module Renderers
    # :stopdoc:
    class TeamNameRendererTest < Ruby::TestCase
      def test_render_no_team
        column = mock("column", key: :team_name)
        row = mock("row", :[] => nil, source: mock("result", team_id: nil))
        assert_nil TeamNameRenderer.render(column, row), "Result with no text, no team"
      end

      def test_render_team
        column = stub("column", key: :team_name)
        row = stub(
          "row",
          :[] => "Gentle Lovers",
          metadata: {},
          source: stub("result", calculation_result?: false, team_id: 18, team_competition_result?: false, year: 2010)
        )
        TeamNameRenderer.stubs(racing_association: mock("racing_association", unregistered_teams_in_results?: true))

        html = TeamNameRenderer.render(column, row)
        link = Nokogiri::HTML.fragment(html).search("a").first
        assert_equal "/teams/18/2010", link["href"], "href"
        assert_equal "Gentle Lovers", link.text, "text"
      end

      def test_competition_result
        column = stub("column", key: :team_name)
        row = stub("row",
                   :[] => "Gentle Lovers",
                   metadata: {},
                   source: stub("result",
                                calculation_result?: false,
                                team_id: 18,
                                event_id: 3,
                                race_id: 200,
                                team_competition_result?: true,
                                year: 2010,
                                team_member?: false))

        TeamNameRenderer.stubs(racing_association: mock("racing_association"))

        html = TeamNameRenderer.render(column, row)
        link = Nokogiri::HTML.fragment(html).search("a").first
        assert_equal "Gentle Lovers", link.text, "text"
        assert_equal "/events/3/teams/18/results#200", link["href"], "href"
      end
    end
  end
end