Skip to content

Commit 9394865

Browse files
Refactor mqtt logic to mqtt.js
And move autodelete-qos0-queue to another PR
1 parent 5195913 commit 9394865

File tree

3 files changed

+46
-177
lines changed

3 files changed

+46
-177
lines changed

selenium/test/connections/mqtt/list-connections.js

Lines changed: 4 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ const { By, Key, until, Builder } = require('selenium-webdriver')
22
require('chromedriver')
33
const assert = require('assert')
44
const { buildDriver, goToHome, captureScreensFor, teardown, doUntil } = require('../../utils')
5-
const mqtt = require('mqtt')
5+
const { openConnection, getConnectionOptions } = require('../../mqtt')
66

77
const LoginPage = require('../../pageobjects/LoginPage')
88
const OverviewPage = require('../../pageobjects/OverviewPage')
@@ -13,15 +13,6 @@ describe('List MQTT connections', function () {
1313
let login
1414
let overview
1515
let captureScreen
16-
let mqttOptions
17-
18-
let mqttProtocol = process.env.MQTT_PROTOCOL || 'mqtt'
19-
let usemtls = process.env.MQTT_USE_MTLS || false
20-
let rabbit = process.env.RABBITMQ_HOSTNAME || 'localhost'
21-
let mqttUrl = process.env.RABBITMQ_MQTT_URL || "mqtt://" + rabbit + ":1883"
22-
let username = process.env.RABBITMQ_AMQP_USERNAME || 'management'
23-
let password = process.env.RABBITMQ_AMQP_PASSWORD || 'guest'
24-
let client_id = process.env.RABBITMQ_AMQP_USERNAME || 'selenium-client'
2516
let mqttClient
2617

2718
before(async function () {
@@ -36,34 +27,12 @@ describe('List MQTT connections', function () {
3627
if (!await overview.isLoaded()) {
3728
throw new Error('Failed to login')
3829
}
39-
40-
mqttOptions = {
41-
clientId: client_id,
42-
protocolId: 'MQTT',
43-
protocol: mqttProtocol,
44-
protocolVersion: 5,
45-
keepalive: 10000,
46-
clean: false,
47-
reconnectPeriod: '1000',
48-
properties: {
49-
sessionExpiryInterval: 0
50-
}
51-
}
52-
if (mqttProtocol == 'mqtts') {
53-
mqttOptions["ca"] = [fs.readFileSync(process.env.RABBITMQ_CERTS + "/ca_rabbitmq_certificate.pem")]
54-
}
55-
if (usemtls) {
56-
mqttOptions["cert"] = fs.readFileSync(process.env.RABBITMQ_CERTS + "/client_rabbitmq_certificate.pem")
57-
mqttOptions["key"] = fs.readFileSync(process.env.RABBITMQ_CERTS + "/client_rabbitmq_key.pem")
58-
} else {
59-
mqttOptions["username"] = username
60-
mqttOptions["password"] = password
61-
}
62-
30+
6331
})
6432

6533
it('mqtt 5.0 connection', async function () {
66-
mqttClient = mqtt.connect(mqttUrl, mqttOptions)
34+
mqttClient = openConnection(getConnectionOptions())
35+
6736
let connected = new Promise((resolve, reject) => {
6837
mqttClient.on('error', function(err) {
6938
reject(err)

selenium/test/mqtt.js

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
const mqtt = require('mqtt')
2+
3+
module.exports = {
4+
5+
openConnection: (mqttOptions) => {
6+
let rabbit = process.env.RABBITMQ_HOSTNAME || 'localhost'
7+
let mqttUrl = process.env.RABBITMQ_MQTT_URL || "mqtt://" + rabbit + ":1883"
8+
return mqtt.connect(mqttUrl, mqttOptions)
9+
},
10+
getConnectionOptions: () => {
11+
let mqttProtocol = process.env.MQTT_PROTOCOL || 'mqtt'
12+
let usemtls = process.env.MQTT_USE_MTLS || false
13+
let username = process.env.RABBITMQ_AMQP_USERNAME || 'management'
14+
let password = process.env.RABBITMQ_AMQP_PASSWORD || 'guest'
15+
let client_id = process.env.RABBITMQ_AMQP_USERNAME || 'selenium-client'
16+
17+
mqttOptions = {
18+
clientId: client_id,
19+
protocolId: 'MQTT',
20+
protocol: mqttProtocol,
21+
protocolVersion: 5,
22+
keepalive: 10000,
23+
clean: false,
24+
reconnectPeriod: '1000',
25+
properties: {
26+
sessionExpiryInterval: 0
27+
}
28+
}
29+
30+
if (mqttProtocol == 'mqtts') {
31+
mqttOptions["ca"] = [fs.readFileSync(process.env.RABBITMQ_CERTS + "/ca_rabbitmq_certificate.pem")]
32+
}
33+
if (usemtls) {
34+
mqttOptions["cert"] = fs.readFileSync(process.env.RABBITMQ_CERTS + "/client_rabbitmq_certificate.pem")
35+
mqttOptions["key"] = fs.readFileSync(process.env.RABBITMQ_CERTS + "/client_rabbitmq_key.pem")
36+
} else {
37+
mqttOptions["username"] = username
38+
mqttOptions["password"] = password
39+
}
40+
return mqttOptions
41+
}
42+
}

selenium/test/queuesAndStreams/autodelete-mqtt-qos0.js

Lines changed: 0 additions & 142 deletions
This file was deleted.

0 commit comments

Comments
 (0)