Configure MQTT broker hostname based on execution context (#993)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com>
This commit is contained in:
3
.github/workflows/copilot-setup-steps.yml
vendored
3
.github/workflows/copilot-setup-steps.yml
vendored
@@ -14,6 +14,9 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
copilot-setup-steps:
|
copilot-setup-steps:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
env:
|
||||||
|
TESTS_MQTT_BROKER_HOST: localhost
|
||||||
|
TESTS_MQTT_BROKER_PORT: 1883
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
|
|||||||
13
.github/workflows/tests.yml
vendored
13
.github/workflows/tests.yml
vendored
@@ -68,6 +68,19 @@ jobs:
|
|||||||
volumes:
|
volumes:
|
||||||
- ./:/app
|
- ./:/app
|
||||||
options: --user root
|
options: --user root
|
||||||
|
env:
|
||||||
|
TESTS_MQTT_BROKER_HOST: mosquitto
|
||||||
|
TESTS_MQTT_BROKER_PORT: 1883
|
||||||
|
services:
|
||||||
|
mosquitto:
|
||||||
|
image: eclipse-mosquitto:2
|
||||||
|
ports:
|
||||||
|
- 1883:1883
|
||||||
|
options: >-
|
||||||
|
--health-cmd "mosquitto_sub -t '$SYS/#' -C 1"
|
||||||
|
--health-interval 10s
|
||||||
|
--health-timeout 5s
|
||||||
|
--health-retries 5
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
|
|||||||
@@ -48,7 +48,9 @@ setTimeout(
|
|||||||
const runningUiTestOnCi = os.platform() === 'darwin' ? [] : ['--runningUiTestOnCi']
|
const runningUiTestOnCi = os.platform() === 'darwin' ? [] : ['--runningUiTestOnCi']
|
||||||
|
|
||||||
async function doStuff() {
|
async function doStuff() {
|
||||||
console.log('Waiting for MQTT Broker on port 1880 (no auth)')
|
const brokerHost = process.env.TESTS_MQTT_BROKER_HOST || '127.0.0.1'
|
||||||
|
const brokerPort = process.env.TESTS_MQTT_BROKER_PORT || '1883'
|
||||||
|
console.log(`Waiting for MQTT Broker at ${brokerHost}:${brokerPort} (no auth)`)
|
||||||
await mockMqtt()
|
await mockMqtt()
|
||||||
|
|
||||||
console.log('Starting playwright/electron')
|
console.log('Starting playwright/electron')
|
||||||
@@ -73,7 +75,7 @@ async function doStuff() {
|
|||||||
|
|
||||||
const scenes = new SceneBuilder()
|
const scenes = new SceneBuilder()
|
||||||
await scenes.record('connect', async () => {
|
await scenes.record('connect', async () => {
|
||||||
await connectTo('127.0.0.1', page)
|
await connectTo(brokerHost, page)
|
||||||
await MockSparkplug.run() // Start sparkplug client after connect or birth topics will be missed
|
await MockSparkplug.run() // Start sparkplug client after connect or birth topics will be missed
|
||||||
await sleep(1000)
|
await sleep(1000)
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -55,7 +55,8 @@ describe('expandTopic UI Helper - Isolated Test', function () {
|
|||||||
await page.locator('//label[contains(text(), "Host")]/..//input').waitFor({ timeout: 10000 })
|
await page.locator('//label[contains(text(), "Host")]/..//input').waitFor({ timeout: 10000 })
|
||||||
|
|
||||||
console.log('Connecting to MQTT broker...')
|
console.log('Connecting to MQTT broker...')
|
||||||
await connectTo('127.0.0.1', page)
|
const brokerHost = process.env.TESTS_MQTT_BROKER_HOST || '127.0.0.1'
|
||||||
|
await connectTo(brokerHost, page)
|
||||||
await sleep(3000) // Give time for topics to load
|
await sleep(3000) // Give time for topics to load
|
||||||
console.log('Setup complete')
|
console.log('Setup complete')
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -15,7 +15,9 @@ process.on('unhandledRejection' as any, (error: Error | any) => {
|
|||||||
const runningUiTestOnCi = os.platform() === 'darwin' ? [] : ['--runningUiTestOnCi']
|
const runningUiTestOnCi = os.platform() === 'darwin' ? [] : ['--runningUiTestOnCi']
|
||||||
|
|
||||||
async function doStuff() {
|
async function doStuff() {
|
||||||
console.log('Waiting for MQTT Broker on port 1880 (no auth)')
|
const brokerHost = process.env.TESTS_MQTT_BROKER_HOST || '127.0.0.1'
|
||||||
|
const brokerPort = process.env.TESTS_MQTT_BROKER_PORT || '1883'
|
||||||
|
console.log(`Waiting for MQTT Broker at ${brokerHost}:${brokerPort} (no auth)`)
|
||||||
await mockMqtt()
|
await mockMqtt()
|
||||||
|
|
||||||
console.log('Starting playwright/electron')
|
console.log('Starting playwright/electron')
|
||||||
@@ -39,7 +41,7 @@ async function doStuff() {
|
|||||||
await createFakeMousePointer(browser)
|
await createFakeMousePointer(browser)
|
||||||
// Wait for Username input to be visible
|
// Wait for Username input to be visible
|
||||||
await browser.locator('//label[contains(text(), "Username")]/..//input')
|
await browser.locator('//label[contains(text(), "Username")]/..//input')
|
||||||
await connectTo('127.0.0.1', browser)
|
await connectTo(brokerHost, browser)
|
||||||
stopMqttUpdates()
|
stopMqttUpdates()
|
||||||
await sleep(1000, true)
|
await sleep(1000, true)
|
||||||
const heapDump = await getHeapDump(browser)
|
const heapDump = await getHeapDump(browser)
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ export async function createTestMock(): Promise<mqtt.MqttClient> {
|
|||||||
console.log(`Connecting to MQTT broker at ${brokerUrl}`)
|
console.log(`Connecting to MQTT broker at ${brokerUrl}`)
|
||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
console.log('Connecting to MQTT broker at mqtt://127.0.0.1:1883...')
|
|
||||||
const client = mqtt.connect(brokerUrl, {
|
const client = mqtt.connect(brokerUrl, {
|
||||||
username: '',
|
username: '',
|
||||||
password: '',
|
password: '',
|
||||||
|
|||||||
@@ -11,7 +11,14 @@ function startServer(): Promise<mqtt.MqttClient> {
|
|||||||
|
|
||||||
function connectMqtt(): Promise<mqtt.MqttClient> {
|
function connectMqtt(): Promise<mqtt.MqttClient> {
|
||||||
return new Promise(resolve => {
|
return new Promise(resolve => {
|
||||||
const client = mqtt.connect('mqtt://127.0.0.1:1883', {
|
// Use TESTS_MQTT_BROKER_HOST from environment, default to localhost
|
||||||
|
const brokerHost = process.env.TESTS_MQTT_BROKER_HOST || '127.0.0.1'
|
||||||
|
const brokerPort = process.env.TESTS_MQTT_BROKER_PORT || '1883'
|
||||||
|
const brokerUrl = `mqtt://${brokerHost}:${brokerPort}`
|
||||||
|
|
||||||
|
console.log(`Connecting to MQTT broker at ${brokerUrl}`)
|
||||||
|
|
||||||
|
const client = mqtt.connect(brokerUrl, {
|
||||||
username: '',
|
username: '',
|
||||||
password: '',
|
password: '',
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -23,8 +23,10 @@ export interface MockSparkplugClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const sample = (function () {
|
const sample = (function () {
|
||||||
|
const brokerHost = process.env.TESTS_MQTT_BROKER_HOST || '127.0.0.1'
|
||||||
|
const brokerPort = process.env.TESTS_MQTT_BROKER_PORT || '1883'
|
||||||
let config = {
|
let config = {
|
||||||
serverUrl: 'tcp://127.0.0.1:1883',
|
serverUrl: `tcp://${brokerHost}:${brokerPort}`,
|
||||||
username: '',
|
username: '',
|
||||||
password: '',
|
password: '',
|
||||||
groupId: 'Sparkplug Devices',
|
groupId: 'Sparkplug Devices',
|
||||||
|
|||||||
Reference in New Issue
Block a user