updateTests static method

void updateTests()

Implementation

static void updateTests() {
  final testPath = p.join(ConfigService.root, 'test/widget_test.dart');
  final file = File(testPath);
  if (!file.existsSync()) return;

  var content = file.readAsStringSync();
  final pubspec = File(p.join(ConfigService.root, 'pubspec.yaml'));
  if (!pubspec.existsSync()) return;

  final nameRegex = RegExp(r'^name:\s*(.*)$', multiLine: true);
  final match = nameRegex.firstMatch(pubspec.readAsStringSync());
  if (match == null) return;

  final pkgName = match.group(1)!.trim();
  final prodFlavor = ConfigService.load().productionFlavor;
  final useSeparate = ConfigService.load().useSeparateMains;

  final targetImport = useSeparate
      ? "import 'package:$pkgName/main/main_$prodFlavor.dart';"
      : "import 'package:$pkgName/main.dart';";

  // Regex to match any variant of the main import
  final importRegex = RegExp(
    "import ['\"]package:$pkgName/(main/main_.*|main)\\.dart['\"];",
    multiLine: true,
  );

  if (importRegex.hasMatch(content)) {
    content = content.replaceAll(importRegex, targetImport);
  }

  file.writeAsStringSync(content);
}