Skip to content

Commit c0f0abc

Browse files
Extract queue features from mgt ui
1 parent c41de74 commit c0f0abc

File tree

4 files changed

+37
-6
lines changed

4 files changed

+37
-6
lines changed

deps/rabbitmq_management/priv/www/js/tmpl/queue.ejs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@
1111
<% } %>
1212

1313
<h3>Details</h3>
14-
<table class="facts facts-l">
14+
<table class="facts facts-l" id="details-queue-table">
1515
<tr>
1616
<th>Features</th>
17-
<td><%= fmt_features(queue) %></td>
17+
<td id="details-queue-features"><%= fmt_features(queue) %></td>
1818
</tr>
1919
<% if(!disable_stats) { %>
2020
<tr>
@@ -77,7 +77,7 @@
7777
<% } %>
7878

7979
<% if(!disable_stats) { %>
80-
<div class="section-hidden">
80+
<div class="section-hidden" id="queue-consumers-section">
8181
<h2 class="updatable">Consumers (<%=(queue.consumer_details.length)%>) </h2>
8282
<div class="hider updatable">
8383
<%= format('consumers', {'mode': 'queue', 'consumers': queue.consumer_details}) %>

selenium/test/pageobjects/BasePage.js

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,33 @@ module.exports = class BasePage {
150150
const select = await new Select(selectable)
151151
return select.selectByValue(vhost)
152152
}
153+
async getTableMini(tableLocator) {
154+
const table = await this.waitForDisplayed(tableLocator)
155+
return this.getTableMiniUsingTableElement(table)
156+
}
157+
async getTableMiniUsingTableElement(table) {
158+
const rows = await table.findElements(By.css('tbody tr'))
159+
let table_model = []
160+
for (let row of rows) {
161+
let columnName = await row.findElement(By.css('th')).getText()
162+
let columnValue = await row.findElement(By.css('td'))
163+
let columnType = await columnValue.getTagName()
164+
switch (columnType) {
165+
case "table":
166+
table_model.push({
167+
"name": columnName,
168+
"value" : await this.getTableMiniUsingTableElement(columnValue)
169+
})
170+
break
171+
default:
172+
table_model.push({
173+
"name" : columnName,
174+
"value" : await columnValue.getText()
175+
})
176+
}
177+
}
178+
return table_model
179+
}
153180
async getTable(tableLocator, firstNColumns, rowClass) {
154181
const table = await this.waitForDisplayed(tableLocator)
155182
const rows = await table.findElements(rowClass == undefined ?

selenium/test/pageobjects/QueuePage.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ const QUEUE_NAME = By.css('div#main h1 b')
77

88
const DELETE_SECTION = By.css('div#main div#delete')
99
const DELETE_BUTTON = By.css('div#main div#delete input[type=submit]')
10+
const FEATURES = By.css('table#details-queue-table td#details-queue-features')
1011

1112
module.exports = class QueuePage extends BasePage {
1213
async isLoaded() {
@@ -15,7 +16,9 @@ module.exports = class QueuePage extends BasePage {
1516
async getName() {
1617
return this.getText(QUEUE_NAME)
1718
}
18-
19+
async getFeatures() {
20+
return this.getTableMini(FEATURES)
21+
}
1922
async ensureDeleteQueueSectionIsVisible() {
2023
await this.click(DELETE_SECTION)
2124
return this.driver.findElement(DELETE_SECTION).isDisplayed()

selenium/test/queuesAndStreams/view-qq-consumers.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
const { By, Key, until, Builder } = require('selenium-webdriver')
22
require('chromedriver')
33
const assert = require('assert')
4-
const { buildDriver, goToHome, captureScreensFor, teardown, delay, goToQueue } = require('../utils')
4+
const { buildDriver, goToHome, captureScreensFor, teardown, log, goToQueue } = require('../utils')
55
const { createQueue, deleteQueue, getManagementUrl, basicAuthorization } = require('../mgt-api')
66

77
const LoginPage = require('../pageobjects/LoginPage')
@@ -46,7 +46,8 @@ describe('Given a quorum queue', function () {
4646
await goToQueue(driver, "/", queueName)
4747
await queuePage.isLoaded()
4848
assert.equal(queueName, await queuePage.getName())
49-
49+
let table = await queuePage.getFeatures()
50+
console.log("Queue features: " + JSON.stringify(table))
5051
})
5152

5253
after(async function () {

0 commit comments

Comments
 (0)