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 |
