UNPKG

aws-crt

Version:

NodeJS/browser bindings to the aws-c-* libraries

58 lines (52 loc) 2.33 kB
/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ import * as test_env from "@test/test_env" import { ClientBootstrap, SocketOptions } from './io'; import { MqttClient, MqttConnectionConfig } from './mqtt'; import { v4 as uuid } from 'uuid'; jest.setTimeout(10000); async function test_connection(config: MqttConnectionConfig, client: MqttClient) { const connection = client.new_connection(config); const promise = new Promise(async (resolve, reject) => { connection.on('connect', async (session_present) => { const disconnected = connection.disconnect(); await expect(disconnected).resolves.toBeUndefined(); if (session_present) { reject("Session present"); } }); connection.on('error', (error) => { reject(error); }) connection.on('disconnect', () => { resolve(true); }) const connected = connection.connect(); await expect(connected).resolves.toBeDefined(); }); await expect(promise).resolves.toBeTruthy(); } test_env.conditional_test(test_env.AWS_IOT_ENV.mqtt311_is_valid_ws_mqtt())('MQTT311 WS Connection - no credentials', async () => { const config : MqttConnectionConfig = { client_id : `node-mqtt-unit-test-${uuid()}`, host_name: test_env.AWS_IOT_ENV.MQTT311_WS_MQTT_HOST, port: parseInt(test_env.AWS_IOT_ENV.MQTT311_WS_MQTT_PORT), clean_session: true, socket_options: new SocketOptions() } await test_connection(config, new MqttClient(new ClientBootstrap())); }); test_env.conditional_test(test_env.AWS_IOT_ENV.mqtt311_is_valid_ws_auth_mqtt())('MQTT311 WS Connection - basic auth', async () => { const config : MqttConnectionConfig = { client_id : `node-mqtt-unit-test-${uuid()}`, host_name: test_env.AWS_IOT_ENV.MQTT311_WS_AUTH_MQTT_HOST, port: parseInt(test_env.AWS_IOT_ENV.MQTT311_WS_AUTH_MQTT_PORT), clean_session: true, username: test_env.AWS_IOT_ENV.MQTT311_BASIC_AUTH_USERNAME, password: test_env.AWS_IOT_ENV.MQTT311_BASIC_AUTH_PASSWORD, socket_options: new SocketOptions() } await test_connection(config, new MqttClient(new ClientBootstrap())); });