From 7332a481b7696b498f1721888581f7d88fab19df Mon Sep 17 00:00:00 2001 From: rezerbit Date: Wed, 8 Nov 2017 12:48:28 +0500 Subject: [PATCH] feature: open new browser for every specs https://jira.railsc.ru/browse/AT-85 --- .../company_site/eti/product_creation_spec.rb | 64 +++++----- .../company_site/eti/product_statuses_spec.rb | 82 ++++++------- .../spec/company_site/minieti_spec.rb | 112 +++++++++--------- 3 files changed, 129 insertions(+), 129 deletions(-) diff --git a/lib/apress/selenium_eti/spec/company_site/eti/product_creation_spec.rb b/lib/apress/selenium_eti/spec/company_site/eti/product_creation_spec.rb index 74970bf..791c129 100644 --- a/lib/apress/selenium_eti/spec/company_site/eti/product_creation_spec.rb +++ b/lib/apress/selenium_eti/spec/company_site/eti/product_creation_spec.rb @@ -1,63 +1,63 @@ require 'spec_helper' describe 'ЕТИ' do - cs_eti_page = CompanySite::EtiPage.new - cs_main_page = CompanySite::MainPage.new - before(:all) do + @cs_eti_page = CompanySite::EtiPage.new + @cs_main_page = CompanySite::MainPage.new + log_in_as(:user) navigate_to_eti - cs_main_page.close_banner + @cs_main_page.close_banner end describe 'Создание товара' do context 'когда товар без рубрики' do before(:all) do @name = Faker::Number.number(5) - cs_eti_page.add_product - cs_eti_page.set_name(@name) - cs_eti_page.wait_until { cs_eti_page.save_status == 'Все изменения сохранены' } - cs_eti_page.refresh - cs_eti_page.wait_until { cs_eti_page.save_status == 'Все изменения сохранены' } - cs_eti_page.search_product(@name) + @cs_eti_page.add_product + @cs_eti_page.set_name(@name) + @cs_eti_page.wait_until { @cs_eti_page.save_status == 'Все изменения сохранены' } + @cs_eti_page.refresh + @cs_eti_page.wait_until { @cs_eti_page.save_status == 'Все изменения сохранены' } + @cs_eti_page.search_product(@name) end it 'введенное имя отображается' do - expect(cs_eti_page.product_name?(@name)).to be true + expect(@cs_eti_page.product_name?(@name)).to be true end it 'товар не опубликован' do - expect(cs_eti_page.product_unpublished?(@name)).to be true + expect(@cs_eti_page.product_unpublished?(@name)).to be true end - after(:all) { cs_eti_page.delete_product(@name) } + after(:all) { @cs_eti_page.delete_product(@name) } end context 'когда товар с рубрикой' do before(:all) do @name = Faker::Number.number(5) - cs_eti_page.add_product - cs_eti_page.set_rubric(CONFIG['eti']['rubric']) - cs_eti_page.set_name(@name) - cs_eti_page.wait_until { cs_eti_page.first_product_status_element.attribute('title') == 'Опубликованные' } - cs_eti_page.refresh - cs_eti_page.wait_until { cs_eti_page.save_status == 'Все изменения сохранены' } - cs_eti_page.search_product(@name) + @cs_eti_page.add_product + @cs_eti_page.set_rubric(CONFIG['eti']['rubric']) + @cs_eti_page.set_name(@name) + @cs_eti_page.wait_until { @cs_eti_page.first_product_status_element.attribute('title') == 'Опубликованные' } + @cs_eti_page.refresh + @cs_eti_page.wait_until { @cs_eti_page.save_status == 'Все изменения сохранены' } + @cs_eti_page.search_product(@name) end it 'введенное имя отображается' do - expect(cs_eti_page.product_name?(@name)).to be true + expect(@cs_eti_page.product_name?(@name)).to be true end it 'рубрика привязана' do - expect(cs_eti_page.product_rubric_tree(@name)).to include CONFIG['eti']['rubric'] + expect(@cs_eti_page.product_rubric_tree(@name)).to include CONFIG['eti']['rubric'] end it 'товар опубликован' do - expect(cs_eti_page.product_published?(@name)).to be true + expect(@cs_eti_page.product_published?(@name)).to be true end - after(:all) { cs_eti_page.delete_product(@name) } + after(:all) { @cs_eti_page.delete_product(@name) } end context 'когда копируем товар' do @@ -77,23 +77,23 @@ wholesale_price: {wholesale_price: Faker::Number.number(2), wholesale_number: Faker::Number.number(2)} } - cs_eti_page.create_and_set_product_fields(@product) + @cs_eti_page.create_and_set_product_fields(@product) - cs_eti_page.search_product(@product[:name]) - cs_eti_page.copy_product(@product[:name]) + @cs_eti_page.search_product(@product[:name]) + @cs_eti_page.copy_product(@product[:name]) - cs_eti_page.refresh - cs_eti_page.search_product(@product[:name]) + @cs_eti_page.refresh + @cs_eti_page.search_product(@product[:name]) end # TODO: поправить удаление # after(:all) { 2.times { cs_eti_page.delete_product(@product[:name])} } it 'отобразится 2 идентичных товара' do - @first_product = cs_eti_page.product_rows_elements[0].text + @first_product = @cs_eti_page.product_rows_elements[0].text - expect(cs_eti_page.product_rows_elements.length).to eq 2 - expect(cs_eti_page.product_rows_elements[1].text).to eq @first_product + expect(@cs_eti_page.product_rows_elements.length).to eq 2 + expect(@cs_eti_page.product_rows_elements[1].text).to eq @first_product end end end diff --git a/lib/apress/selenium_eti/spec/company_site/eti/product_statuses_spec.rb b/lib/apress/selenium_eti/spec/company_site/eti/product_statuses_spec.rb index 83f0d8e..6484c71 100644 --- a/lib/apress/selenium_eti/spec/company_site/eti/product_statuses_spec.rb +++ b/lib/apress/selenium_eti/spec/company_site/eti/product_statuses_spec.rb @@ -1,15 +1,15 @@ require 'spec_helper' describe 'ЕТИ. Редактирование товара. Статусы' do - cs_eti_page = CompanySite::EtiPage.new - cs_main_page = CompanySite::MainPage.new - admin_menu = Admin::Menu.new - admin_products_page = Admin::ProductsPage.new - before(:all) do + @cs_eti_page = CompanySite::EtiPage.new + @cs_main_page = CompanySite::MainPage.new + @admin_menu = Admin::Menu.new + @admin_products_page = Admin::ProductsPage.new + log_in_as(:user) navigate_to_eti - cs_main_page.close_banner + @cs_main_page.close_banner @product_1 = { name: Faker::Name.title, @@ -31,85 +31,85 @@ rubric: CONFIG['eti']['rubric'] } - cs_eti_page.create_and_set_product_fields(@product_1) - cs_eti_page.create_and_set_product_fields(@product_2) - cs_eti_page.create_and_set_product_fields(@product_3) - cs_eti_page.create_and_set_product_fields(@product_4) + @cs_eti_page.create_and_set_product_fields(@product_1) + @cs_eti_page.create_and_set_product_fields(@product_2) + @cs_eti_page.create_and_set_product_fields(@product_3) + @cs_eti_page.create_and_set_product_fields(@product_4) navigate_to_admin_page - admin_menu.products - admin_products_page.accept_product(@product_1[:name]) - admin_products_page.accept_product(@product_2[:name]) - admin_products_page.reject_product(@product_3[:name]) - admin_products_page.reject_product(@product_4[:name]) + @admin_menu.products + @admin_products_page.accept_product(@product_1[:name]) + @admin_products_page.accept_product(@product_2[:name]) + @admin_products_page.reject_product(@product_3[:name]) + @admin_products_page.reject_product(@product_4[:name]) navigate_to_eti log_in_as(:user) navigate_to_eti - cs_eti_page.change_status_to_archived(@product_2[:name]) - cs_eti_page.change_status_to_archived(@product_4[:name]) + @cs_eti_page.change_status_to_archived(@product_2[:name]) + @cs_eti_page.change_status_to_archived(@product_4[:name]) end after(:all) do navigate_to_eti - cs_eti_page.delete_product(@product_1[:name]) - cs_eti_page.delete_product(@product_2[:name]) - cs_eti_page.delete_product(@product_3[:name]) - cs_eti_page.delete_product(@product_4[:name]) + @cs_eti_page.delete_product(@product_1[:name]) + @cs_eti_page.delete_product(@product_2[:name]) + @cs_eti_page.delete_product(@product_3[:name]) + @cs_eti_page.delete_product(@product_4[:name]) end context 'когда товары подтверждены' do before(:all) { navigate_to_eti } context 'когда исходный статус "Опубликованный"' do - before(:all) { cs_eti_page.search_product(@product_1[:name]) } + before(:all) { @cs_eti_page.search_product(@product_1[:name]) } context 'когда меняем статус на архивный' do before(:all) do - cs_eti_page.change_status_to_archived(@product_1[:name]) + @cs_eti_page.change_status_to_archived(@product_1[:name]) Page.browser.navigate.refresh end it 'статус изменится на архивный' do - expect(cs_eti_page.product_archived?(@product_1[:name])).to be_truthy + expect(@cs_eti_page.product_archived?(@product_1[:name])).to be_truthy end end context 'когда меняем статус с архивного на опубликованный' do before(:all) do - cs_eti_page.change_status_to_published(@product_1[:name]) + @cs_eti_page.change_status_to_published(@product_1[:name]) Page.browser.navigate.refresh end it 'статус изменится на опубликованный' do - expect(cs_eti_page.product_published?(@product_1[:name])).to be_truthy + expect(@cs_eti_page.product_published?(@product_1[:name])).to be_truthy end end end context 'когда исходный статус "Архивный"' do - before(:all) { cs_eti_page.search_product(@product_2[:name]) } + before(:all) { @cs_eti_page.search_product(@product_2[:name]) } context 'когда меняем статус на опубликованный' do before(:all) do - cs_eti_page.change_status_to_published(@product_2[:name]) + @cs_eti_page.change_status_to_published(@product_2[:name]) Page.browser.navigate.refresh end it 'статус изменится на опубликованный' do - expect(cs_eti_page.product_published?(@product_2[:name])).to be_truthy + expect(@cs_eti_page.product_published?(@product_2[:name])).to be_truthy end end context 'когда меняем статус с опубликованного на архивный' do before(:all) do - cs_eti_page.change_status_to_archived(@product_2[:name]) + @cs_eti_page.change_status_to_archived(@product_2[:name]) Page.browser.navigate.refresh end it 'статус изменится на архивный' do - expect(cs_eti_page.product_archived?(@product_2[:name])).to be_truthy + expect(@cs_eti_page.product_archived?(@product_2[:name])).to be_truthy end end end @@ -119,53 +119,53 @@ before(:all) { navigate_to_eti } context 'когда исходный статус "Отклоненный"' do - before(:all) { cs_eti_page.search_product(@product_3[:name]) } + before(:all) { @cs_eti_page.search_product(@product_3[:name]) } context 'когда меняем статус на архивный' do before(:all) do - cs_eti_page.change_status_to_archived(@product_3[:name]) + @cs_eti_page.change_status_to_archived(@product_3[:name]) Page.browser.navigate.refresh end it 'статус изменится на архивный' do - expect(cs_eti_page.product_archived?(@product_3[:name])).to be_truthy + expect(@cs_eti_page.product_archived?(@product_3[:name])).to be_truthy end end context 'когда меняем статус с архивного на опубликованный' do before(:all) do - cs_eti_page.change_status_to_published(@product_3[:name]) + @cs_eti_page.change_status_to_published(@product_3[:name]) Page.browser.navigate.refresh end it 'статус изменится на отклоненный' do - expect(cs_eti_page.product_declined?(@product_3[:name])).to be_truthy + expect(@cs_eti_page.product_declined?(@product_3[:name])).to be_truthy end end end context 'когда исходный статус "Архивный"' do - before(:all) { cs_eti_page.search_product(@product_4[:name]) } + before(:all) { @cs_eti_page.search_product(@product_4[:name]) } context 'когда меняем статус на опубликованный' do before(:all) do - cs_eti_page.change_status_to_published(@product_4[:name]) + @cs_eti_page.change_status_to_published(@product_4[:name]) Page.browser.navigate.refresh end it 'статус изменится на отклоненный' do - expect(cs_eti_page.product_declined?(@product_4[:name])).to be_truthy + expect(@cs_eti_page.product_declined?(@product_4[:name])).to be_truthy end end context 'когда меняем статус с отклоненного на архивный' do before(:all) do - cs_eti_page.change_status_to_archived(@product_4[:name]) + @cs_eti_page.change_status_to_archived(@product_4[:name]) Page.browser.navigate.refresh end it 'статус изменится на архивный' do - expect(cs_eti_page.product_archived?(@product_4[:name])).to be_truthy + expect(@cs_eti_page.product_archived?(@product_4[:name])).to be_truthy end end end diff --git a/lib/apress/selenium_eti/spec/company_site/minieti_spec.rb b/lib/apress/selenium_eti/spec/company_site/minieti_spec.rb index 6519945..b314e2a 100644 --- a/lib/apress/selenium_eti/spec/company_site/minieti_spec.rb +++ b/lib/apress/selenium_eti/spec/company_site/minieti_spec.rb @@ -1,124 +1,124 @@ require 'spec_helper' describe 'Мини-ЕТИ' do - cs_eti_page = CompanySite::EtiPage.new - cs_main_page = CompanySite::MainPage.new - cs_mini_eti_page = CompanySite::MiniEtiPage.new - before(:all) do + @cs_eti_page = CompanySite::EtiPage.new + @cs_main_page = CompanySite::MainPage.new + @cs_mini_eti_page = CompanySite::MiniEtiPage.new + log_in_as(:user) navigate_to_company_catalog - cs_main_page.close_banner + @cs_main_page.close_banner end describe 'Поля' do - before(:all) { cs_eti_page.add_product } + before(:all) { @cs_eti_page.add_product } context 'когда заполняем имя' do before(:all) do @name = Faker::Number.number(5) - cs_eti_page.set_name(@name) + @cs_eti_page.set_name(@name) end it 'введенное имя отображается' do - expect(cs_eti_page.product_name?(@name)).to be true + expect(@cs_eti_page.product_name?(@name)).to be true end context 'когда добавляем картинку' do before(:all) do - @thermometer_value = cs_eti_page.thermometer_value - cs_eti_page.set_image(IMAGE_PATH) + @thermometer_value = @cs_eti_page.thermometer_value + @cs_eti_page.set_image(IMAGE_PATH) end it 'картинка появляется' do - expect(cs_eti_page.image_loaded?).to be true + expect(@cs_eti_page.image_loaded?).to be true end it 'увеличивается градус на термометре' do - cs_eti_page.wait_saving - expect(cs_eti_page.thermometer_value).to be @thermometer_value + CONFIG['battery_percents']['image'] + @cs_eti_page.wait_saving + expect(@cs_eti_page.thermometer_value).to be @thermometer_value + CONFIG['battery_percents']['image'] end - after(:all) { cs_eti_page.close_image_uploader } + after(:all) { @cs_eti_page.close_image_uploader } end end context 'когда заполняем цену' do before(:all) do - @thermometer_value = cs_eti_page.thermometer_value + @thermometer_value = @cs_eti_page.thermometer_value @price = Faker::Number.number(3) - cs_eti_page.set_price(@price) + @cs_eti_page.set_price(@price) end it 'введенная цена отображается' do - expect(cs_eti_page.price_value).to include @price + expect(@cs_eti_page.price_value).to include @price end it 'увеличивается градус на термометре' do - expect(cs_eti_page.thermometer_value.to_i).to be @thermometer_value + CONFIG['battery_percents']['price'] + expect(@cs_eti_page.thermometer_value.to_i).to be @thermometer_value + CONFIG['battery_percents']['price'] end end context 'когда заполняем цену от и до' do before(:all) do - cs_eti_page.add_product + @cs_eti_page.add_product - @thermometer_value = cs_eti_page.thermometer_value + @thermometer_value = @cs_eti_page.thermometer_value @price_from_to = {from: Faker::Number.number(2), to: Faker::Number.number(3)} - cs_eti_page.set_price_from_to(@price_from_to) + @cs_eti_page.set_price_from_to(@price_from_to) end it 'введенная цена отображается' do - expect(cs_eti_page.price_value).to include @price_from_to[:from], @price_from_to[:to] + expect(@cs_eti_page.price_value).to include @price_from_to[:from], @price_from_to[:to] end end context 'когда заполняем цену со скидкой' do before(:all) do - cs_eti_page.add_product + @cs_eti_page.add_product - @thermometer_value = cs_eti_page.thermometer_value + @thermometer_value = @cs_eti_page.thermometer_value @discount_price = {previous: Faker::Number.number(3), discount: Faker::Number.number(2)} - cs_eti_page.set_discount_price(@discount_price) + @cs_eti_page.set_discount_price(@discount_price) end it 'введенные цены и дата окончания скидки отображаются' do - expect(cs_eti_page.discount_price_value).to include @discount_price[:discount] - expect(cs_eti_page.previous_price_value).to include @discount_price[:previous] - expect(cs_eti_page.discount_expires_at_date_value).to include Time.now.strftime("%d.%m.%Y") + expect(@cs_eti_page.discount_price_value).to include @discount_price[:discount] + expect(@cs_eti_page.previous_price_value).to include @discount_price[:previous] + expect(@cs_eti_page.discount_expires_at_date_value).to include Time.now.strftime("%d.%m.%Y") end end context 'когда заполняем наличие' do - before { cs_eti_page.set_exists(CONFIG['eti']['exists']['in stock']) } + before { @cs_eti_page.set_exists(CONFIG['eti']['exists']['in stock']) } it 'введенная цена отображается' do - expect(cs_eti_page.exists_value).to include 'в наличии' + expect(@cs_eti_page.exists_value).to include 'в наличии' end end context 'когда заполняем рубрику' do - before(:all) { cs_eti_page.set_rubric(CONFIG['eti']['rubric']) } + before(:all) { @cs_eti_page.set_rubric(CONFIG['eti']['rubric']) } it 'привязывается рубрика' do - expect(cs_eti_page.rubric_cell).to include CONFIG['eti']['rubric'] + expect(@cs_eti_page.rubric_cell).to include CONFIG['eti']['rubric'] end context 'когда отменяем действие' do - before(:all) { cs_eti_page.operation_undo } + before(:all) { @cs_eti_page.operation_undo } it 'рубрика исчезает' do - expect(cs_eti_page.rubric_cell).to include 'Указать рубрику' + expect(@cs_eti_page.rubric_cell).to include 'Указать рубрику' end context 'когда повторяем отмененное действие' do - before(:all) { cs_eti_page.operation_redo } + before(:all) { @cs_eti_page.operation_redo } it 'привязывается рубрика' do - expect(cs_eti_page.rubric_cell).to include CONFIG['eti']['rubric'] + expect(@cs_eti_page.rubric_cell).to include CONFIG['eti']['rubric'] end end end @@ -127,21 +127,21 @@ describe 'Пагинатор' do context 'когда переходим на вторую страницу' do - before(:all) { cs_eti_page.page_2 } + before(:all) { @cs_eti_page.page_2 } it 'открывается вторая страница' do expect(no_page_errors?).to be true - expect(cs_eti_page.page_2_not_exists?).to be true - expect(cs_eti_page.page_1?).to be true + expect(@cs_eti_page.page_2_not_exists?).to be true + expect(@cs_eti_page.page_1?).to be true end context 'когда возвращаемся на первую страницу' do - before(:all) { cs_eti_page.page_1 } + before(:all) { @cs_eti_page.page_1 } it 'открывается первая страница' do expect(no_page_errors?).to be true - expect(cs_eti_page.page_1_not_exists?).to be true - expect(cs_eti_page.page_2?).to be true + expect(@cs_eti_page.page_1_not_exists?).to be true + expect(@cs_eti_page.page_2?).to be true end end end @@ -149,42 +149,42 @@ describe 'Удаление товара' do before do - cs_eti_page.add_product + @cs_eti_page.add_product @name = Faker::Number.number(5) - cs_eti_page.set_name(@name) - cs_mini_eti_page.delete_first_product + @cs_eti_page.set_name(@name) + @cs_mini_eti_page.delete_first_product end it 'товар удаляется' do - expect(cs_eti_page.product_name?(@name)).to be false + expect(@cs_eti_page.product_name?(@name)).to be false end end describe 'Копирование товара' do before do - cs_eti_page.add_product + @cs_eti_page.add_product @name = Faker::Pokemon.name - cs_eti_page.set_name(@name) - cs_eti_page.set_price(@price = Faker::Number.number(5)) - cs_eti_page.wait_saving + @cs_eti_page.set_name(@name) + @cs_eti_page.set_price(@price = Faker::Number.number(5)) + @cs_eti_page.wait_saving - cs_mini_eti_page.copy_product - cs_eti_page.wait_saving + @cs_mini_eti_page.copy_product + @cs_eti_page.wait_saving end it 'товар копируется' do - expect(cs_eti_page.price_values_elements[0].text).to eq cs_eti_page.price_values_elements[1].text + expect(@cs_eti_page.price_values_elements[0].text).to eq @cs_eti_page.price_values_elements[1].text end end context 'когда выбираем количество товаров на странице' do before do - cs_eti_page.choose_amount_of_products_on_page = '50' - cs_eti_page.wait_saving + @cs_eti_page.choose_amount_of_products_on_page = '50' + @cs_eti_page.wait_saving end it 'количество товаров на странице равно выбранному значению' do - expect((cs_eti_page.product_elements.size <= 50) && (cs_eti_page.product_elements.size > 20)) + expect((@cs_eti_page.product_elements.size <= 50) && (@cs_eti_page.product_elements.size > 20)) end end end