Files
FlClash/test/setup_test.dart
T

76 lines
2.0 KiB
Dart
Raw Normal View History

2026-02-02 10:14:13 +08:00
import 'package:test/test.dart';
import '../setup.dart' as setup;
void main() {
group('setup.dart', () {
test('parses -v as verbose mode', () {
final results = setup.createSetupArgParser().parse(['android', '-v']);
expect(results['verbose'], isTrue);
expect(results.rest, ['android']);
});
2026-08-05 10:57:40 +08:00
test('accepts dev application environment', () {
final results = setup.createSetupArgParser().parse([
'android',
'--env',
'dev',
]);
expect(results['env'], 'dev');
});
test('Flutter build environment does not depend on Core SHA256', () {
expect(setup.createBuildEnvironment('dev'), {'APP_ENV': 'dev'});
});
2026-02-02 10:14:13 +08:00
test('omits verbose from flutter build args by default', () {
final args = setup.createFlutterBuildArgs(
platform: 'android',
verbose: false,
);
expect(args, ['dart-define-from-file=env.json', 'split-per-abi']);
});
test('adds verbose to flutter build args with -v', () {
final args = setup.createFlutterBuildArgs(
platform: 'android',
verbose: true,
);
expect(args, [
'verbose',
'dart-define-from-file=env.json',
'split-per-abi',
]);
});
test('refuses to package while a native build hook is skipped', () {
const pubspec = '''
hooks:
user_defines:
setup:
build_assets: false
rust_api:
build_assets: true
''';
expect(setup.packagesNotBuildingAssets(pubspec), ['setup']);
expect(setup.packagesNotBuildingAssets('name: x\n'), isEmpty);
});
test('packages every Linux format on every architecture', () {
expect(setup.createPackageTargets('linux', null), 'deb,appimage,rpm');
expect(setup.createPackageTargets('linux', 'deb'), 'deb');
expect(setup.createPackageTargets('macos', null), 'dmg');
});
test('downloads the appimagetool build matching the host', () {
expect(setup.appImageToolArch('arm64'), 'aarch64');
expect(setup.appImageToolArch('amd64'), 'x86_64');
});
2026-02-02 10:14:13 +08:00
});
}