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',
|
|
|
|
|
]);
|
|
|
|
|
});
|
2026-09-05 20:09:26 +08:00
|
|
|
|
|
|
|
|
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
|
|
|
});
|
|
|
|
|
}
|