-
Notifications
You must be signed in to change notification settings - Fork 2
/
step_defs.js
107 lines (72 loc) · 3.14 KB
/
step_defs.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
/* eslint-disable no-undef */
const cukeBtnSubmit = '//button[@data-cuke="save-item"]';
const cukeInpAge = '//input[@data-cuke="age"]';
const cukeInpTitle = '//input[@data-cuke="title"]';
const cukeInpContent = '//textarea[@data-cuke="content"]';
const cukeAge = '//x-cuke[@id="age"]';
const cukeTitle = '//x-cuke[@id="title"]';
const cukeContent = '//x-cuke[@id="content"]';
const cukeInvalidAge = '//span[@class="help-block error-block"]';
let age = '';
let title = '';
let content = '';
module.exports = function () {
// Scenario: Create a new color
// ------------------------------------------------------------------------
this.Given(/^I have opened the 'add colors' page : "([^"]*)"$/, function (_url) {
browser.setViewportSize({ width: 1024, height: 480 });
browser.timeouts('implicit', 20000);
browser.timeouts('page load', 20000);
browser.url(_url);
server.call('_colors.wipe');
});
this.When(/^I create a "([^"]*)" years old "([^"]*)" item with text "([^"]*)",$/,
function (_age, _title, _content) {
age = _age;
title = _title;
content = _content;
browser.waitForEnabled( cukeBtnSubmit );
browser.setValue(cukeInpTitle, title);
browser.setValue(cukeInpAge, age);
browser.setValue(cukeInpContent, content);
browser.click(cukeBtnSubmit);
});
this.Then(/^I see a new record with the same title, age and contents\.$/, function () {
expect(browser.getText(cukeAge)).toEqual(age + ' years old.');
expect(browser.getText(cukeTitle)).toEqual(title);
expect(browser.getText(cukeContent)).toEqual(content);
});
// =======================================================================
// Scenario: Verify field validation
// ------------------------------------------------------------------------
this.Given(/^I have opened the colors list page : "([^"]*)"$/, function (_url) {
browser.setViewportSize({ width: 1024, height: 480 });
browser.timeoutsImplicitWait(60000);
browser.url(_url);
});
this.When(/^I set 'Age' to "([^"]*)"$/, function (_age) {
browser.setValue(cukeInpAge, _age);
});
this.Then(/^I see the age validation hint "([^"]*)"\.$/, function (_message) {
expect(browser.getText(cukeInvalidAge)).toEqual(_message);
});
// =======================================================================
// Scenario: Fail to delete color
// ------------------------------------------------------------------------
let color = '';
this.Given(/^I have elected to view the "([^"]*)" item,$/, function (_color) {
color = _color;
const cukeHrefColor = `//a[@data-cuke="${color}"]`;
browser.waitForEnabled( cukeHrefColor );
browser.click( cukeHrefColor );
});
// =======================================================================
// Scenario: Prohibited from add and from update
// ------------------------------------------------------------------------
this.Given(/^I have opened the colors editor page : "([^"]*)"$/, function (_url) {
browser.setViewportSize({ width: 1024, height: 480 });
browser.timeouts('implicit', 60000);
browser.timeouts('page load', 60000);
browser.url(_url);
});
};