A simple Ruby server using Sinatra that serves Bluesky custom feeds
at master 64 lines 1.6 kB view raw
1require 'spec_helper' 2require 'rack' 3 4describe BlueFactory::RequestContext do 5 let(:env) {{ 6 'HTTP_AUTHORIZATION' => 'Bearer qwertyuiop' 7 }} 8 9 let(:request) { Rack::Request.new(env) } 10 11 describe '#request' do 12 it 'should return the underlying request' do 13 ctx = BlueFactory::RequestContext.new(request) 14 ctx.request.should == request 15 end 16 end 17 18 describe '#env' do 19 it "should return the request's environment" do 20 ctx = BlueFactory::RequestContext.new(request) 21 ctx.env.should == env 22 end 23 end 24 25 context 'if env includes HTTP_AUTHORIZATION' do 26 describe '#user' do 27 it 'should return a UserInfo with parsed token' do 28 ctx = BlueFactory::RequestContext.new(request) 29 30 ctx.user.should be_a(BlueFactory::UserInfo) 31 ctx.user.token.should == 'qwertyuiop' 32 end 33 end 34 35 describe '#has_auth?' do 36 it 'should return true' do 37 ctx = BlueFactory::RequestContext.new(request) 38 ctx.has_auth?.should == true 39 end 40 end 41 end 42 43 context 'if env does not include HTTP_AUTHORIZATION' do 44 before do 45 env.delete('HTTP_AUTHORIZATION') 46 end 47 48 describe '#user' do 49 it 'should return a UserInfo with no token' do 50 ctx = BlueFactory::RequestContext.new(request) 51 52 ctx.user.should be_a(BlueFactory::UserInfo) 53 ctx.user.token.should be_nil 54 end 55 end 56 57 describe '#has_auth?' do 58 it 'should return false' do 59 ctx = BlueFactory::RequestContext.new(request) 60 ctx.has_auth?.should == false 61 end 62 end 63 end 64end