diff options
author | James Lopez <james@jameslopez.es> | 2016-11-14 13:52:29 +0300 |
---|---|---|
committer | James Lopez <james@jameslopez.es> | 2016-11-17 10:22:58 +0300 |
commit | 81d0146c4cf0d34b1b81da770483ed864482149c (patch) | |
tree | 5c634b0fff5df0b5fe148a7cbbaee914b47cfcf5 /spec | |
parent | 1744d633eded81103ee4691e6980efb6930dc975 (diff) |
WIP - refactoring URL builder and events presenter into serializers
Diffstat (limited to 'spec')
-rw-r--r-- | spec/serializers/analytics_build_entity_spec.rb | 22 | ||||
-rw-r--r-- | spec/serializers/analytics_build_serializer_spec.rb | 24 |
2 files changed, 46 insertions, 0 deletions
diff --git a/spec/serializers/analytics_build_entity_spec.rb b/spec/serializers/analytics_build_entity_spec.rb new file mode 100644 index 00000000000..33653d5b1e0 --- /dev/null +++ b/spec/serializers/analytics_build_entity_spec.rb @@ -0,0 +1,22 @@ +require 'spec_helper' + +describe AnalyticsBuildEntity do + let(:entity) do + described_class.new(build, request: double) + end + + context 'when build is a regular job' do + let(:build) { create(:ci_build) } + + subject { entity.as_json } + + it 'contains url to build page and retry action' do + expect(subject).to include(:url, :branch_url, :commit_url) + end + + it 'does not contain sensitive information' do + expect(subject).not_to include(/token/) + expect(subject).not_to include(/variables/) + end + end +end diff --git a/spec/serializers/analytics_build_serializer_spec.rb b/spec/serializers/analytics_build_serializer_spec.rb new file mode 100644 index 00000000000..24fd94810d4 --- /dev/null +++ b/spec/serializers/analytics_build_serializer_spec.rb @@ -0,0 +1,24 @@ +require 'spec_helper' + +describe AnalyticsBuildSerializer do + let(:serializer) do + described_class + .new(project: project) + .represent(resource) + end + + let(:json) { serializer.as_json } + let(:project) { create(:project) } + let(:resource) { create(:ci_build) } + + context 'when there is a single object provided' do + it 'it generates payload for single object' do + expect(json).to be_an_instance_of Hash + end + + it 'contains important elements of analyticsBuild' do + expect(json) + .to include(:name, :branch, :short_sha, :date, :total_time, :url, :branch_url, :commit_url, :author) + end + end +end |