fluentd-ui/test/controllers/misc_controller_test.rb
Kenji Okimoto 04b043cc84
Add test/controllers/misc_controller_test.rb
Signed-off-by: Kenji Okimoto <okimoto@clear-code.com>
2018-08-01 18:20:12 +09:00

71 lines
1.9 KiB
Ruby

require "test_helper"
class MiscControllerTest < ActionDispatch::IntegrationTest
class DummyAgent
def log
Struct.new(:read).new(read: "dummy_log_content")
end
def version
"dummy version"
end
end
setup do
@fluentd = FactoryBot.build(:fluentd, log_file: "dummy.log")
@agent = DummyAgent.new
@fluentd_log_content = @agent.log.read
@fluentd_version = @agent.version
@fluentd_ui_log_content = <<-LOG.strip_heredoc
log1
log2
log3
LOG
@dummy_log_path = "tmp/dummy.log"
@destination_dir = Rails.root.join("tmp/system_info")
user = FactoryBot.build(:user)
post(sessions_path(session: { name: user.name, password: user.password }))
any_instance_of(MiscController) do |object|
stub(object).log_path { @dummy_log_path }
end
File.write(@dummy_log_path, @fluentd_ui_log_content)
stub(@fluentd).agent { @agent }
stub(Fluentd).instance { @fluentd }
end
sub_test_case "download info" do
setup do
get(misc_download_info_path)
#expand files in zip
Zip::File.open(Rails.root.join("tmp/system_info.zip")) do |zip_file|
FileUtils.mkdir_p(@destination_dir)
zip_file.each do |entry|
destination = File.join(@destination_dir, entry.name)
zip_file.extract(entry, destination) unless File.exist?(destination)
end
end
end
teardown do
FileUtils.rm_rf(Rails.root.join("tmp/system_info.zip"))
FileUtils.rm_rf(@destination_dir)
FileUtils.rm_rf("tmp/dummy.log")
end
def content_of(name)
File.read(File.join(@destination_dir, name))
end
test "write files" do
assert_equal("#{@fluentd_log_content}\n", content_of("fluentd.log"))
assert_equal("#{@fluentd_ui_log_content}", content_of("fluentd-ui.log"))
assert_match("RAILS_ENV=test", content_of("env.txt"))
assert_match("fluentd: #{@fluentd_version}", content_of("versions.txt"))
end
end
end