require "spec_helper" describe "histories", stub: :daemon do let!(:exists_user) { build(:user) } include_context 'daemon has some config histories' before do login_with exists_user end describe 'index' do before do visit '/daemon/setting/histories' end it 'show histories#index' do page.should have_css('h1', text: I18n.t('fluentd.settings.histories.index.page_title')) expect(all('.row tr').count).to eq 9 + 1 # links to hisotries#show + 1 table header end it 'will go to histories#show' do all('.row tr td a').first.click page.should have_css('h1', text: I18n.t('fluentd.settings.histories.show.page_title')) end end describe 'show' do let(:last_backup_file) { Fluentd::SettingArchive::BackupFile.new(daemon.agent.backup_files_in_new_order.first) } before do visit "/daemon/setting/histories/#{last_backup_file.file_id}" end it 'show histories#show' do page.should have_css('h1', text: I18n.t('fluentd.settings.histories.show.page_title')) page.should have_text(last_backup_file.content) end it 'update config and redirect to setting#show' do click_link I18n.t("terms.reuse") page.should have_css('h1', text: I18n.t('fluentd.settings.show.page_title')) page.should have_text(I18n.t('messages.config_successfully_copied', brand: 'fluentd') ) page.should have_text(last_backup_file.content) end describe "configtest" do let(:daemon) { build(:fluentd, variant: "fluentd_gem") } # To use fluentd_gem for real dry-run checking before do daemon.agent.config_write config daemon.agent.config_write "# dummy" backup = Fluentd::SettingArchive::BackupFile.new(daemon.agent.backup_files_in_new_order.first) visit "/daemon/setting/histories/#{backup.file_id}" click_link I18n.t("terms.configtest") end context "invalid configfile" do let(:config) { <<-CONFIG } type aaaaaaaaaaaa CONFIG it do page.should_not have_css('.alert-success') page.should have_css('.alert-danger') page.should have_text(%Q|Unknown input plugin 'aaaaaaaaaaaa'|) end end context "valid configfile" do let(:config) { <<-CONFIG } type syslog tag syslog CONFIG it do page.should have_css('.alert-success') page.should_not have_css('.alert-danger') end end end end end