Sha256: d80b088072e155ee3d36f51657c9b162c277ac6f0f2ea534fb82d9396a867d65

Contents?: true

Size: 1.15 KB

Versions: 6

Compression:

Stored size: 1.15 KB

Contents

require_relative 'website_context'

require 'falcon/server'
require 'falcon/adapters/rack'

require 'async/http/url_endpoint'
require 'async/websocket/client'

# Learn about best practice specs from http://betterspecs.org
RSpec.describe "my website" do
	include_context "website"
	
	it "should have an accessible front page" do
		get "/"
		
		follow_redirect!
		
		expect(last_response.status).to be == 200
	end
	
	context "websockets" do
		include_context Async::RSpec::Reactor
		
		let(:endpoint) {Async::HTTP::URLEndpoint.parse("http://localhost:9282")}
		let(:server) {Falcon::Server.new(Falcon::Adapters::Rack.new(app), endpoint)}
		
		let(:hello_message) do
			{
				"user" => "test",
				"text" => "Hello World",
			}
		end
		
		let!(:server_task) do
			server_task = reactor.async do
				server.run
			end
		end
		
		after(:each) do
			server_task.stop
		end
		
		it "can connect to server" do
			endpoint.connect do |socket|
				connection = Async::WebSocket::Client.new(socket, "ws://localhost/server/connect")
				
				connection.send_message(hello_message)
				
				message = connection.next_message
				expect(message).to be == hello_message
			end
		end
	end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
async-websocket-0.9.0 examples/utopia/spec/website_spec.rb
async-websocket-0.8.0 examples/utopia/spec/website_spec.rb
async-websocket-0.7.0 examples/utopia/spec/website_spec.rb
async-websocket-0.6.1 examples/utopia/spec/website_spec.rb
async-websocket-0.6.0 examples/utopia/spec/website_spec.rb
async-websocket-0.5.0 examples/utopia/spec/website_spec.rb