Files
FlClash/test/tool/packaging_config_test.dart
T
chen08209 96fcb9ab5e chore(agents,tool): rebuild agent config, lint gates, CI, and release tooling
Rework .agents/, Claude/Codex config, CI workflows, lint gates and
lint-rule tests, and the release/changelog tooling. The 5% comment
density gate stays diff-scoped inside git hooks, where GIT_DIR outranks
the -C the gate uses to locate the repository. The tray icon generator
writes multi-size ICO files from the SVG sources into the per-platform
tray asset directories. The custom code-review subagents are gone: the
built-in /code-review never dispatched them, and the subagent model now
lives in a user-level setting outside the repository.

The Makefile, build_config.yaml and CI hand the Core and Helper builds to
the setup build hook, so the buildkit launchers go, and setup.dart
packages AppImage and rpm on arm64 with flutter_distributor pinned to the
fork tag that normalizes packaging permissions.

Changelog: skip
2026-09-10 12:42:52 +08:00

45 lines
1.3 KiB
Dart

import 'dart:io';
import 'package:flutter_test/flutter_test.dart';
import 'package:yaml/yaml.dart';
void main() {
group('Linux packaging teardown', () {
for (final format in ['deb', 'rpm']) {
test('$format removes the Helper unit only on a real uninstall', () {
final config =
loadYaml(
File(
'linux/packaging/$format/make_config.yaml',
).readAsStringSync(),
)
as YamlMap;
final scripts = (config['postuninstall_scripts'] as YamlList)
.cast<String>();
expect(scripts.first, contains('exit 0'));
expect(
scripts,
contains('rm -f /etc/systemd/system/flclash-helper.service'),
);
expect(
scripts.any((script) => script.contains('systemctl daemon-reload')),
isTrue,
);
});
}
});
test('rpm keeps the Core bytes the Helper was built against', () {
final config =
loadYaml(
File('linux/packaging/rpm/make_config.yaml').readAsStringSync(),
)
as YamlMap;
final macros = (config['spec_macros'] as YamlList).cast<String>();
expect(macros, contains('%global debug_package %{nil}'));
expect(macros, contains('%global __os_install_post %{nil}'));
});
}