Commit 9be519c1 authored by Matija Čupić's avatar Matija Čupić

Add VariableSerializer for Ci::Variable

parent b48d8c8a
...@@ -7,7 +7,7 @@ class Projects::VariablesController < Projects::ApplicationController ...@@ -7,7 +7,7 @@ class Projects::VariablesController < Projects::ApplicationController
variables = @project.variables variables = @project.variables
.map { |variable| variable.present(current_user: current_user) } .map { |variable| variable.present(current_user: current_user) }
render status: :ok, json: { variables: variables } render status: :ok, json: { variables: VariableSerializer.new.represent(variables) }
end end
end end
end end
...@@ -19,7 +19,7 @@ class Projects::VariablesController < Projects::ApplicationController ...@@ -19,7 +19,7 @@ class Projects::VariablesController < Projects::ApplicationController
variables = @project.variables variables = @project.variables
.map { |variable| variable.present(current_user: current_user) } .map { |variable| variable.present(current_user: current_user) }
return render status: :ok, json: { variables: variables } return render status: :ok, json: { variables: VariableSerializer.new.represent(variables) }
end end
render status: :bad_request, json: @project.errors.full_messages render status: :bad_request, json: @project.errors.full_messages
......
class VariableEntity < Grape::Entity
expose :id
expose :key
expose :value
expose :protected?, as: :protected
end
class VariableSerializer < BaseSerializer
entity VariableEntity
end
...@@ -24,7 +24,7 @@ describe Projects::VariablesController do ...@@ -24,7 +24,7 @@ describe Projects::VariablesController do
it 'renders the ci_variable as json' do it 'renders the ci_variable as json' do
subject subject
expect(response.body).to include(variable.to_json) expect(response).to match_response_schema('variable')
end end
end end
...@@ -91,7 +91,7 @@ describe Projects::VariablesController do ...@@ -91,7 +91,7 @@ describe Projects::VariablesController do
it 'has all variables in response' do it 'has all variables in response' do
subject subject
expect(response.body).to include(project.variables.reload.to_json) expect(response).to match_response_schema('variable')
end end
end end
...@@ -120,7 +120,7 @@ describe Projects::VariablesController do ...@@ -120,7 +120,7 @@ describe Projects::VariablesController do
it 'has all variables in response' do it 'has all variables in response' do
subject subject
expect(response.body).to include(project.variables.reload.to_json) expect(json_response['variables'].count).to eq(0)
end end
end end
end end
......
{
"id": "string",
"key": "string",
"value": "string",
"protected": "boolean"
}
require 'spec_helper'
describe VariableEntity do
let(:variable) { create(:ci_variable) }
let(:entity) { described_class.new(variable) }
describe '#as_json' do
subject { entity.as_json }
it 'contains required fields' do
expect(subject).to include(:id, :key, :value, :protected)
end
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment