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:
|
||||
copilot-setup-steps:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
TESTS_MQTT_BROKER_HOST: localhost
|
||||
TESTS_MQTT_BROKER_PORT: 1883
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
|
||||
13
.github/workflows/tests.yml
vendored
13
.github/workflows/tests.yml
vendored
@@ -68,6 +68,19 @@ jobs:
|
||||
volumes:
|
||||
- ./:/app
|
||||
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:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
|
||||
@@ -48,7 +48,9 @@ setTimeout(
|
||||
const runningUiTestOnCi = os.platform() === 'darwin' ? [] : ['--runningUiTestOnCi']
|
||||
|
||||
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()
|
||||
|
||||
console.log('Starting playwright/electron')
|
||||
@@ -73,7 +75,7 @@ async function doStuff() {
|
||||
|
||||
const scenes = new SceneBuilder()
|
||||
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 sleep(1000)
|
||||
})
|
||||
|
||||
@@ -55,7 +55,8 @@ describe('expandTopic UI Helper - Isolated Test', function () {
|
||||
await page.locator('//label[contains(text(), "Host")]/..//input').waitFor({ timeout: 10000 })
|
||||
|
||||
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
|
||||
console.log('Setup complete')
|
||||
})
|
||||
|
||||
@@ -15,7 +15,9 @@ process.on('unhandledRejection' as any, (error: Error | any) => {
|
||||
const runningUiTestOnCi = os.platform() === 'darwin' ? [] : ['--runningUiTestOnCi']
|
||||
|
||||
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()
|
||||
|
||||
console.log('Starting playwright/electron')
|
||||
@@ -39,7 +41,7 @@ async function doStuff() {
|
||||
await createFakeMousePointer(browser)
|
||||
// Wait for Username input to be visible
|
||||
await browser.locator('//label[contains(text(), "Username")]/..//input')
|
||||
await connectTo('127.0.0.1', browser)
|
||||
await connectTo(brokerHost, browser)
|
||||
stopMqttUpdates()
|
||||
await sleep(1000, true)
|
||||
const heapDump = await getHeapDump(browser)
|
||||
|
||||
@@ -24,7 +24,6 @@ export async function createTestMock(): Promise<mqtt.MqttClient> {
|
||||
console.log(`Connecting to MQTT broker at ${brokerUrl}`)
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
console.log('Connecting to MQTT broker at mqtt://127.0.0.1:1883...')
|
||||
const client = mqtt.connect(brokerUrl, {
|
||||
username: '',
|
||||
password: '',
|
||||
|
||||
@@ -11,7 +11,14 @@ function startServer(): Promise<mqtt.MqttClient> {
|
||||
|
||||
function connectMqtt(): Promise<mqtt.MqttClient> {
|
||||
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: '',
|
||||
password: '',
|
||||
})
|
||||
|
||||
@@ -23,8 +23,10 @@ export interface MockSparkplugClient {
|
||||
}
|
||||
|
||||
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 = {
|
||||
serverUrl: 'tcp://127.0.0.1:1883',
|
||||
serverUrl: `tcp://${brokerHost}:${brokerPort}`,
|
||||
username: '',
|
||||
password: '',
|
||||
groupId: 'Sparkplug Devices',
|
||||
|
||||
Reference in New Issue
Block a user