LP1989195: Use nightwatch for e2e testing angular client
[evergreen-equinox.git] / Open-ILS / src / eg2 / nightwatch / src / staff / acq / provider.spec.ts
1 import { NightwatchBrowser } from 'nightwatch';
2 import { navigateToEgUrl } from '../../utils';
3
4 module.exports = {
5   before: (browser: NightwatchBrowser) => {
6     browser.page.login().loginToWebClient(browser, 'br1breid', 'barbarar1234');
7   },
8
9   after: (browser: NightwatchBrowser) => {
10     browser.end();
11   },
12
13   'Can navigate to provider screen': (browser: NightwatchBrowser) => {
14     browser.page.navbar().click('@acqMenu')
15                          .click('a[href="/eg2/en-US/staff/acq/provider"]')
16                          .assert.textContains('div.lead.alert', 'Providers');
17   },
18   'Can navigate via tabs': (browser: NightwatchBrowser) => {
19     const tabIds = ['purchase_orders', 'invoices', 'details'];
20     navigateToEgUrl('eg2/en-US/staff/acq/provider/4/details', browser);
21     for (const tabId of tabIds) {
22       const selector = '#' + tabId;
23       browser.click(selector)
24              .waitForElementVisible(selector + '-panel')
25              .assert.hasClass(selector, 'active')
26              .assert.attributeEquals(selector, 'aria-selected', 'true');
27     }
28   },
29   'Warning displayed when moving to a different tab, but holdings tab has unsaved changes':
30     (browser: NightwatchBrowser) => {
31       navigateToEgUrl('eg2/en-US/staff/acq/provider/4/holdings', browser);
32       browser.setValue('#holdings-tag', '981')
33              .click('#details')
34              .assert.textMatches('h4.modal-title', 'Unsaved Changes Warning');
35   }
36 };