mirror of
https://github.com/ansible/awx.git
synced 2026-01-15 20:00:43 -03:30
update copy tests
This commit is contained in:
parent
6b3f45bc26
commit
4937d1f75e
@ -57,6 +57,18 @@ const getInventory = (namespace = session) => getOrganization(namespace)
|
||||
variables: JSON.stringify({ ansible_connection: 'local' }),
|
||||
}, ['name', 'inventory']).then(() => inventory)));
|
||||
|
||||
const getInventoryNoSource = (namespace = session) => getOrganization(namespace)
|
||||
.then(organization => getOrCreate('/inventories/', {
|
||||
name: `${namespace}-inventory-nosource`,
|
||||
description: namespace,
|
||||
organization: organization.id
|
||||
}).then(inventory => getOrCreate('/hosts/', {
|
||||
name: `${namespace}-host`,
|
||||
description: namespace,
|
||||
inventory: inventory.id,
|
||||
variables: JSON.stringify({ ansible_connection: 'local' }),
|
||||
}, ['name', 'inventory']).then(() => inventory)));
|
||||
|
||||
const getHost = (namespace = session) => getInventory(namespace)
|
||||
.then(inventory => getOrCreate('/hosts/', {
|
||||
name: `${namespace}-host`,
|
||||
@ -365,6 +377,7 @@ module.exports = {
|
||||
getAuditor,
|
||||
getHost,
|
||||
getInventory,
|
||||
getInventoryNoSource,
|
||||
getInventoryScript,
|
||||
getInventorySource,
|
||||
getInventorySourceSchedule,
|
||||
|
||||
@ -38,6 +38,24 @@ module.exports = {
|
||||
credentials.waitForElementVisible('div.spinny');
|
||||
credentials.waitForElementNotVisible('div.spinny');
|
||||
|
||||
const activityStream = 'bread-crumb > div i[class$="icon-activity-stream"]';
|
||||
const activityRow = '#activities_table tr td[class*="description-column"] a';
|
||||
const toast = 'div[class="Toast-icon"]';
|
||||
|
||||
credentials.waitForElementNotPresent(toast);
|
||||
credentials.expect.element(activityStream).visible;
|
||||
credentials.expect.element(activityStream).enabled;
|
||||
credentials.click(activityStream);
|
||||
credentials.waitForElementVisible('div.spinny');
|
||||
credentials.waitForElementNotVisible('div.spinny');
|
||||
|
||||
client
|
||||
.waitForElementVisible(activityRow)
|
||||
.click(activityRow);
|
||||
|
||||
credentials.waitForElementVisible('div.spinny');
|
||||
credentials.waitForElementNotVisible('div.spinny');
|
||||
|
||||
credentials.expect.element('div[ui-view="edit"] form').visible;
|
||||
credentials.section.edit.expect.element('@title').visible;
|
||||
credentials.section.edit.expect.element('@title').text.contain(data.credential.name);
|
||||
|
||||
@ -1,12 +1,19 @@
|
||||
import { getInventory } from '../fixtures';
|
||||
import { getInventory, getInventoryNoSource } from '../fixtures';
|
||||
|
||||
const data = {};
|
||||
let data;
|
||||
|
||||
module.exports = {
|
||||
before: (client, done) => {
|
||||
getInventory('test-actions')
|
||||
.then(obj => { data.inventory = obj; })
|
||||
.then(done);
|
||||
const resources = [
|
||||
getInventory('test-actions'),
|
||||
getInventoryNoSource('test-actions'),
|
||||
];
|
||||
|
||||
Promise.all(resources)
|
||||
.then(([inventory, inventoryNoSource]) => {
|
||||
data = { inventory, inventoryNoSource };
|
||||
done();
|
||||
});
|
||||
},
|
||||
'copy inventory': client => {
|
||||
const inventories = client.page.inventories();
|
||||
@ -23,6 +30,63 @@ module.exports = {
|
||||
inventories.section.list.expect.element('smart-search').visible;
|
||||
inventories.section.list.section.search.expect.element('@input').enabled;
|
||||
|
||||
inventories.section.list.section.search
|
||||
.sendKeys('@input', `id:>${data.inventoryNoSource.id - 1} id:<${data.inventoryNoSource.id + 1}`)
|
||||
.sendKeys('@input', client.Keys.ENTER);
|
||||
|
||||
inventories.waitForElementVisible('div.spinny');
|
||||
inventories.waitForElementNotVisible('div.spinny');
|
||||
|
||||
inventories.expect.element(`#inventories_table tr[id="${data.inventoryNoSource.id}"]`).visible;
|
||||
inventories.expect.element('i[class*="copy"]').visible;
|
||||
inventories.expect.element('i[class*="copy"]').enabled;
|
||||
|
||||
inventories.click('i[class*="copy"]');
|
||||
inventories.waitForElementVisible('div.spinny');
|
||||
inventories.waitForElementNotVisible('div.spinny');
|
||||
|
||||
const activityStream = 'bread-crumb > div i[class$="icon-activity-stream"]';
|
||||
const activityRow = '#activities_table tr td[class*="description-column"] a';
|
||||
const toast = 'div[class="Toast-icon"]';
|
||||
|
||||
inventories.waitForElementNotPresent(toast);
|
||||
inventories.expect.element(activityStream).visible;
|
||||
inventories.expect.element(activityStream).enabled;
|
||||
inventories.click(activityStream);
|
||||
inventories.waitForElementVisible('div.spinny');
|
||||
inventories.waitForElementNotVisible('div.spinny');
|
||||
|
||||
client
|
||||
.waitForElementVisible(activityRow)
|
||||
.click(activityRow);
|
||||
|
||||
inventories.waitForElementVisible('div.spinny');
|
||||
inventories.waitForElementNotVisible('div.spinny');
|
||||
|
||||
inventories.expect.element('#inventory_form').visible;
|
||||
inventories.section.editStandardInventory.expect.element('@title').visible;
|
||||
inventories.section.editStandardInventory.expect.element('@title').text.contain(data.inventoryNoSource.name);
|
||||
inventories.section.editStandardInventory.expect.element('@title').text.not.equal(data.inventoryNoSource.name);
|
||||
inventories.expect.element('@save').visible;
|
||||
inventories.expect.element('@save').enabled;
|
||||
|
||||
client.end();
|
||||
},
|
||||
'verify inventories with sources cannot be copied': client => {
|
||||
const inventories = client.page.inventories();
|
||||
|
||||
client.useCss();
|
||||
client.resizeWindow(1200, 800);
|
||||
client.login();
|
||||
client.waitForAngular();
|
||||
|
||||
inventories.load();
|
||||
inventories.waitForElementVisible('div.spinny');
|
||||
inventories.waitForElementNotVisible('div.spinny');
|
||||
|
||||
inventories.section.list.expect.element('smart-search').visible;
|
||||
inventories.section.list.section.search.expect.element('@input').enabled;
|
||||
|
||||
inventories.section.list.section.search
|
||||
.sendKeys('@input', `id:>${data.inventory.id - 1} id:<${data.inventory.id + 1}`)
|
||||
.sendKeys('@input', client.Keys.ENTER);
|
||||
@ -31,19 +95,8 @@ module.exports = {
|
||||
inventories.waitForElementNotVisible('div.spinny');
|
||||
|
||||
inventories.expect.element(`#inventories_table tr[id="${data.inventory.id}"]`).visible;
|
||||
inventories.expect.element('i[class*="copy"]').visible;
|
||||
inventories.expect.element('i[class*="copy"]').enabled;
|
||||
|
||||
inventories.click('i[class*="copy"]');
|
||||
inventories.waitForElementVisible('div.spinny');
|
||||
inventories.waitForElementNotVisible('div.spinny');
|
||||
|
||||
inventories.expect.element('#inventory_form').visible;
|
||||
inventories.section.editStandardInventory.expect.element('@title').visible;
|
||||
inventories.section.editStandardInventory.expect.element('@title').text.contain(data.inventory.name);
|
||||
inventories.section.editStandardInventory.expect.element('@title').text.not.equal(data.inventory.name);
|
||||
inventories.expect.element('@save').visible;
|
||||
inventories.expect.element('@save').enabled;
|
||||
inventories.expect.element('#copy-action').visible;
|
||||
inventories.expect.element('#copy-action[class$="btn-disabled"]').present;
|
||||
|
||||
client.end();
|
||||
}
|
||||
|
||||
@ -38,6 +38,24 @@ module.exports = {
|
||||
inventoryScripts.waitForElementVisible('div.spinny');
|
||||
inventoryScripts.waitForElementNotVisible('div.spinny');
|
||||
|
||||
const activityStream = 'bread-crumb > div i[class$="icon-activity-stream"]';
|
||||
const activityRow = '#activities_table tr td[class*="description-column"] a';
|
||||
const toast = 'div[class="Toast-icon"]';
|
||||
|
||||
inventoryScripts.waitForElementNotPresent(toast);
|
||||
inventoryScripts.expect.element(activityStream).visible;
|
||||
inventoryScripts.expect.element(activityStream).enabled;
|
||||
inventoryScripts.click(activityStream);
|
||||
inventoryScripts.waitForElementVisible('div.spinny');
|
||||
inventoryScripts.waitForElementNotVisible('div.spinny');
|
||||
|
||||
client
|
||||
.waitForElementVisible(activityRow)
|
||||
.click(activityRow);
|
||||
|
||||
inventoryScripts.waitForElementVisible('div.spinny');
|
||||
inventoryScripts.waitForElementNotVisible('div.spinny');
|
||||
|
||||
inventoryScripts.expect.element('#inventory_script_form').visible;
|
||||
inventoryScripts.section.edit.expect.element('@title').visible;
|
||||
inventoryScripts.section.edit.expect.element('@title').text.contain(data.inventoryScript.name);
|
||||
|
||||
@ -38,6 +38,24 @@ module.exports = {
|
||||
notifications.waitForElementVisible('div.spinny');
|
||||
notifications.waitForElementNotVisible('div.spinny');
|
||||
|
||||
const activityStream = 'bread-crumb > div i[class$="icon-activity-stream"]';
|
||||
const activityRow = '#activities_table tr td[class*="description-column"] a';
|
||||
const toast = 'div[class="Toast-icon"]';
|
||||
|
||||
notifications.waitForElementNotPresent(toast);
|
||||
notifications.expect.element(activityStream).visible;
|
||||
notifications.expect.element(activityStream).enabled;
|
||||
notifications.click(activityStream);
|
||||
notifications.waitForElementVisible('div.spinny');
|
||||
notifications.waitForElementNotVisible('div.spinny');
|
||||
|
||||
client
|
||||
.waitForElementVisible(activityRow)
|
||||
.click(activityRow);
|
||||
|
||||
notifications.waitForElementVisible('div.spinny');
|
||||
notifications.waitForElementNotVisible('div.spinny');
|
||||
|
||||
notifications.expect.element('#notification_template_form').visible;
|
||||
notifications.section.edit.expect.element('@title').visible;
|
||||
notifications.section.edit.expect.element('@title').text.contain(data.notification.name);
|
||||
|
||||
@ -39,6 +39,24 @@ module.exports = {
|
||||
projects.waitForElementVisible('div.spinny');
|
||||
projects.waitForElementNotVisible('div.spinny');
|
||||
|
||||
const activityStream = 'bread-crumb > div i[class$="icon-activity-stream"]';
|
||||
const activityRow = '#activities_table tr td[class*="description-column"] a';
|
||||
const toast = 'div[class="Toast-icon"]';
|
||||
|
||||
projects.waitForElementNotPresent(toast);
|
||||
projects.expect.element(activityStream).visible;
|
||||
projects.expect.element(activityStream).enabled;
|
||||
projects.click(activityStream);
|
||||
projects.waitForElementVisible('div.spinny');
|
||||
projects.waitForElementNotVisible('div.spinny');
|
||||
|
||||
client
|
||||
.waitForElementVisible(activityRow)
|
||||
.click(activityRow);
|
||||
|
||||
projects.waitForElementVisible('div.spinny');
|
||||
projects.waitForElementNotVisible('div.spinny');
|
||||
|
||||
projects.expect.element('#project_form').visible;
|
||||
projects.section.edit.expect.element('@title').visible;
|
||||
projects.section.edit.expect.element('@title').text.contain(data.project.name);
|
||||
|
||||
@ -53,6 +53,24 @@ module.exports = {
|
||||
templates.waitForElementVisible('div.spinny');
|
||||
templates.waitForElementNotVisible('div.spinny');
|
||||
|
||||
const activityStream = 'bread-crumb > div i[class$="icon-activity-stream"]';
|
||||
const activityRow = '#activities_table tr td[class*="description-column"] a';
|
||||
const toast = 'div[class="Toast-icon"]';
|
||||
|
||||
templates.waitForElementNotPresent(toast);
|
||||
templates.expect.element(activityStream).visible;
|
||||
templates.expect.element(activityStream).enabled;
|
||||
templates.click(activityStream);
|
||||
templates.waitForElementVisible('div.spinny');
|
||||
templates.waitForElementNotVisible('div.spinny');
|
||||
|
||||
client
|
||||
.waitForElementVisible(activityRow)
|
||||
.click(activityRow);
|
||||
|
||||
templates.waitForElementVisible('div.spinny');
|
||||
templates.waitForElementNotVisible('div.spinny');
|
||||
|
||||
templates.expect.element('#job_template_form').visible;
|
||||
templates.section.addJobTemplate.expect.element('@title').visible;
|
||||
templates.section.addJobTemplate.expect.element('@title').text.contain(data.template.name);
|
||||
@ -95,6 +113,24 @@ module.exports = {
|
||||
.waitForElementNotVisible('div.spinny')
|
||||
.waitForAngular();
|
||||
|
||||
const activityStream = 'bread-crumb > div i[class$="icon-activity-stream"]';
|
||||
const activityRow = '#activities_table tr td[class*="description-column"] a';
|
||||
const toast = 'div[class="Toast-icon"]';
|
||||
|
||||
templates.waitForElementNotPresent(toast);
|
||||
templates.expect.element(activityStream).visible;
|
||||
templates.expect.element(activityStream).enabled;
|
||||
templates.click(activityStream);
|
||||
templates.waitForElementVisible('div.spinny');
|
||||
templates.waitForElementNotVisible('div.spinny');
|
||||
|
||||
client
|
||||
.waitForElementVisible(activityRow)
|
||||
.click(activityRow);
|
||||
|
||||
templates.waitForElementVisible('div.spinny');
|
||||
templates.waitForElementNotVisible('div.spinny');
|
||||
|
||||
templates.expect.element('#workflow_job_template_form').visible;
|
||||
templates.section.editWorkflowJobTemplate.expect.element('@title').visible;
|
||||
templates.section.editWorkflowJobTemplate.expect.element('@title').text.contain(data.workflow.name);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user