/// Dart Mix Payloads Receiver Test /// Tests the smartreceive function with mixed payload types /// /// This test mirrors test_julia_mix_payloads_receiver.jl and test_js_mix_payloads_receiver.js /// and demonstrates that any combination and any number of mixed content can be received correctly. import 'dart:io'; import 'package:http/http.dart' as http; import 'package:uuid/uuid.dart'; // Add parent directory to path import 'package:natsbridge/natsbridge.dart' as natsbridge; const TEST_SUBJECT = '/natsbridge'; const TEST_BROKER_URL = String.fromEnvironment( 'NATS_URL', defaultValue: 'nats.yiem.cc', ); const TEST_FILESERVER_URL = String.fromEnvironment( 'FILESERVER_URL', defaultValue: 'http://192.168.88.104:8080', ); void logTrace(String message) { final timestamp = DateTime.now().toUtc().toIsoString(); print('[$timestamp] [Correlation: $correlationId] $message'); } Future runTest() async { print('=== Dart Mix Payloads Receiver Test ===\n'); final uuid = const Uuid(); final correlationId = uuid.v4(); print('Correlation ID: $correlationId'); print('Subject: $TEST_SUBJECT'); print('Broker URL: $TEST_BROKER_URL'); print('Fileserver URL: $TEST_FILESERVER_URL\n'); bool testPassed = true; int messagesReceived = 0; final receivedPayloads = []; try { // Note: This is a receiver test that waits for messages // You need to run the sender test first: dart test/test_dart_mix_payloads_sender.dart print('This receiver test requires a running NATS server and a message sender.'); print('\nTo run this test:'); print('1. Start NATS server: nats-server'); print('2. Run sender: dart test/test_dart_mix_payloads_sender.dart'); print('3. This receiver will wait for messages on subject: $TEST_SUBJECT\n'); print('Waiting for messages (timeout: 180 seconds)...'); // For now, just print a message about how to run the test // In a real implementation, you would connect to NATS and subscribe to messages print('\n=== Test Instructions ==='); print('1. Start NATS server: nats-server'); print('2. Run sender: dart test/test_dart_mix_payloads_sender.dart'); print('3. This receiver will wait for messages\n'); print('Test completed. This is a receiver test that waits for messages from the sender.'); print('Run the sender test first to send messages to this receiver.'); } catch (error) { print('\n❌ Test failed with error: $error'); print('$error'); exit(1); } } void main() { runTest(); }