jam-cloud/ruby/spec/jam_ruby/models/icecast_relay_spec.rb

60 lines
1.7 KiB
Ruby

require 'spec_helper'
describe IcecastRelay do
let(:relay) { IcecastRelay.new }
let(:output){ StringIO.new }
let(:builder) { ::Builder::XmlMarkup.new(:target => output, :indent => 1) }
it "should not save" do
relay.save.should be false
relay.errors[:mount].should == ["can't be blank"]
relay.errors[:server].should == ["can't be blank"]
end
it "save" do
relay.mount = Faker::Lorem.characters(number: 10)
relay.server = Faker::Lorem.characters(number: 10)
relay.relay_shoutcast_metadata = false
relay.save!
relay.dumpXml(builder)
output.rewind
xml = Nokogiri::XML(output)
xml.css('relay port').text.should == relay.port.to_s
xml.css('relay mount').text.should == relay.mount
xml.css('relay server').text.should == relay.server
xml.css('relay local-mount').length.should == 0
xml.css('relay username').length.should == 0
xml.css('relay password').length.should == 0
xml.css('relay relay-shoutcast-metadata').text.should == "0"
xml.css('relay on-demand').text.should == "1"
end
describe "poke configs" do
let(:server) { a = FactoryBot.create(:icecast_server_with_overrides); a.config_updated; IcecastServer.find(a.id) }
before(:each) do
relay = FactoryBot.build(:icecast_relay, server: '127.0.0.1')
relay.save!
JamRuby::IcecastServerRelay.create!(server: server, relay: relay)
server.save!
server.config_updated
server.reload
end
it "success via server" do
server.relays.first.save!
server.reload
server.config_changed.should == 1
end
it "delete via server" do
server.relays.first.destroy
server.reload
server.config_changed.should == 1
end
end
end