require_relative "../../test_helper" module RocketJobMissionControl class ApplicationHelperTest < ActionView::TestCase describe ApplicationHelper do describe "#state_icon" do RocketJobMissionControl::ApplicationHelper::STATE_ICON_MAP.each do |state, expected_class| describe "when the job state is #{state}" do it "returns the correct class" do assert_equal "#{expected_class} #{state}", state_icon(state) end end end end describe "#pretty_print_array_or_hash" do let(:arguments) { [42, "muad'dib"] } let(:helper_output) { pretty_print_array_or_hash(arguments) } describe "when arguments is a simple array" do it "returns a string with spacing and line breaks" do assert_equal "[
42,
\"muad'dib\"
]", helper_output end end describe "when arguments is an array with complex data" do let(:arguments) do [ 42, { crew: %w[leela fry bender], created_at: "1999-03-28" } ] end it "returns a string with spacing and line breaks" do expected_output = "[
42,
{
\"crew\": [
\"leela\",
\"fry\",
\"bender\"
],
\"created_at\": \"1999-03-28\"
}
]" assert_equal expected_output, helper_output end end describe "when arguments isn't an array or hash" do let(:arguments) { 42 } it "returns the arguments" do assert_equal arguments, helper_output end end end end end end