ensureCompatible method

void ensureCompatible(
  1. AppConfig? app
)

Refuses servers below minTraceraVersion or missing the Autotest capabilities the adapter depends on.

Throws ApiError with the reason; the reporter soft-disables on it.

Implementation

void ensureCompatible(AppConfig? app) {
  if (app == null || !isVersionAtLeast(app.version, minTraceraVersion)) {
    throw ApiError(
      'server version ${app?.version ?? ''} is below the adapter\'s '
      'minimum $minTraceraVersion',
    );
  }
  final capabilities = app.capabilities;
  if (capabilities != null &&
      (!capabilities.autotestCreateRun ||
          !capabilities.autotestFinishRun ||
          !capabilities.autotestResultsBatch ||
          !capabilities.testResultEnvVars)) {
    throw const ApiError(
      'server missing required API capabilities (create/finish run, '
      'results batch, or result envVars)',
    );
  }
}