Use fucking graphs again

This commit is contained in:
2025-03-18 20:42:22 +01:00
parent efe74b404e
commit a6cfd3e16e
4 changed files with 556 additions and 25 deletions

View File

@@ -245,7 +245,7 @@ void main() {
final result = list.loadRequired();
// We say the mods are incompatible but load them anyway, who are we to decide what isn't loaded?
final expected = ['incompatible', 'harmony', 'prepatcher'];
final expected = ['harmony', 'prepatcher', 'incompatible'];
expect(result.errors, isNotEmpty);
expect(result.errors.any((e) => e.contains('incompatible')), isTrue);
expect(result.errors.any((e) => e.contains('harmony')), isTrue);
@@ -302,7 +302,7 @@ void main() {
// We try to not disable mods...... But cyclic dependencies are just hell
// Can not handle it
final expected = ['modB', 'modA', 'modC'];
final expected = [];
expect(result.errors, isNotEmpty);
expect(result.errors.any((e) => e.contains('modA')), isTrue);
expect(result.errors.any((e) => e.contains('modB')), isTrue);
@@ -487,7 +487,7 @@ void main() {
list.enableAll();
final result = list.generateLoadOrder();
final expected = ['modA', 'modB'];
final expected = ['modB', 'modA'];
expect(result.errors, isNotEmpty);
expect(result.errors.any((e) => e.contains('missing1')), isTrue);
expect(result.errors.any((e) => e.contains('missing2')), isTrue);
@@ -548,7 +548,7 @@ void main() {
list.enableAll();
final result = list.generateLoadOrder();
final expected = ['modA', 'modB'];
final expected = ['modB', 'modA'];
expect(result.errors, isNotEmpty);
expect(result.errors.any((e) => e.contains('incompatible')), isTrue);
expect(result.errors.any((e) => e.contains('modA')), isTrue);
@@ -570,7 +570,7 @@ void main() {
list.enableAll();
final result = list.generateLoadOrder();
final expected = ['modA', 'modB'];
final expected = ['modB', 'modA'];
expect(result.errors, isNotEmpty);
expect(result.errors.any((e) => e.contains('missingDep')), isTrue);
expect(result.errors.any((e) => e.contains('incompatible')), isTrue);
@@ -653,7 +653,7 @@ void main() {
list.enableAll();
final result = list.generateLoadOrder();
final expected = ['modA', 'modB'];
final expected = ['modB', 'modA'];
expect(result.errors, isEmpty);
expect(result.loadOrder, equals(expected));
@@ -691,7 +691,7 @@ void main() {
list.enableAll();
final result = list.generateLoadOrder();
final expected = ['modA', 'modB'];
final expected = ['modB', 'modA'];
expect(result.errors, isNotEmpty);
expect(result.errors.any((e) => e.contains('nonExistentMod')), isTrue);
@@ -778,7 +778,6 @@ void main() {
final result = list.generateLoadOrder();
final expected = ['existingMod', 'modA'];
// Should still generatdeequals(mopected)
expect(result.loadOrder.contains('existingMod'), isTrue);
@@ -809,7 +808,8 @@ void main() {
};
list.enableAll();
final expected = ['modA']; final result = list.generateLoadOrder();
final expected = ['modA'];
final result = list.generateLoadOrder();
// Should report the missing dependency
expect(result.errors, isNotEmpty);
@@ -852,7 +852,7 @@ void main() {
list.enableAll();
final result = list.generateLoadOrder();
final expected = ['modB', 'modC', 'modA'];
final expected = ['modC', 'modB', 'modA'];
// Should report all missing dependencies
expect(result.errors, isNotEmpty);