/
products.spec.js
74 lines (61 loc) · 2.53 KB
/
products.spec.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
var Helpers = require('./helpers'),
capture = require('./screenshot');
describe('products page', function () {
var helpers = new Helpers();
var path = require('path');
var productTitle = 'title' + Date.now();
beforeEach(function () {
helpers.get('product-list');
});
afterEach(function () {
var spec = jasmine.getEnv().currentSpec;
capture.takeScreenshotOnFailure(spec);
});
function getProductsCount() {
return element.all(by.repeater('item in productsInterface.items'))
.then(function (products) {
return products.length;
})
}
it('should get page products', function () {
expect(browser.getLocationAbsUrl()).toBe('/product-list');
});
it('should add new product', function () {
// adding a new product
var btnAddProduct = element(by.css('a[ng-click="productsInterface.add()"]'));
btnAddProduct.click();
var productForm = element(by.name('productForm'));
var modalTitle = productForm.element(by.css('input[type=text]'));
var modalDesc = productForm.element(by.css('textarea'));
var modalPrice = productForm.element(by.css('input[type=number]'));
var modalFile = productForm.element(by.css('input[type=file]'));
var modalBtnOk = productForm.element(by.buttonText("OK"));
modalTitle.sendKeys(productTitle);
modalDesc.sendKeys('a description');
modalPrice.sendKeys(123);
var fileToUpload = 'image.jpg';
var absolutePath = path.resolve(__dirname + '/assets/', fileToUpload);
modalFile.sendKeys(absolutePath);
modalBtnOk.click();
// product searching
var search = element(by.model('itemsControl.search'));
search.sendKeys(productTitle);
expect(getProductsCount()).toBe(1);
});
it('should find product and remove it', function () {
// product searching
var search = element(by.model('itemsControl.search'));
search.sendKeys(productTitle);
expect(getProductsCount()).toBe(1);
// product removing
var btnDelete = element(by.css("button.btn-danger"));
btnDelete.click();
var deleteForm = element(by.name('deleteForm'));
var modalDeleteBtnOk = deleteForm.element(by.buttonText("OK"));
var modalReason = deleteForm.element(by.css('textarea'));
modalReason.sendKeys('a reason');
modalDeleteBtnOk.click();
helpers.waitForAlert();
expect(getProductsCount()).toBe(0);
});
});