feat: Initial commit of Forge package manager (Flutter + Rust)
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:forge/src/rust/api/packages.dart';
|
||||
import 'package:forge/src/services/batch_install_service.dart';
|
||||
import 'package:forge/src/services/catalog_service.dart';
|
||||
|
||||
void main() {
|
||||
group('BatchInstallService Tests', () {
|
||||
test('Correctly identifies package IDs and separates backends', () {
|
||||
final batch = BatchInstallService.instance;
|
||||
batch.clear();
|
||||
|
||||
final vlc = CatalogApp(
|
||||
id: 'vlc',
|
||||
name: 'VLC Media Player',
|
||||
summary: 'Media player',
|
||||
category: 'Media',
|
||||
backend: BackendType.pacman,
|
||||
fallbackIcon: CupertinoIcons.play,
|
||||
);
|
||||
|
||||
final vscode = CatalogApp(
|
||||
id: 'visual-studio-code-bin',
|
||||
name: 'Visual Studio Code',
|
||||
summary: 'IDE',
|
||||
category: 'Development',
|
||||
backend: BackendType.aur,
|
||||
fallbackIcon: CupertinoIcons.chevron_left_slash_chevron_right,
|
||||
);
|
||||
|
||||
final bottles = CatalogApp(
|
||||
id: 'com.usebottles.bottles',
|
||||
name: 'Bottles',
|
||||
summary: 'Wine prefix manager',
|
||||
category: 'Utilities',
|
||||
backend: BackendType.flatpak,
|
||||
fallbackIcon: CupertinoIcons.tuningfork,
|
||||
);
|
||||
|
||||
batch.add(vlc);
|
||||
batch.add(vscode);
|
||||
batch.add(bottles);
|
||||
|
||||
expect(batch.count, 3);
|
||||
expect(batch.pacmanApps.first.id, 'vlc');
|
||||
expect(batch.aurApps.first.id, 'visual-studio-code-bin');
|
||||
expect(batch.flatpakApps.first.id, 'com.usebottles.bottles');
|
||||
|
||||
batch.clear();
|
||||
expect(batch.isEmpty, isTrue);
|
||||
});
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user