/
10_display_each_kind_of_product.js
108 lines (101 loc) · 3.82 KB
/
10_display_each_kind_of_product.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
const {AccessPageBO} = require('../../../selectors/BO/access_page');
const {AccessPageFO} = require('../../../selectors/FO/access_page');
const {AddProductPage} = require('../../../selectors/BO/add_product_page');
const {ProductList} = require('../../../selectors/BO/add_product_page');
const {ProductSettings} = require('../../../selectors/BO/shopParameters/product_settings');
const {productPage} = require('../../../selectors/FO/product_page');
const {Menu} = require('../../../selectors/BO/menu.js');
const commonScenarios = require('../../common_scenarios/product');
const commonAttributeScenarios = require('../../common_scenarios/attribute');
let promise = Promise.resolve();
let attributeData = {
name: 'att',
public_name: 'att',
type: 'color',
values: {
1: 'red',
2: 'yellow',
3: 'green'
}
};
let productData = [{
name: 'Standard',
reference: 'reference',
quantity: '5',
price: '10',
image_name: 'standard.jpg',
type: "standard"
}, {
name: 'Pack',
reference: 'reference',
quantity: '5',
price: '10',
image_name: 'pack.jpeg',
type: "pack",
product: {
name: 'Standard',
quantity: '1'
}
}, {
name: 'Combination',
reference: 'reference',
quantity: '5',
price: '10',
image_name: 'combination.jpg',
attribute: {
name: 'att',
variation_quantity: '5'
}
}, {
name: 'Virtual',
reference: 'reference',
quantity: '5',
price: '10',
image_name: 'music.jpg',
type: 'virtual',
virtual: {
quantity: '5',
minimal_quantity: '1'
}
}];
scenario('Display each kind of product', () => {
scenario('Create a Standard, Pack, Combination and Virtual product ', client => {
scenario('Login in the Back Office', client => {
test('should open the browser', () => client.open());
test('should login successfully in the Back Office', () => client.signInBO(AccessPageBO));
}, 'product/product');
commonScenarios.createProduct(AddProductPage, productData[0]);
commonScenarios.createProduct(AddProductPage, productData[1]);
commonAttributeScenarios.createAttribute(attributeData);
commonScenarios.createProduct(AddProductPage, productData[2]);
commonScenarios.createProduct(AddProductPage, productData[3]);
}, 'product/product');
scenario('Check the product pagination in the Back Office', client => {
test('should go to "Products" page', () => client.goToSubtabMenuPage(Menu.Sell.Catalog.catalog_menu, Menu.Sell.Catalog.products_submenu));
test('should get the product number', () => {
return promise
.then(() => client.isVisible(ProductList.pagination_products))
.then(() => client.getProductsNumber(ProductList.pagination_products))
.then(() => client.isVisible(AddProductPage.symfony_toolbar, 3000))
.then(() => {
if (global.isVisible) {
client.waitForExistAndClick(AddProductPage.symfony_toolbar);
}
});
});
test('should close "catalog" menu', () => client.waitForVisibleAndClick(Menu.Sell.Catalog.catalog_menu));
test('should go to "Shop Parameters - Product Settings" page', () => {
return promise
.then(() => client.pause(3000))
.then(() => client.goToSubtabMenuPage(Menu.Configure.ShopParameters.shop_parameters_menu, Menu.Configure.ShopParameters.product_settings_submenu));
});
test('should get the pagination Products per page value and check the created product in the Front Office', () => {
return promise
.then(() => client.getAttributeInVar(ProductSettings.Pagination.products_per_page_input, "value", "pagination"))
.then(() => {
global.pagination = Number(Math.trunc(Number(global.productsNumber) / Number(global.tab['pagination'])));
commonScenarios.checkProductInListFO(AccessPageFO, productPage, productData);
});
});
}, 'product/product');
}, 'product/product');