Ocideck/test/quality_export_policy_test.dart

47 lines
1.6 KiB
Dart
Raw Normal View History

import 'package:flutter_test/flutter_test.dart';
import 'package:ocideck/models/markdown_validation.dart';
import 'package:ocideck/models/slide_quality.dart';
import 'package:ocideck/services/quality_export_policy.dart';
void main() {
group('QualityExportPolicy', () {
test('allows export when disabled even with issues', () {
const policy = QualityExportPolicy(enabled: false);
const result = SlideQualityResult([
SlideQualityIssue(
slideIndex: 0,
kind: SlideQualityIssueKind.missingAltCaption,
category: SlideQualityCategory.altText,
severity: MarkdownValidationSeverity.warning,
),
]);
expect(policy.evaluate(result).allowed, isTrue);
});
test('allows export when there are no issues', () {
const policy = QualityExportPolicy();
expect(policy.evaluate(const SlideQualityResult([])).allowed, isTrue);
});
test('requires acknowledgement when enabled and issues exist', () {
const policy = QualityExportPolicy();
const result = SlideQualityResult([
SlideQualityIssue(
slideIndex: 0,
kind: SlideQualityIssueKind.missingAltCaption,
category: SlideQualityCategory.altText,
severity: MarkdownValidationSeverity.warning,
),
]);
final pending = policy.evaluate(result);
expect(pending.allowed, isFalse);
expect(pending.warningCount, 1);
expect(pending.reason, contains('kwaliteitsproblemen'));
expect(policy.evaluate(result, acknowledged: true).allowed, isTrue);
});
});
}