@Retry(3) library uppush_test; import 'package:test/test.dart'; import 'helper.dart'; void main() { group('uppush', () { late DockerImage image; setUpAll(() async => image = await getDockerImage()); late DockerContainer container; late TestNextcloudClient client; setUp(() async { container = await getDockerContainer(image); client = await getTestClient( container, username: 'admin', password: 'admin', ); }); tearDown(() => container.destroy()); test('Is installed', () async { final response = await client.uppush.check(); expect(response.success, isTrue); }); test('Set keepalive', () async { final response = await client.uppush.setKeepalive(keepalive: 10); expect(response.success, isTrue); }); test('Create device', () async { final response = await client.uppush.createDevice(deviceName: 'Test'); expect(response.success, isTrue); expect(response.deviceId, isNotEmpty); }); test('Delete device', () async { final deviceId = (await client.uppush.createDevice(deviceName: 'Test')).deviceId; final response = await client.uppush.deleteDevice(deviceId: deviceId); expect(response.success, isTrue); }); test('Create app', () async { final deviceId = (await client.uppush.createDevice(deviceName: 'Test')).deviceId; final response = await client.uppush.createApp(deviceId: deviceId, appName: 'Test'); expect(response.success, isTrue); expect(response.token, isNotEmpty); }); test('UnifiedPush discovery', () async { final response = await client.uppush.unifiedpushDiscovery(token: 'example'); expect(response.unifiedpush.version, 1); }); test('Matrix gateway discovery', () async { final response = await client.uppush.gatewayMatrixDiscovery(); expect(response.unifiedpush.gateway, 'matrix'); }); // Deleting an app, sending a notification (also via matrix gateway) or listening for notifications is not possible because redis is not set up }); }