Skip to content

Commit c4e0cb7

Browse files
authored
Merge pull request #280 from nickhealy/expandSpectrontests
Expand spectrontests
2 parents 1dac9c7 + 73234e5 commit c4e0cb7

File tree

10 files changed

+373
-76
lines changed

10 files changed

+373
-76
lines changed

src/client/components/composer/NewRequest/CookieEntryForm.jsx

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,19 @@ class CookieEntryForm extends Component {
8888

8989
render() {
9090
let cookiesArr = this.props.newRequestCookies.cookiesArr.map((cookie, index) => {
91-
return (<Header content={cookie} changeHandler={this.onChangeUpdateCookie} key={index} Key={cookie.key} value={cookie.value}></Header>)
91+
return (
92+
<Header
93+
type='cookie'
94+
content={cookie}
95+
changeHandler={this.onChangeUpdateCookie}
96+
key={index} Key={cookie.key}
97+
value={cookie.value}>
98+
</Header>
99+
)
92100
});
93101

94102
const arrowClass = this.state.show ? 'composer_subtitle_arrow-open' : 'composer_subtitle_arrow-closed';
95-
const cookiesContainerClass = this.state.show ? 'composer_headers_container-open' : 'composer_headers_container-closed'
103+
const cookiesContainerClass = this.state.show ? 'composer_headers_container-open cookies_container' : 'composer_headers_container-closed cookies_container'
96104

97105
return (
98106
<div>

src/client/components/composer/NewRequest/Header.jsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,26 @@ import React from 'react';
22
import PropTypes from 'prop-types';
33

44
const Header = ({
5-
content, changeHandler, Key, value,
5+
type, content, changeHandler, Key, value,
66
}) => (
7-
<div style={styles} className='composer_header'>
7+
<div style={styles} className={`composer_header ${type === 'header' ? 'header_container' : 'cookie_container'}`}>
88
<input
9-
className='composer_header_checkbox'
9+
className={`composer_header_checkbox ${type === 'header' ? 'header_checkbox' : 'cookie_checkbox'}`}
1010
type="checkbox"
1111
checked={content.active}
1212
onChange={e => changeHandler(content.id, 'active', e.target.checked)}
1313
/>
1414

1515
<input
16-
className="composer_header_input composer_header_input_first"
16+
className={`composer_header_input composer_header_input_first ${type === 'header' ? 'header_key' : 'cookie_key'}`}
1717
type="text"
1818
placeholder="Key"
1919
value={Key}
2020
onChange={e => changeHandler(content.id, 'key', e.target.value)}
2121
/>
2222

2323
<input
24-
className="composer_header_input"
24+
className={`composer_header_input ${type === 'header' ? 'header_value' : 'cookie_value'}`}
2525
type="text"
2626
placeholder="Value"
2727
value={value}

src/client/components/composer/NewRequest/HeaderEntryForm.jsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ class HeaderEntryForm extends Component {
157157

158158
const headersArr = this.props.newRequestHeaders.headersArr.map((header, index) => (
159159
<Header
160+
type='header'
160161
content={header}
161162
changeHandler={this.onChangeUpdateHeader}
162163
key={index} //key

test/pageObjects/Sidebar.js

Lines changed: 73 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ const app = require('../testApp.js');
22

33
class Sidebar {
44

5+
// URL/METHOD INPUTS
56
get url() {
67
return app.client.$('input.composer_url_input');
78
};
@@ -18,12 +19,52 @@ class Sidebar {
1819
return app.client.$('option=GET');
1920
};
2021

22+
// BODY INPUTS
23+
get activateBodyInput(){
24+
return app.client.$('.composer_subtitle=Body');
25+
};
26+
27+
get rawBtn(){
28+
return app.client.$('.composer_bodytype_button=Raw');
29+
};
30+
31+
get urlencodedBtn(){
32+
return app.client.$('.composer_bodytype_button=x-www-form-urlencoded');
33+
};
34+
35+
get noneBtn(){
36+
return app.client.$('.composer_bodytype_button=None');
37+
};
38+
39+
get contentTypeBtn(){
40+
return app.client.$('select.composer_rawtype_select');
41+
};
42+
43+
get chooseJSON(){
44+
return app.client.$('option=JSON (application/json)');
45+
};
46+
47+
get bodyInput(){
48+
return app.client.$('textarea.composer_textarea');
49+
};
50+
51+
52+
get prettyJSON(){
53+
return app.client.$('.composer_pretty_print');
54+
};
55+
56+
// HEADER INPUTS
57+
2158
get activateHeaders(){
2259
return app.client.$('.composer_subtitle=Headers');
2360
};
2461

25-
get headerCheckbox(){
26-
return app.client.$$('header_checkbox');
62+
get headers(){
63+
return app.client.$$('.header_container');
64+
}
65+
66+
get firstHeaderCheckbox(){
67+
return app.client.$('.header_checkbox')
2768
};
2869

2970
get headerKey(){
@@ -32,6 +73,36 @@ class Sidebar {
3273

3374
get headerValue(){
3475
return app.client.$('.header_value');
76+
};
77+
78+
get addHeader(){
79+
return app.client.$('button=Add Header');
80+
};
81+
82+
// COOKIE INPUTS
83+
get cookies(){
84+
return app.client.$$('.cookie_container');
85+
};
86+
87+
get activateCookies(){
88+
return app.client.$('.composer_subtitle=Cookies');
89+
}
90+
91+
get firstCookieCheckbox(){
92+
return app.client.$('.cookie_checkbox');
93+
};
94+
95+
get cookieKey(){
96+
return app.client.$('.cookie_key');
97+
};
98+
99+
get cookieValue(){
100+
return app.client.$('.cookie_value');
101+
};
102+
103+
// ADD REQUEST BUTTON
104+
get addRequestBtn(){
105+
return app.client.$('button=Add New Request')
35106
}
36107
};
37108

test/subSuites/addRequestTests.js

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
const assert = require('assert');
2+
const sideBar = require('../pageObjects/Sidebar.js');
3+
const app = require('../testApp');
4+
const fs = require('fs');
5+
const path = require('path');
6+
7+
8+
module.exports = () => {
9+
describe('Add New Request Button', () => {
10+
let value;
11+
let headers;
12+
let isChecked;
13+
let cookies;
14+
15+
16+
describe('inputs reset when new request button is clicked', () => {
17+
18+
before(async function() {
19+
await sideBar.addRequestBtn.click();
20+
})
21+
22+
it('url input resets', async () => {
23+
value = await sideBar.url.getValue();
24+
assert.strictEqual(value, 'http://');
25+
});
26+
27+
it('custom headers disappear', async () => {
28+
await sideBar.activateHeaders.click();
29+
headers = await sideBar.headers;
30+
assert.strictEqual(headers.length, 1);
31+
});
32+
33+
it('header inputs reset', async () => {
34+
value = await sideBar.headerKey.getValue();
35+
assert.strictEqual(value, '');
36+
value = await sideBar.headerValue.getValue();
37+
assert.strictEqual(value, '');
38+
isChecked = await sideBar.firstHeaderCheckbox.isSelected();
39+
assert.strictEqual(isChecked, false);
40+
});
41+
42+
it('custom cookies disappear', async () => {
43+
await sideBar.activateCookies.click();
44+
cookies = await sideBar.cookies;
45+
assert.strictEqual(cookies.length, 1);
46+
});
47+
48+
it('cookie fields reset', async () => {
49+
value = await sideBar.cookieKey.getValue();
50+
assert.strictEqual(value, '');
51+
value = await sideBar.cookieValue.getValue();
52+
assert.strictEqual(value, '');
53+
isChecked = await sideBar.firstCookieCheckbox.isSelected();
54+
assert.strictEqual(isChecked, false);
55+
});
56+
57+
it("take a snapshot of app", async () => {
58+
const imageBuffer = await app.browserWindow.capturePage();
59+
fs.writeFileSync(path.resolve(__dirname, "addedReq.png"), imageBuffer);
60+
});
61+
62+
})
63+
})
64+
}

test/subSuites/addedReq.png

89.5 KB
Loading

test/subSuites/historyTests.js

Lines changed: 0 additions & 65 deletions
This file was deleted.

0 commit comments

Comments
 (0)