summaryrefslogtreecommitdiff
path: root/spec/presenters
diff options
context:
space:
mode:
Diffstat (limited to 'spec/presenters')
-rw-r--r--spec/presenters/build_presenter_spec.rb35
-rw-r--r--spec/presenters/variable_presenter_spec.rb23
2 files changed, 58 insertions, 0 deletions
diff --git a/spec/presenters/build_presenter_spec.rb b/spec/presenters/build_presenter_spec.rb
new file mode 100644
index 00000000000..fa7b0567622
--- /dev/null
+++ b/spec/presenters/build_presenter_spec.rb
@@ -0,0 +1,35 @@
+require 'spec_helper'
+
+describe BuildPresenter do
+ let(:build) { create(:ci_build) }
+ subject do
+ described_class.new(build).with_subject(build)
+ end
+
+ describe '#initialize' do
+ it 'takes a build and optional params' do
+ expect { subject }.
+ not_to raise_error
+ end
+
+ it 'exposes build' do
+ expect(subject.build).to eq(build)
+ end
+
+ it 'forwards missing methods to build' do
+ expect(subject.ref).to eq('master')
+ end
+ end
+
+ describe '#erased_by_user?' do
+ it 'takes a build and optional params' do
+ expect(subject).not_to be_erased_by_user
+ end
+ end
+
+ describe 'quack like a Ci::Build' do
+ it 'takes a build and optional params' do
+ expect(described_class.ancestors).to include(Ci::Build)
+ end
+ end
+end
diff --git a/spec/presenters/variable_presenter_spec.rb b/spec/presenters/variable_presenter_spec.rb
new file mode 100644
index 00000000000..f09a0c922ae
--- /dev/null
+++ b/spec/presenters/variable_presenter_spec.rb
@@ -0,0 +1,23 @@
+require 'spec_helper'
+
+describe VariablePresenter do
+ let(:variable) { double(:variable, foo: 'bar') }
+ subject do
+ described_class.new.with_subject(variable)
+ end
+
+ describe '#initialize' do
+ it 'takes a variable and optional params' do
+ expect { subject }.
+ not_to raise_error
+ end
+
+ it 'exposes variable' do
+ expect(subject.variable).to eq(variable)
+ end
+
+ it 'does not forward missing methods to variable' do
+ expect { subject.foo }.to raise_error(NoMethodError)
+ end
+ end
+end