Sha256: 25a627a1c285bd4468c6d50aadac1395bfda960cdf8336e88b6c4a1f5ea7d853

Contents?: true

Size: 1.59 KB

Versions: 1

Compression:

Stored size: 1.59 KB

Contents

require 'spec_helper'

describe Jobim::Server, fakefs: true do

  before(:each) do
    Dir.mkdir('/web_app')
    Dir.mkdir('/web_app/trail_test')
    Dir.mkdir('/web_app/index_test')

    File.open('/web_app/index_test/index.html', 'w') { |f| f.write(index) }
    File.open('/web_app/trail_test/foo.html', 'w')   { |f| f.write(index) }
    File.open('/web_app/trail_test/foo', 'w') { |f| f.write(index) }
  end

  let(:index)    { "<!DOCTYPE html>\n<html />\n" }
  let(:settings) { Jobim::CLI.new.settings }

  describe 'app', rack_test: true do
    before(:each) { $stdout.stub(:write) }

    let(:server) do
      settings.dir = '/web_app'
      Jobim::Server.new(settings)
    end

    let(:app) { server.app }

    it 'returns index.html from dirs when it exists' do
      get '/index_test/'
      expect(last_response).to be_ok
      expect(last_response.body).to eql index
    end

    it 'treats bare urls as directories when they are' do
      get '/trail_test'
      expect(last_response).to be_ok
      expect(last_response.body).to include '/trail_test/foo.html'
    end

    it 'treats bare urls as files when they are' do
      get '/trail_test/foo'
      expect(last_response).to be_ok
      expect(last_response.body).to eql index
    end
  end

  describe 'server' do
    let(:server) do
      settings.daemonize = true
      Jobim::Server.new(settings)
    end

    it 'sets server.pid_file if :daemonize is true' do
      expect(server.server.pid_file).to eql('jobim.pid')
    end

    it 'sets server.log_file if :daemonize is true' do
      expect(server.server.log_file).to eql('jobim.log')
    end
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
jobim-0.6.0 spec/jobim_server_spec.rb