add jobs portal relaunch test

This commit is contained in:
Jake McDermott 2018-07-27 00:55:06 -04:00
parent 61d1cb46ac
commit 9e71760af7
No known key found for this signature in database
GPG Key ID: 9A6F084352C3A0B7
7 changed files with 88 additions and 5 deletions

View File

@ -15,7 +15,7 @@
</div>
<at-list results="vm.jobs" empty-list-reason="{{ vm.emptyListReason }}">
<!-- TODO: implement resources are missing red indicator as present in mockup -->
<at-row ng-repeat="job in vm.jobs" job-id="{{ job.id }}">
<at-row ng-repeat="job in vm.jobs" id="job-{{ job.id }}">
<div class="at-Row-items">
<!-- TODO: include workflow tab as well -->
<at-row-item

View File

@ -26,12 +26,14 @@
<button ng-class="{'btn-primary': $state.is('portalMode.myJobs'), 'Button-primary--hollow': $state.is('portalMode.allJobs')}"
ng-click='filterUser()'
class="btn btn-xs"
id="my-jobs-btn"
translate>
My Jobs
</button>
<button ng-class="{'btn-primary': $state.is('portalMode.allJobs'), 'Button-primary--hollow': $state.is('portalMode.myJobs')}"
ng-click='filterAll()'
class="btn btn-xs"
id="all-jobs-btn"
translate>
All Jobs
</button>

View File

@ -38,9 +38,9 @@
<at-list results="vm.templates" id="templates_list">
<at-row ng-repeat="template in vm.templates"
ng-class="{'at-Row--active': (template.id === vm.activeId)}"
template-id="{{ template.id }}"
invalid="vm.isInvalid(template)"
invalid-tooltip="vm.invalidTooltip">
invalid-tooltip="vm.invalidTooltip"
id="row-{{ template.id }}">
<div class="at-Row-items">
<at-row-item
header-value="{{ template.name }}"

View File

@ -7,7 +7,6 @@ function atRow () {
transclude: true,
templateUrl,
scope: {
templateId: '@',
invalid: '=',
invalidTooltip: '='
}

View File

@ -1,4 +1,4 @@
<div class="at-Row" id="row-{{ templateId }}">
<div class="at-Row">
<div class="at-Row--invalid" ng-show="invalid">
<at-popover state="invalidTooltip" ng-if="invalidTooltip"></at-popover>
</div>

View File

@ -0,0 +1,13 @@
module.exports = {
url () {
return `${this.api.globals.launch_url}/#/portal/myjobs`;
},
sections: {},
elements: {},
commands: [{
load () {
this.api.url('data:,'); // https://github.com/nightwatchjs/nightwatch/issues/1724
return this.navigate();
},
}],
};

View File

@ -0,0 +1,69 @@
import {
getJob,
getJobTemplateAdmin
} from '../fixtures';
let data;
module.exports = {
before: (client, done) => {
const resources = [
getJobTemplateAdmin('test-actions'),
getJob('test-actions'),
];
Promise.all(resources)
.then(([admin, job]) => {
data = { admin, job };
client.login(data.admin.username);
client.waitForAngular();
done();
});
},
'relaunch a job from the \'all jobs\' list': client => {
const portal = client.page.portal();
const allJobsButton = '#all-jobs-btn';
const relaunch = `#job-${data.job.id} i[class*="launch"]`;
const search = '#portal-container-jobs smart-search input';
const spinny = 'div.spinny';
portal.load();
portal.expect.element(allJobsButton).visible;
portal.expect.element(allJobsButton).enabled;
portal.click(allJobsButton);
portal.waitForElementVisible(spinny);
portal.waitForElementNotVisible(spinny);
const query = `id:>${data.job.id - 1} id:<${data.job.id + 1}`;
portal.expect.element(search).visible;
portal.expect.element(search).enabled;
portal.sendKeys(search, query);
portal.sendKeys(search, client.Keys.ENTER);
portal.waitForElementVisible(spinny);
portal.waitForElementNotVisible(spinny);
portal.expect.element(relaunch).visible;
portal.expect.element(relaunch).enabled;
portal.click(relaunch);
portal.waitForElementVisible(spinny);
portal.waitForElementNotVisible(spinny);
const jobDetails = 'at-job-details';
const output = './/span[normalize-space(text())=\'"msg": "Hello World!"\']';
client.waitForElementVisible(jobDetails, 10000);
client.useXpath();
client.waitForElementVisible(output, 60000);
client.useCss();
client.end();
}
};