Project

General

Profile

Download (1.52 KB) Statistics
| Branch: | Tag: | Revision:
require 'test_helper'

class UnknownResource
end

class FiltersHelperTest < ActionView::TestCase
include FiltersHelper

def test_search_path_is_empty_for_nil_resource
assert_equal '', search_path(nil)
end

def test_search_path_is_empty_for_excepted_classes
%w(Image HostClass).each do |clazz_name|
assert_equal '', search_path(clazz_name), "class #{clazz_name} doesn't support autocomplete, shouldn't return autocomplete path"
end
end

def test_search_path_for_foreman_model
assert_equal 'hosts_path/auto_complete_search', search_path('Host')
end

def test_should_return_empty_search_path_if_resource_is_not_recognized
assert_equal '', search_path('UnknownResource')
end

def test_engine_search_path_is_used_when_engine_override_available
with_search_overrides('TestOverride' => ->(resource) { 'test_override/auto_complete_search' })
assert_equal "test_override/auto_complete_search", search_path('TestOverride::Resource')
end

def test_no_deconstantization_if_there_is_no_namespace
with_search_overrides('TestOverride' => ->(resource) { 'test_override/auto_complete_search' })
assert_equal "test_override/auto_complete_search", search_path('TestOverride')
end

private

def resource_path(klass)
(klass == 'Host') ? 'hosts_path' : nil
end

def with_search_overrides(search_overrides)
plugin = mock('ExamplePlugin')
plugin.expects(:search_overrides).at_least_once.returns(search_overrides)
Foreman::Plugin.expects(:all).at_least_once.returns([plugin])
end
end
(7-7/16)