Files
IKAR/test/selection_check_circle_test.dart
T

53 lines
1.7 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:ikar/frontend/widgets/selection_check_circle.dart';
void main() {
test('кружок выбора помещается в строку любой высоты', () {
for (var height = 8.0; height <= 200.0; height += 1) {
final diameter = SelectionCheckCircle.diameterFor(height);
final bottom = SelectionCheckCircle.bottomInsetFor(height, diameter);
expect(
diameter + bottom,
lessThanOrEqualTo(height),
reason: 'высота строки $height',
);
}
});
test('на обычной строке размер и отступ прежние', () {
const diameter = SelectionCheckCircle.maxDiameter;
expect(SelectionCheckCircle.diameterFor(64), diameter);
expect(
SelectionCheckCircle.bottomInsetFor(64, diameter),
SelectionCheckCircle.preferredBottomInset,
);
});
testWidgets('на низкой строке кружок сжимается', (tester) async {
await tester.pumpWidget(
MaterialApp(
home: Scaffold(
body: Center(
child: SizedBox(
height: 26,
width: 200,
child: Align(
alignment: AlignmentDirectional.bottomStart,
child: SelectionCheckCircle(
selected: true,
diameter: SelectionCheckCircle.diameterFor(26),
),
),
),
),
),
),
);
final size = tester.getSize(find.byType(SelectionCheckCircle));
expect(size.height, 22);
expect(size.height, lessThanOrEqualTo(26));
});
}