mirror of
https://github.com/fluent/fluentd-ui.git
synced 2026-05-05 10:56:11 +02:00
Add test/controllers/misc_controller_test.rb
Signed-off-by: Kenji Okimoto <okimoto@clear-code.com>
This commit is contained in:
parent
a6e90b0eaa
commit
04b043cc84
70
test/controllers/misc_controller_test.rb
Normal file
70
test/controllers/misc_controller_test.rb
Normal file
@ -0,0 +1,70 @@
|
||||
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
|
||||
Loading…
x
Reference in New Issue
Block a user