# frozen_string_literal: true require 'test_helper' class MountainViewComponentTest < ActiveSupport::TestCase def test_name component = MountainView::Component.new('header') assert_equal 'header', component.name end def test_humanized_title component = MountainView::Component.new('social_media_icons') assert_equal 'Social media icons', component.title end def test_styleguide_stubs component = MountainView::Component.new("header") expected_stub = header_stub_meta assert_instance_of Hash, component.styleguide_stubs assert_equal expected_stub, component.styleguide_stubs end def test_raw_stubs component = MountainView::Component.new('header') expected_stub = header_stub_only assert_instance_of Array, component.raw_stubs assert_equal expected_stub, component.raw_stubs end def test_component_stubs? component_with_stubs = MountainView::Component.new('header') component_with_empty_stub_file = MountainView::Component.new('breadcrumbs') component_without_stub_file = MountainView::Component.new('social_media_icons') component_with_stubs_but_incorrect_format = MountainView::Component.new('card') assert_equal true, component_with_stubs.component_stubs? assert_equal false, component_without_stub_file.component_stubs? assert_equal false, component_with_empty_stub_file.component_stubs? assert_equal true, component_with_stubs_but_incorrect_format .component_stubs? end def test_component_stubs component_with_stubs = MountainView::Component.new('header') assert_equal 2, component_with_stubs.component_stubs.length, 'Array Length Mismatch in test_component_stubs' end def test_stubs_extra_info component_with_extra_info = MountainView::Component.new('header') component_with_empty_stub_file = MountainView::Component.new('breadcrumbs') component_without_stub_file = MountainView::Component.new('paragraph') expected_extra_info_stub = 'There is this different classes' assert_equal expected_extra_info_stub, component_with_extra_info. stubs_extra_info assert_equal true, component_with_empty_stub_file.stubs_extra_info.empty? assert_equal true, component_without_stub_file.stubs_extra_info.empty? end def test_stubs_extra_info? component_with_stubs = MountainView::Component.new('header') component_with_empty_stub_file = MountainView::Component.new('breadcrumbs') component_without_stub_file = MountainView::Component.new('social_media_icons') component_with_stubs_but_no_extra_info = MountainView::Component.new('card') assert_equal true, component_with_stubs.stubs_extra_info? assert_equal false, component_without_stub_file.stubs_extra_info? assert_equal false, component_with_empty_stub_file.stubs_extra_info? assert_equal false, component_with_stubs_but_no_extra_info. stubs_extra_info? end def test_stubs_correct_format? component_with_correct_stubs = MountainView::Component.new('header') component_with_empty_stub_file = MountainView::Component .new('breadcrumbs') component_without_stub_file = MountainView::Component.new('social_media_icons') component_with_stubs_but_old_syntax = MountainView::Component.new('card') assert_equal true, component_with_correct_stubs.stubs_correct_format? assert_equal false, component_without_stub_file.stubs_correct_format? assert_equal false, component_with_empty_stub_file.stubs_correct_format? assert_equal true, component_with_stubs_but_old_syntax. stubs_correct_format? end def test_stubs_file component = MountainView::Component.new('header') expected_stubs_file = Rails.root.join('app/components/header/header.yml') assert_equal expected_stubs_file, component.stubs_file end def test_stubs? component_with_stubs = MountainView::Component.new('header') component_without_stub_file = MountainView::Component .new('social_media_icons') component_with_empty_stub_file = MountainView::Component .new('breadcrumbs') assert_equal true, component_with_stubs.stubs? assert_equal false, component_without_stub_file.stubs? assert_equal false, component_with_empty_stub_file.stubs? end end