mirror of
https://gitlab.com/foxixus/neomovies_mobile.git
synced 2025-10-27 22:38:50 +05:00
83 lines
3.1 KiB
Dart
83 lines
3.1 KiB
Dart
|
|
import 'dart:io';
|
|||
|
|
|
|||
|
|
import 'package:flutter_test/flutter_test.dart';
|
|||
|
|
|
|||
|
|
void main() {
|
|||
|
|
group('CI Environment Tests', () {
|
|||
|
|
test('should detect GitHub Actions environment', () {
|
|||
|
|
final isGitHubActions = Platform.environment['GITHUB_ACTIONS'] == 'true';
|
|||
|
|
final isCI = Platform.environment['CI'] == 'true';
|
|||
|
|
final runnerOS = Platform.environment['RUNNER_OS'];
|
|||
|
|
|
|||
|
|
print('Environment Variables:');
|
|||
|
|
print(' GITHUB_ACTIONS: ${Platform.environment['GITHUB_ACTIONS']}');
|
|||
|
|
print(' CI: ${Platform.environment['CI']}');
|
|||
|
|
print(' RUNNER_OS: $runnerOS');
|
|||
|
|
print(' Platform: ${Platform.operatingSystem}');
|
|||
|
|
|
|||
|
|
if (isGitHubActions || isCI) {
|
|||
|
|
print('✅ Running in CI/GitHub Actions environment');
|
|||
|
|
expect(isCI, isTrue, reason: 'CI environment variable should be set');
|
|||
|
|
|
|||
|
|
if (isGitHubActions) {
|
|||
|
|
expect(runnerOS, isNotNull, reason: 'RUNNER_OS should be set in GitHub Actions');
|
|||
|
|
print(' GitHub Actions Runner OS: $runnerOS');
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
print('🔧 Running in local development environment');
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// Test should always pass regardless of environment
|
|||
|
|
expect(Platform.operatingSystem, isNotEmpty);
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
test('should have correct Dart/Flutter environment in CI', () {
|
|||
|
|
final dartVersion = Platform.version;
|
|||
|
|
print('Dart version: $dartVersion');
|
|||
|
|
|
|||
|
|
// In CI, we should have Dart available
|
|||
|
|
expect(dartVersion, isNotEmpty);
|
|||
|
|
expect(dartVersion, contains('Dart'));
|
|||
|
|
|
|||
|
|
// Check if running in CI and validate expected environment
|
|||
|
|
final isCI = Platform.environment['CI'] == 'true';
|
|||
|
|
if (isCI) {
|
|||
|
|
print('✅ Dart environment validated in CI');
|
|||
|
|
|
|||
|
|
// CI should have these basic characteristics
|
|||
|
|
expect(Platform.operatingSystem, anyOf('linux', 'macos', 'windows'));
|
|||
|
|
|
|||
|
|
// GitHub Actions typically runs on Linux
|
|||
|
|
final runnerOS = Platform.environment['RUNNER_OS'];
|
|||
|
|
if (runnerOS == 'Linux') {
|
|||
|
|
expect(Platform.operatingSystem, 'linux');
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
test('should handle network connectivity gracefully', () async {
|
|||
|
|
// Simple network test that won't fail in restricted environments
|
|||
|
|
try {
|
|||
|
|
// Test with a reliable endpoint
|
|||
|
|
final socket = await Socket.connect('8.8.8.8', 53, timeout: const Duration(seconds: 5));
|
|||
|
|
socket.destroy();
|
|||
|
|
print('✅ Network connectivity available');
|
|||
|
|
} catch (e) {
|
|||
|
|
print('ℹ️ Limited network connectivity: $e');
|
|||
|
|
// Don't fail the test - some CI environments have restricted network
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// Test should always pass
|
|||
|
|
expect(true, isTrue);
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
test('should validate test infrastructure', () {
|
|||
|
|
// Basic test framework validation
|
|||
|
|
expect(testWidgets, isNotNull, reason: 'Flutter test framework should be available');
|
|||
|
|
expect(setUp, isNotNull, reason: 'Test setup functions should be available');
|
|||
|
|
expect(tearDown, isNotNull, reason: 'Test teardown functions should be available');
|
|||
|
|
|
|||
|
|
print('✅ Test infrastructure validated');
|
|||
|
|
});
|
|||
|
|
});
|
|||
|
|
}
|