specs for serializers.

This commit is contained in:
Shinya Maeda 2017-10-31 01:03:58 +09:00
parent 709b8b6186
commit c43a82cdfa
2 changed files with 40 additions and 19 deletions

View File

@ -1,22 +1,38 @@
require 'spec_helper'
describe ClusterEntity do
set(:cluster) { create(:gcp_cluster, :errored) }
let(:request) { double('request') }
let(:entity) do
described_class.new(cluster)
end
describe '#as_json' do
subject { entity.as_json }
subject { described_class.new(cluster).as_json }
it 'contains status' do
expect(subject[:status]).to eq(:errored)
context 'when provider type is gcp' do
let(:cluster) { create(:cluster, provider_type: :gcp, provider_gcp: provider) }
context 'when status is creating' do
let(:provider) { create(:provider_gcp, :creating) }
it 'has corresponded data' do
expect(subject[:status]).to eq(:creating)
expect(subject[:status_reason]).to be_nil
end
end
context 'when status is errored' do
let(:provider) { create(:provider_gcp, :errored) }
it 'has corresponded data' do
expect(subject[:status]).to eq(:errored)
expect(subject[:status_reason]).to eq(provider.status_reason)
end
end
end
it 'contains status reason' do
expect(subject[:status_reason]).to eq('general error')
context 'when provider type is user' do
let(:cluster) { create(:cluster, provider_type: :user) }
it 'has nil' do
expect(subject[:status]).to be_nil
expect(subject[:status_reason]).to be_nil
end
end
end
end

View File

@ -1,15 +1,20 @@
require 'spec_helper'
describe ClusterSerializer do
let(:serializer) do
described_class.new
end
describe '#represent_status' do
subject { serializer.represent_status(resource) }
subject { described_class.new.represent_status(cluster) }
context 'when represents only status' do
let(:resource) { create(:gcp_cluster, :errored) }
context 'when provider type is gcp' do
let(:cluster) { create(:cluster, provider_type: :gcp, provider_gcp: provider) }
let(:provider) { create(:provider_gcp, :errored) }
it 'serializes only status' do
expect(subject.keys).to contain_exactly(:status, :status_reason)
end
end
context 'when provider type is user' do
let(:cluster) { create(:cluster, provider_type: :user) }
it 'serializes only status' do
expect(subject.keys).to contain_exactly(:status, :status_reason)