diff options
author | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2017-12-22 13:01:12 +0100 |
---|---|---|
committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2017-12-22 13:01:12 +0100 |
commit | 856917520de2b1b254400b4501b4b98991280736 (patch) | |
tree | 991706d7ea813730026f74f469ed2be26eebad3e /qa/spec/page | |
parent | 208411ee6242931670bdef5a8c92d34dee18498e (diff) | |
download | gitlab-ce-856917520de2b1b254400b4501b4b98991280736.tar.gz |
Add domain specific language to define QA page elements
Diffstat (limited to 'qa/spec/page')
-rw-r--r-- | qa/spec/page/base_spec.rb | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/qa/spec/page/base_spec.rb b/qa/spec/page/base_spec.rb new file mode 100644 index 00000000000..31ff9e258a1 --- /dev/null +++ b/qa/spec/page/base_spec.rb @@ -0,0 +1,35 @@ +describe QA::Page::Base do + describe 'page helpers' do + it 'exposes helpful page helpers' do + expect(subject).to respond_to :refresh, :wait, :scroll_to + end + end + + describe 'DSL for defining view partials', '.view' do + subject do + Class.new(described_class) do + view 'path/to/some/view.html.haml' do + element :something, 'string pattern' + element :something_else, /regexp pattern/ + end + + view 'path/to/some/_partial.html.haml' do + element :something, 'string pattern' + end + end + end + + it 'makes it possible to define page views' do + expect(subject.views.size).to eq 2 + expect(subject.views).to all(be_an_instance_of QA::Page::View) + end + + it 'populates views objects with data about elements' do + subject.views.first.elements.tap do |elements| + expect(elements.size).to eq 2 + expect(elements).to all(be_an_instance_of QA::Page::Element) + expect(elements.map(&:name)).to eq [:something, :something_else] + end + end + end +end |