diff options
| author | Zog | 2018-02-13 09:06:25 +0100 | 
|---|---|---|
| committer | Zog | 2018-02-13 09:06:59 +0100 | 
| commit | 49c4c822d5e7f526ad7be9c0aa21c201653f24ea (patch) | |
| tree | 0b620b21c0e7b7759955c6dfa6cf6ccf255fad3d | |
| parent | 6b9dd49ee49bcd43626ed507549fa0b8a71cc366 (diff) | |
| download | chouette-core-49c4c822d5e7f526ad7be9c0aa21c201653f24ea.tar.bz2 | |
Refs #5707; Add specs
| -rw-r--r-- | app/controllers/statuses_controller.rb | 6 | ||||
| -rw-r--r-- | spec/controllers/statuses_controller_spec.rb | 50 | 
2 files changed, 53 insertions, 3 deletions
| diff --git a/app/controllers/statuses_controller.rb b/app/controllers/statuses_controller.rb index e3a236e81..e38a92982 100644 --- a/app/controllers/statuses_controller.rb +++ b/app/controllers/statuses_controller.rb @@ -4,17 +4,17 @@ class StatusesController < ChouetteController    def index      status = { -      status: global_status,        referentials_blocked: Referential.blocked.count,        imports_blocked: Import.blocked.count,        compliance_check_sets_blocked: ComplianceCheckSet.blocked.count      } +    status[:status] = global_status status      render json: status.to_json    end    private -  def global_status -    blocked_items = Referential.blocked.exists? || Import.blocked.exists? || ComplianceCheckSet.blocked.exists? ? 'ko' : 'ok' +  def global_status status +    status.values.all?(&:zero?) ? 'ok' : 'ko'    end  end diff --git a/spec/controllers/statuses_controller_spec.rb b/spec/controllers/statuses_controller_spec.rb new file mode 100644 index 000000000..8a6db8e28 --- /dev/null +++ b/spec/controllers/statuses_controller_spec.rb @@ -0,0 +1,50 @@ +RSpec.describe StatusesController, :type => :controller do + +  describe "GET index" do +    login_user +    render_views + + +    let(:request){ get :index} +    let(:parsed_response){ JSON.parse response.body } +    it "should be ok" do +      request +      expect(response).to have_http_status 200 +      expect(parsed_response["status"]).to eq "ok" +    end +    context "without blocked object" do +      before do +        create :referential +        create :import +        create :compliance_check_set +        request +      end + +      it "should be ok" do +        expect(response).to have_http_status 200 +        expect(parsed_response["status"]).to eq "ok" +        expect(parsed_response["referentials_blocked"]).to eq 0 +        expect(parsed_response["imports_blocked"]).to eq 0 +        expect(parsed_response["imports_blocked"]).to eq 0 +      end +    end + +    context "with a blocked object" do +      before do +        create :referential, created_at: 5.hours.ago, ready: false +        create :import +        create :compliance_check_set +        request +      end + +      it "should be ko" do +        expect(Referential.blocked.count).to eq 1 +        expect(response).to have_http_status 200 +        expect(parsed_response["status"]).to eq "ko" +        expect(parsed_response["referentials_blocked"]).to eq 1 +        expect(parsed_response["imports_blocked"]).to eq 0 +        expect(parsed_response["imports_blocked"]).to eq 0 +      end +    end +  end +end | 
