Sha256: 955f774f10a35502c3c65fcdb9e40f3849a1be0db5977e3ae5fb125705de9cb3

Contents?: true

Size: 1.65 KB

Versions: 3

Compression:

Stored size: 1.65 KB

Contents

require 'spec_helper'
require 'rack/test'
include Rack::Test::Methods

describe Crono::Engine do
  let(:app) { Crono::Engine }

  before do
    Crono::CronoJob.destroy_all
    @test_job_id = 'Perform TestJob every 5 seconds'
    @test_job_log = 'All runs ok'
    @test_job = Crono::CronoJob.create!(
      job_id: @test_job_id,
      log: @test_job_log
    )
  end

  after { @test_job.destroy }

  describe '/' do
    it 'should show all jobs' do
      get '/'
      expect(last_response).to be_ok
      expect(last_response.body).to include @test_job_id
    end

    it 'should show a error mark when a job is unhealthy' do
      @test_job.update(healthy: false, last_performed_at: 10.minutes.ago)
      get '/'
      expect(last_response.body).to include 'Error'
    end

    it 'should show a success mark when a job is healthy' do
      @test_job.update(healthy: true, last_performed_at: 10.minutes.ago)
      get '/'
      expect(last_response.body).to include 'Success'
    end

    it 'should show a pending mark when a job is pending' do
      @test_job.update(healthy: nil)
      get '/'
      expect(last_response.body).to include 'Pending'
    end
  end

  describe '/job/:id' do
    it 'should show job log' do
      get "/jobs/#{@test_job.id}"
      expect(last_response).to be_ok
      expect(last_response.body).to include @test_job_id
      expect(last_response.body).to include @test_job_log
    end

    it 'should show a message about the unhealthy job' do
      message = 'An error occurs during the last execution of this job'
      @test_job.update(healthy: false)
      get "/jobs/#{@test_job.id}"
      expect(last_response.body).to include message
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
crono-2.1.0 spec/web_spec.rb
crono-2.0.1 spec/web_spec.rb
crono-2.0.0 spec/web_spec.rb