olivetin/integration-tests/test/onlyDashboards.mjs

52 lines
1.7 KiB
JavaScript

import { describe, it, before, after } from 'mocha'
import { assert, expect } from 'chai'
import { By } from 'selenium-webdriver'
import {
getRootAndWait,
getActionButtons,
getNavigationLinks,
openSidebar,
closeSidebar,
takeScreenshotOnFailure,
} from '../lib/elements.js'
describe('config: onlyDashboards', function () {
before(async function () {
await runner.start('onlyDashboards')
})
after(async () => {
await runner.stop()
})
afterEach(function () {
takeScreenshotOnFailure(this.currentTest, webdriver);
});
it('When there are only dashboards, actions are hidden', async function () {
await getRootAndWait()
await openSidebar()
const navLinks = await getNavigationLinks()
expect(navLinks).to.not.be.empty
for (const link of navLinks) {
console.log(await link.getAttribute('title'))
}
const firstLink = await navLinks[0];
assert.isNotNull(firstLink, 'Actions link should not be null')
assert.equal(await firstLink.getAttribute('title'), 'My Dashboard', 'First link should have the title "My Dashboard"')
const firstDashboardLink = await webdriver.findElement(By.css('li[title="My Dashboard"]'), 'The first dashboard link should be present')
assert.isNotNull(firstDashboardLink, 'First dashboard link should not be null')
assert.isTrue(await firstDashboardLink.isDisplayed(), 'First dashboard link should be displayed')
const actionButtonsOnDashboard = await getActionButtons()
assert.isArray(actionButtonsOnDashboard, 'Action buttons on dashboard should be an array')
assert.lengthOf(actionButtonsOnDashboard, 3, 'Action buttons on dashboard should have 3 buttons')
})
})