executePreCommitChecks method

  1. @mustCallSuper
Future<void> executePreCommitChecks()

Execute before commit checks.

Implementation

@mustCallSuper
Future<void> executePreCommitChecks() async {
  final String branchNamingViolation = await executeBranchNamingCheck();

  if (branchNamingViolation.isNotEmpty == true) {
    throw UnrecoverableException(
      branchNamingViolation,
      ExitCode.software.code,
    );
  }

  if (config.preCommitConfig.codeStyleCheckEnabled) {
    final String codeStyleViolations = await executeCodeStyleCheck();

    if (codeStyleViolations.isNotEmpty == true) {
      throw UnrecoverableException(
        codeStyleViolations,
        ExitCode.software.code,
      );
    }
  }

  if (config.preCommitConfig.unitTestsEnabled) {
    final String unitTestsResult = await executeUnitTests();

    if (unitTestsResult.isNotEmpty == true) {
      throw UnrecoverableException(unitTestsResult, ExitCode.software.code);
    }
  }

  if (config.preCommitConfig.integrationTestsEnabled) {
    final String integrationTests = await executeIntegrationTests();

    if (integrationTests.isNotEmpty == true) {
      throw UnrecoverableException(integrationTests, ExitCode.software.code);
    }
  }

  if (config.preCommitConfig.uiTestsEnabled) {
    final String uiTests = await executeUiTests();

    if (uiTests.isNotEmpty == true) {
      throw UnrecoverableException(uiTests, ExitCode.software.code);
    }
  }
}