#encoding: utf-8 require 'spec_helper' describe Pousse do describe 'Mailer' do let :mailer do Class.new(Pousse::Mailer) do def send_alert mail( to: 'everybody', body: 'alert("Générale !");' ) end end end let :redis_instance do redis_instance = stub() Redis.stub(new: redis_instance) redis_instance end it 'provide Pousse::Mailer' do expect{ Class.new Pousse::Mailer }.to_not raise_error end it 'sends the message to redis' do redis_instance .should_receive(:publish) .with('everybody', 'alert("Générale !");') mailer.send_alert.deliver end end describe "#js" do it 'returns some javascript' do require 'v8' script = Pousse::js(['test'], 'http://your-poussette-server.com', 'your secret') cxt = V8::Context.new expect { # Javascript syntax should be valid. cxt.eval( "test = function(){ #{script} }") }.to_not raise_exception end context 'with global configuration' do it 'returns some javascript' do Pousse.configure do |config| config.secret = 'your secret' end require 'v8' script = Pousse::js(['test'], 'http://your-poussette-server.com') cxt = V8::Context.new expect { # Javascript syntax should be valid. cxt.eval( "test = function(){ #{script} }") }.to_not raise_exception end end context "without configuration" do it 'raise an exception' do Pousse.configure do |config| config.secret = nil end expect { Pousse::js(['test'], 'http://your-poussette-server.com') }.to raise_exception end end end describe '#configure' do it 'accept redis_configuration' do Pousse::configure do |config| #config.should be instance_of Pousse::Configuration config.redis = {} end end end end