summaryrefslogtreecommitdiff
path: root/qa/spec/page
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2017-12-22 13:01:12 +0100
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2017-12-22 13:01:12 +0100
commit856917520de2b1b254400b4501b4b98991280736 (patch)
tree991706d7ea813730026f74f469ed2be26eebad3e /qa/spec/page
parent208411ee6242931670bdef5a8c92d34dee18498e (diff)
downloadgitlab-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.rb35
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