|
@@ -1,10 +1,44 @@
|
|
import { defineConfig } from 'cypress';
|
|
import { defineConfig } from 'cypress';
|
|
|
|
+import mqtt from 'mqtt'
|
|
|
|
+
|
|
|
|
+function logWithTimestamp(message, ...args) {
|
|
|
|
+ const timestamp = new Date().toLocaleString();
|
|
|
|
+ console.log(`[${timestamp}] ${message}`, ...args);
|
|
|
|
+ //cy.log(`[${timestamp}] ${message}`);
|
|
|
|
+}
|
|
|
|
|
|
export default defineConfig({
|
|
export default defineConfig({
|
|
|
|
+ viewportWidth: 1920,
|
|
|
|
+ viewportHeight: 1080,
|
|
e2e: {
|
|
e2e: {
|
|
baseUrl: 'http://localhost:10086/#/pages/index/index', // Adjust this to match your application's base URL
|
|
baseUrl: 'http://localhost:10086/#/pages/index/index', // Adjust this to match your application's base URL
|
|
// specPattern: '__e2e_test__/**/*.spec.ts',
|
|
// specPattern: '__e2e_test__/**/*.spec.ts',
|
|
setupNodeEvents(on, config) {
|
|
setupNodeEvents(on, config) {
|
|
|
|
+ on('task', {
|
|
|
|
+ // 参数:{ broker, topic, payload [, opts] }
|
|
|
|
+ mqttPublish({ broker = 'ws://localhost:8083/mqtt', topic, payload, qos = 0, retain = false }) {
|
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
|
+ console.log('这里执行了吗')
|
|
|
|
+ const client = mqtt.connect(broker)
|
|
|
|
+ client.on('connect', () => {
|
|
|
|
+ client.publish(topic, payload, { qos, retain }, err => {
|
|
|
|
+ // console.log(`发布数据--${payload}===broker:${broker}`)
|
|
|
|
+ logWithTimestamp(`发布数据--${payload}===broker:${broker}`)
|
|
|
|
+ // 关键:等底层 socket 的 buffer 清空
|
|
|
|
+ client.stream.on('drain', () => {
|
|
|
|
+ client.end(true) // true = 强制 flush 再关闭
|
|
|
|
+ logWithTimestamp(`drain发布完成 topic : ${topic}`)
|
|
|
|
+ resolve(null)
|
|
|
|
+ })
|
|
|
|
+ logWithTimestamp(`发布完成 topic : ${topic}`)
|
|
|
|
+ if (err) reject(err)
|
|
|
|
+ else resolve(null)
|
|
|
|
+ });
|
|
|
|
+ })
|
|
|
|
+ client.on('error', reject)
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ })
|
|
return require('./cypress/plugins/index.js')(on, config);
|
|
return require('./cypress/plugins/index.js')(on, config);
|
|
},
|
|
},
|
|
},
|
|
},
|