112 lines
3.5 KiB
JavaScript
112 lines
3.5 KiB
JavaScript
const { By, Key, until, Builder } = require('selenium-webdriver')
|
|
require('chromedriver')
|
|
const assert = require('assert')
|
|
const { buildDriver, goToHome, captureScreensFor, teardown, doWhile, log } = require('../utils')
|
|
|
|
const LoginPage = require('../pageobjects/LoginPage')
|
|
const OverviewPage = require('../pageobjects/OverviewPage')
|
|
const ExchangesPage = require('../pageobjects/ExchangesPage')
|
|
const ExchangePage = require('../pageobjects/ExchangePage')
|
|
|
|
const DISABLE_METRICS = process.env.DISABLE_METRICS || false
|
|
|
|
describe('Exchange management', function () {
|
|
let login
|
|
let exchanges
|
|
let exchange
|
|
let overview
|
|
let captureScreen
|
|
|
|
before(async function () {
|
|
driver = buildDriver()
|
|
await goToHome(driver)
|
|
login = new LoginPage(driver)
|
|
overview = new OverviewPage(driver)
|
|
exchanges = new ExchangesPage(driver)
|
|
exchange = new ExchangePage(driver)
|
|
captureScreen = captureScreensFor(driver, __filename)
|
|
|
|
await login.login('guest', 'guest')
|
|
if (!await overview.isLoaded()) {
|
|
throw new Error('Failed to login')
|
|
}
|
|
overview.clickOnExchangesTab()
|
|
})
|
|
|
|
it('display summary of exchanges', async function () {
|
|
assert.equal("All exchanges (14)", await exchanges.getPagingSectionHeaderText())
|
|
})
|
|
|
|
it('list all default exchanges', async function () {
|
|
let actual_table = await exchanges.getExchangesTable(3)
|
|
|
|
let expected_table = [
|
|
["/", "(AMQP default)", "direct"],
|
|
["/", "amq.direct", "direct"],
|
|
["/", "amq.fanout", "fanout"],
|
|
["/", "amq.headers", "headers"],
|
|
["/", "amq.match", "headers"],
|
|
["/", "amq.rabbitmq.trace", "topic"],
|
|
["/", "amq.topic", "topic"],
|
|
|
|
["other", "(AMQP default)", "direct"],
|
|
["other", "amq.direct", "direct"],
|
|
["other", "amq.fanout", "fanout"],
|
|
["other", "amq.headers", "headers"],
|
|
["other", "amq.match", "headers"],
|
|
["other", "amq.rabbitmq.trace", "topic"],
|
|
["other", "amq.topic", "topic"]
|
|
]
|
|
|
|
assert.deepEqual(actual_table, expected_table)
|
|
})
|
|
|
|
it('view one exchange', async function () {
|
|
await exchanges.clickOnExchange("%2F", "amq.fanout")
|
|
await exchange.isLoaded()
|
|
assert.equal("amq.fanout", await exchange.getName())
|
|
})
|
|
|
|
it('exchange selectable columns', async function () {
|
|
await overview.clickOnOverviewTab()
|
|
await overview.clickOnExchangesTab()
|
|
await doWhile(async function() { return exchanges.getExchangesTable() },
|
|
function(table) {
|
|
return table.length > 0
|
|
})
|
|
|
|
await exchanges.clickOnSelectTableColumns()
|
|
let table = await exchanges.getSelectableTableColumns()
|
|
|
|
let overviewGroup = {
|
|
"name" : "Overview:",
|
|
"columns": [
|
|
{"name:":"Type","id":"checkbox-exchanges-type"},
|
|
{"name:":"Features (with policy)","id":"checkbox-exchanges-features"},
|
|
{"name:":"Features (no policy)","id":"checkbox-exchanges-features_no_policy"},
|
|
{"name:":"Policy","id":"checkbox-exchanges-policy"}
|
|
]
|
|
}
|
|
assert.equal(JSON.stringify(table[0]), JSON.stringify(overviewGroup))
|
|
|
|
if (!DISABLE_METRICS) {
|
|
assert.equal(table.length, 2)
|
|
|
|
let messageRatesGroup = {
|
|
"name" : "Message rates:",
|
|
"columns": [
|
|
{"name:":"rate in","id":"checkbox-exchanges-rate-in"},
|
|
{"name:":"rate out","id":"checkbox-exchanges-rate-out"}
|
|
]
|
|
}
|
|
assert.equal(JSON.stringify(table[1]), JSON.stringify(messageRatesGroup))
|
|
}
|
|
|
|
})
|
|
|
|
|
|
after(async function () {
|
|
await teardown(driver, this, captureScreen)
|
|
})
|
|
})
|