@Tags(['integration']) library; import 'dart:typed_data'; import 'package:swarm/swarm.dart'; import 'package:test/test.dart'; import 'test_env.dart'; // Well-known test key — obviously not a real user key. const _privKey = '0000000000000000000000000000000000000000000000000000000000000001'; const _kAppName = 'xfay'; // Minimal valid JPEG (SOI marker only — enough for R2 to store). final _kTestBytes = Uint8List.fromList([0xFF, 0xD8, 0xFF, 0xD9]); const _kContentType = 'image/jpeg'; void main() { final env = loadEnv(); final appSecret = env['XFAY_APP_SECRET'] ?? ''; late FileUploadActor actor; setUp(() { actor = FileUploadActor( privateKey: _privKey, appName: _kAppName, appSecret: appSecret, ); }); tearDown(() => actor.close()); test('register publishes kind 5392 to relay without error', () async { expect( await actor.handle(const RegisterForUpload()), isA(), ); }); test('upload returns a CDN url under the xfay app path', () async { final result = await actor.handle( UploadFile(bytes: _kTestBytes, contentType: _kContentType), ); expect(result, isA()); final url = (result as FileUploaded).cdnUrl; expect(url, startsWith('https://cdn.otherwhere.app/xfay/')); }); }