Skip to content

Commit

Permalink
Merge pull request #6 from imhouston/feature/BPC-11225
Browse files Browse the repository at this point in the history
feature(eti): product status tests
  • Loading branch information
rezerbit authored Oct 23, 2017
2 parents e169452 + 028c78f commit d702688
Show file tree
Hide file tree
Showing 5 changed files with 336 additions and 109 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
before(:all) do
@name = Faker::Number.number(5)
cs_eti_page.add_product
cs_eti_page.name = @name
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 == 'Все изменения сохранены' }
Expand All @@ -38,7 +38,7 @@
@name = Faker::Number.number(5)
cs_eti_page.add_product
cs_eti_page.set_rubric(CONFIG['eti']['rubric'])
cs_eti_page.name = @name
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 == 'Все изменения сохранены' }
Expand Down
173 changes: 173 additions & 0 deletions lib/apress/selenium_eti/spec/company_site/eti/product_statuses_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
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
log_in_as(:user)
navigate_to_eti
cs_main_page.close_banner

@product_1 = {
name: Faker::Name.title,
rubric: CONFIG['eti']['rubric']
}

@product_2 = {
name: Faker::Name.title,
rubric: CONFIG['eti']['rubric']
}

@product_3 = {
name: Faker::Name.title,
rubric: CONFIG['eti']['rubric']
}

@product_4 = {
name: Faker::Name.title,
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)

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])

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])
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])
end

context 'когда товары подтверждены' do
before(:all) { navigate_to_eti }

context 'когда исходный статус "Опубликованный"' do
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])
Page.browser.navigate.refresh
end

it 'статус изменится на архивный' do
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])
Page.browser.navigate.refresh
end

it 'статус изменится на опубликованный' do
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]) }

context 'когда меняем статус на опубликованный' do
before(:all) do
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
end
end

context 'когда меняем статус с опубликованного на архивный' do
before(:all) do
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
end
end
end
end

context 'когда товары отклонены' do
before(:all) { navigate_to_eti }

context 'когда исходный статус "Отклоненный"' do
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])
Page.browser.navigate.refresh
end

it 'статус изменится на архивный' do
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])
Page.browser.navigate.refresh
end

it 'статус изменится на отклоненный' do
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]) }

context 'когда меняем статус на опубликованный' do
before(:all) do
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
end
end

context 'когда меняем статус с отклоненного на архивный' do
before(:all) do
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
end
end
end
end
end
52 changes: 26 additions & 26 deletions lib/apress/selenium_eti/spec/company_site/minieti_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
describe 'Мини-ЕТИ' do
cs_eti_page = CompanySite::EtiPage.new
cs_main_page = CompanySite::MainPage.new
cs_mini_eti_page = CompanySite::MiniEtiPage.new

before(:all) do
log_in_as(:user)
Expand All @@ -16,7 +17,7 @@
context 'когда заполняем имя' do
before(:all) do
@name = Faker::Number.number(5)
cs_eti_page.name = @name
cs_eti_page.set_name(@name)
end

it 'введенное имя отображается' do
Expand All @@ -26,68 +27,67 @@
context 'когда добавляем картинку' do
before(:all) do
@thermometer_value = cs_eti_page.thermometer_value
cs_eti_page.load_image(IMAGE_PATH)
cs_eti_page.set_image(IMAGE_PATH)
end

it 'картинка появляется' do
expect(cs_eti_page.image_loaded?).to be true
end

it 'увеличивается градус на термометре' do
cs_eti_page.wait_until { cs_eti_page.save_status == 'Все изменения сохранены' }
cs_eti_page.wait_saving
expect(cs_eti_page.thermometer_value).to be @thermometer_value + CONFIG['battery_percents']['image']
end

after(:all) do
cs_eti_page.close_image_uploader
end
after(:all) { cs_eti_page.close_image_uploader }
end
end

context 'когда заполняем цену' do
before(:all) do
@thermometer_value = cs_eti_page.thermometer_value
@price = Faker::Number.number(3)
cs_eti_page.price = @price

cs_eti_page.set_price(@price)
end

it 'введенная цена отображается' do
expect(cs_eti_page.price_value).to include @price
end

it 'увеличивается градус на термометре' do
cs_eti_page.wait_until { cs_eti_page.save_status == 'Все изменения сохранены' }
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

@thermometer_value = cs_eti_page.thermometer_value
@price_from = Faker::Number.number(2)
@price_to = Faker::Number.number(3)
cs_eti_page.set_price_from_to(@price_from, @price_to)
@price_from_to = {from: Faker::Number.number(2), to: Faker::Number.number(3)}

cs_eti_page.set_price_from_to(@price_from_to)
end

it 'введенная цена отображается' do
expect(cs_eti_page.price_value).to include @price_from
expect(cs_eti_page.price_value).to include @price_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

@thermometer_value = cs_eti_page.thermometer_value
@price = Faker::Number.number(3)
@discount_price = Faker::Number.number(2)
cs_eti_page.set_discount_price(@price, @discount_price)
@discount_price = {previous: Faker::Number.number(3), discount: Faker::Number.number(2)}

cs_eti_page.set_discount_price(@discount_price)
end

it 'введенные цены и дата окончания скидки отображаются' do
expect(cs_eti_page.discount_price_value).to include @discount_price
expect(cs_eti_page.previous_price_value).to include @price
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
Expand Down Expand Up @@ -151,8 +151,8 @@
before do
cs_eti_page.add_product
@name = Faker::Number.number(5)
cs_eti_page.name = @name
cs_eti_page.delete
cs_eti_page.set_name(@name)
cs_mini_eti_page.delete_first_product
end

it 'товар удаляется' do
Expand All @@ -163,13 +163,13 @@
describe 'Копирование товара' do
before do
cs_eti_page.add_product

cs_eti_page.name = @name = Faker::Pokemon.name
cs_eti_page.price = @price = Faker::Number.number(5)
cs_eti_page.wait_until(45) { cs_eti_page.save_status == 'Все изменения сохранены' }
@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.copy_product
cs_eti_page.wait_until(45) { cs_eti_page.save_status == 'Все изменения сохранены' }
cs_eti_page.wait_saving
end

it 'товар копируется' do
Expand All @@ -180,7 +180,7 @@
context 'когда выбираем количество товаров на странице' do
before do
cs_eti_page.choose_amount_of_products_on_page = '50'
cs_eti_page.wait_until { cs_eti_page.save_status == 'Все изменения сохранены' }
cs_eti_page.wait_saving
end

it 'количество товаров на странице равно выбранному значению' do
Expand Down
Loading

0 comments on commit d702688

Please sign in to comment.