From c785c387487a5dfe91d554e59c2e75a746c9b494 Mon Sep 17 00:00:00 2001 From: Daniel Sami Date: Thu, 20 Dec 2018 12:01:40 -0500 Subject: [PATCH] websocket tests initial commit --- awx/ui/test/e2e/tests/test-websockets.js | 44 ++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 awx/ui/test/e2e/tests/test-websockets.js diff --git a/awx/ui/test/e2e/tests/test-websockets.js b/awx/ui/test/e2e/tests/test-websockets.js new file mode 100644 index 0000000000..1d5934099f --- /dev/null +++ b/awx/ui/test/e2e/tests/test-websockets.js @@ -0,0 +1,44 @@ +import { + getInventorySource, + getJobTemplate, + getProject, + getWorkflowTemplate, + getJob +} from '../fixtures'; + +let data; +const spinny = '//*[contains(@class, "spinny")]'; +const dashboard = '//at-side-nav-item[contains(@name, "DASHBOARD")]'; + +const sparklineIcon = '//div[contains(@class, "SmartStatus-iconContainer")]'; +const running = '//div[@ng-show="job.status === \'running\'"]'; + +module.exports = { + before: (client, done) => { + const resources = [ + getInventorySource('test-websockets'), + getJobTemplate('test-websockets'), + getProject('test-websockets'), + getWorkflowTemplate('test-websockets'), + ]; + Promise.all(resources) + .then(([inventory, job, project, workflow]) => { + data = { inventory, job, project, workflow }; + done(); + }); + client + .login() + .waitForAngular() + .resizeWindow(1200, 1000); + }, + 'Test job template status updates on dashboard': client => { + client.useXpath().findThenClick(dashboard); + getJob('test-websockets-job-template'); // Automatically starts job + client.expect.element(spinny).to.not.be.visible.before(5000); + client.expect.element(sparklineIcon + '[1]' + running) + .to.be.visible.before(10000); + }, + after: client => { + client.end(); + } +};