summaryrefslogtreecommitdiff
path: root/spec/serializers/pipeline_serializer_spec.rb
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-11-10 21:16:54 +0100
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-11-10 21:18:39 +0100
commitb0c6037a3af1724ffb18de7442495576e90af396 (patch)
tree10c2fc1bd39f282897a1c48950c8baca69f68022 /spec/serializers/pipeline_serializer_spec.rb
parentf41c3c02b1c20f7b13013ab135f8d2ff056aea05 (diff)
downloadgitlab-ce-b0c6037a3af1724ffb18de7442495576e90af396.tar.gz
Refine incremental pipeline serializer
Diffstat (limited to 'spec/serializers/pipeline_serializer_spec.rb')
-rw-r--r--spec/serializers/pipeline_serializer_spec.rb36
1 files changed, 36 insertions, 0 deletions
diff --git a/spec/serializers/pipeline_serializer_spec.rb b/spec/serializers/pipeline_serializer_spec.rb
new file mode 100644
index 00000000000..c4eba2f2537
--- /dev/null
+++ b/spec/serializers/pipeline_serializer_spec.rb
@@ -0,0 +1,36 @@
+require 'spec_helper'
+
+describe PipelineSerializer do
+ let(:serializer) do
+ described_class.new(user: user)
+ end
+
+ let(:pipelines) do
+ create_list(:ci_pipeline, 2)
+ end
+
+ let(:user) { create(:user) }
+
+ context 'when using incremental serializer' do
+ let(:json) do
+ serializer.incremental(pipelines, time).as_json
+ end
+
+ context 'when pipeline has been already updated' do
+ let(:time) { Time.now }
+
+ it 'exposes only minimal information' do
+ expect(json.first.keys).to contain_exactly(:id, :url)
+ expect(json.second.keys).to contain_exactly(:id, :url)
+ end
+ end
+
+ context 'when pipeline updated in the meantime' do
+ let(:time) { Time.now - 10.minutes }
+
+ it 'exposes new data incrementally' do
+ expect(json.first.keys.count).to eq 9
+ end
+ end
+ end
+end