diff options
author | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2018-01-11 10:58:56 +0100 |
---|---|---|
committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2018-01-11 10:58:56 +0100 |
commit | d32a151714c01bc09484d423dd2136a89760b5ef (patch) | |
tree | 2f532870a05b1d9b77bc10183ff353605ba31682 /qa/spec | |
parent | 1011ca49495eb1f48d43694bfbb2a96951fd45ba (diff) | |
download | gitlab-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.rb | 46 |
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 |