scratch-www/test/integration/my-stuff.test.js

57 lines
1.7 KiB
JavaScript
Raw Normal View History

2019-07-22 17:22:07 -04:00
const SeleniumHelper = require('./selenium-helpers.js');
const {
clickText,
findByXpath,
clickXpath,
clickButton,
buildDriver
} = new SeleniumHelper();
let username = process.env.SMOKE_USERNAME;
let password = process.env.SMOKE_PASSWORD;
let remote = process.env.SMOKE_REMOTE || false;
2019-07-22 17:22:07 -04:00
let rootUrl = process.env.ROOT_URL || 'https://scratch.ly';
let url = rootUrl + '/users/' + username;
if (remote){
jest.setTimeout(60000);
}
2019-07-22 17:22:07 -04:00
let driver;
describe('www-integration my-stuff', () => {
2019-07-22 17:22:07 -04:00
beforeAll(() => {
driver = buildDriver('www-integration my-stuff');
2019-07-22 17:22:07 -04:00
});
beforeEach(() => {
return driver.get(url)
.then(() => clickText('Sign in'))
.then(() => findByXpath('//input[@id="login_dropdown_username"]'))
.then((element) => element.sendKeys(username))
.then(() => findByXpath('//input[@name="password"]'))
.then((element) => element.sendKeys(password))
.then(() => clickButton('Sign in'));
});
afterEach(() => {
return clickXpath('//span[@class="user-name dropdown-toggle"]')
.then(() => clickXpath('//li[@id="logout"] '))
.then(() => findByXpath('//div[@class="title-banner intro-banner"]'));
});
// afterAll must be async in order to actually call driver.quit
afterAll(async () => {
await driver.quit();
2019-07-22 17:22:07 -04:00
});
test('Sign into Scratch using scratchr2 navbar', () => {
findByXpath('//li[contains(@class, "logged-in-user")' +
'and contains(@class, "dropdown")]/span')
.then((element) => element.getText('span'))
.then((text) => expect(text.toLowerCase()).toEqual(username.toLowerCase()));
});
});