summaryrefslogtreecommitdiff
path: root/qa/spec
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2018-01-11 10:58:56 +0100
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2018-01-11 10:58:56 +0100
commitd32a151714c01bc09484d423dd2136a89760b5ef (patch)
tree2f532870a05b1d9b77bc10183ff353605ba31682 /qa/spec
parent1011ca49495eb1f48d43694bfbb2a96951fd45ba (diff)
downloadgitlab-ce-d32a151714c01bc09484d423dd2136a89760b5ef.tar.gz
Make it possible to define QA factory product attributes
Diffstat (limited to 'qa/spec')
-rw-r--r--qa/spec/factory/base_spec.rb46
1 files changed, 30 insertions, 16 deletions
diff --git a/qa/spec/factory/base_spec.rb b/qa/spec/factory/base_spec.rb
index a3ba0176819..d7cb9a770b5 100644
--- a/qa/spec/factory/base_spec.rb
+++ b/qa/spec/factory/base_spec.rb
@@ -59,30 +59,44 @@ describe QA::Factory::Base do
it 'defines dependency accessors' do
expect(subject.new).to respond_to :mydep, :mydep=
end
- end
- describe 'building dependencies' do
- let(:dependency) { double('dependency') }
- let(:instance) { spy('instance') }
+ describe 'dependencies fabrication' do
+ let(:dependency) { double('dependency') }
+ let(:instance) { spy('instance') }
- subject do
- Class.new(described_class) do
- dependency Some::MyDependency, as: :mydep
+ subject do
+ Class.new(described_class) do
+ dependency Some::MyDependency, as: :mydep
+ end
end
- end
- before do
- stub_const('Some::MyDependency', dependency)
+ before do
+ stub_const('Some::MyDependency', dependency)
+
+ allow(subject).to receive(:new).and_return(instance)
+ allow(instance).to receive(:mydep).and_return(nil)
+ allow(QA::Factory::Product).to receive(:new)
+ end
- allow(subject).to receive(:new).and_return(instance)
- allow(instance).to receive(:mydep).and_return(nil)
- allow(QA::Factory::Product).to receive(:new)
+ it 'builds all dependencies first' do
+ expect(dependency).to receive(:fabricate!).once
+
+ subject.fabricate!
+ end
end
+ end
- it 'builds all dependencies first' do
- expect(dependency).to receive(:fabricate!).once
+ describe '.product' do
+ subject do
+ Class.new(described_class) do
+ product :token do |factory, page|
+ page.do_something!
+ end
+ end
+ end
- subject.fabricate!
+ it 'appends new product attribute' do
+ expect(subject.attributes).to be_one
end
end
end