Skip to content

Commit

Permalink
refactor: move towards A+ code quality
Browse files Browse the repository at this point in the history
Closes #39
  • Loading branch information
rafamizes committed Aug 17, 2021
1 parent 1393234 commit a5bfa93
Showing 1 changed file with 137 additions and 100 deletions.
237 changes: 137 additions & 100 deletions test/numeric/num_field_test.dart
Expand Up @@ -36,110 +36,147 @@ Future<void> main() async {
const initNeg = '-1.11';
const initRange = '10';
const inits = [init, initMin, initPos, initMax, initNeg, initRange];
testWidgets('min value constraint', (WidgetTester tester) async {
final getVal = GetVal(tester);
final val =
await getVal(NumField.min(9.9999, malformed: nonDigit, small: small));
expect(val(null), null);
expect(val(empty), nonDigit);
expect(val(minusOneBillion), small);
expect(val(minusTen), small);
expect(val(minusOne), small);
expect(val(zero), small);
expect(val(one), small);
expect(val(ten), null);
expect(val(oneBillion), null);
});
testWidgets('positive numbers', (WidgetTester tester) async {
const neg = 'positive numbers only';
final getVal = GetVal(tester);
final val = await getVal(NumField.pos(malformed: nonDigit, neg: neg));
expect(val(null), null);
expect(val(empty), nonDigit);
expect(val(minusOneBillion), neg);
expect(val(minusTen), neg);
expect(val(minusOne), neg);
expect(val(zero), null);
expect(val(one), null);
expect(val(ten), null);
expect(val(oneBillion), null);
});
testWidgets('max value constraint', (WidgetTester tester) async {
final getVal = GetVal(tester);
final val =
await getVal(NumField.max(10.1, malformed: nonDigit, large: large));
expect(val(null), null);
expect(val(empty), nonDigit);
expect(val(minusOneBillion), null);
expect(val(minusTen), null);
expect(val(minusOne), null);
expect(val(zero), null);
expect(val(one), null);
expect(val(ten), null);
expect(val(oneBillion), large);
});
testWidgets('negative numbers', (WidgetTester tester) async {
const pos = 'negative numbers only';
final getVal = GetVal(tester);
final val = await getVal(NumField.neg(malformed: nonDigit, pos: pos));
expect(val(null), null);
expect(val(empty), nonDigit);
expect(val(minusOneBillion), null);
expect(val(minusTen), null);
expect(val(minusOne), null);
expect(val(zero), pos);
expect(val(one), pos);
expect(val(ten), pos);
expect(val(oneBillion), pos);
});
testWidgets('range value constraint', (WidgetTester tester) async {
final getVal = GetVal(tester);
group('number constraints', () {
testWidgets('mininum', (WidgetTester tester) async {
final getVal = GetVal(tester);
final val = await getVal(
NumField.min(9.9999, malformed: nonDigit, small: small));
expect(val(null), null);
expect(val(empty), nonDigit);
expect(val(minusOneBillion), small);
expect(val(minusTen), small);
expect(val(minusOne), small);
expect(val(zero), small);
expect(val(one), small);
expect(val(ten), null);
expect(val(oneBillion), null);
});
testWidgets('positive', (WidgetTester tester) async {
const neg = 'positive numbers only';
final getVal = GetVal(tester);
final val = await getVal(NumField.pos(malformed: nonDigit, neg: neg));
expect(val(null), null);
expect(val(empty), nonDigit);
expect(val(minusOneBillion), neg);
expect(val(minusTen), neg);
expect(val(minusOne), neg);
expect(val(zero), null);
expect(val(one), null);
expect(val(ten), null);
expect(val(oneBillion), null);
});
testWidgets('maximum', (WidgetTester tester) async {
final getVal = GetVal(tester);
final val =
await getVal(NumField.max(10.1, malformed: nonDigit, large: large));
expect(val(null), null);
expect(val(empty), nonDigit);
expect(val(minusOneBillion), null);
expect(val(minusTen), null);
expect(val(minusOne), null);
expect(val(zero), null);
expect(val(one), null);
expect(val(ten), null);
expect(val(oneBillion), large);
});
testWidgets('negative', (WidgetTester tester) async {
const pos = 'negative numbers only';
final getVal = GetVal(tester);
final val = await getVal(NumField.neg(malformed: nonDigit, pos: pos));
expect(val(null), null);
expect(val(empty), nonDigit);
expect(val(minusOneBillion), null);
expect(val(minusTen), null);
expect(val(minusOne), null);
expect(val(zero), pos);
expect(val(one), pos);
expect(val(ten), pos);
expect(val(oneBillion), pos);
});
testWidgets('range', (WidgetTester tester) async {
final getVal = GetVal(tester);

final val = await getVal(
NumField.range(-5, 5, malformed: nonDigit, small: small, large: large),
);
expect(val(null), null);
expect(val(empty), nonDigit);
expect(val(minusOneBillion), small);
expect(val(minusTen), small);
expect(val(minusOne), null);
expect(val(zero), null);
expect(val(one), null);
expect(val(ten), large);
expect(val(oneBillion), large);
final val = await getVal(
NumField.range(-5, 5,
malformed: nonDigit, small: small, large: large),
);
expect(val(null), null);
expect(val(empty), nonDigit);
expect(val(minusOneBillion), small);
expect(val(minusTen), small);
expect(val(minusOne), null);
expect(val(zero), null);
expect(val(one), null);
expect(val(ten), large);
expect(val(oneBillion), large);
});
});
testWidgets('key', (WidgetTester tester) async {
await tester.pumpWidget(
WellFormed.app([
NumField(key: kDef),
NumField.min(1, key: kMin),
NumField.pos(key: kPos),
NumField.max(1, key: kMax),
NumField.neg(key: kNeg),
NumField.range(1, 2, key: kRange),
]),
);
for (final key in keys) {
expect(find.byKey(key), findsOneWidget);
}
group('key', () {
testWidgets('default ctor', (WidgetTester tester) async {
await tester.pumpWidget(WellFormed.app([NumField(key: kDef)]));
expect(find.byKey(kDef), findsOneWidget);
});
testWidgets('min ctor', (WidgetTester tester) async {
await tester.pumpWidget(WellFormed.app([NumField.min(1, key: kMin)]));
expect(find.byKey(kMin), findsOneWidget);
});
testWidgets('pos ctor', (WidgetTester tester) async {
await tester.pumpWidget(WellFormed.app([NumField.pos(key: kPos)]));
expect(find.byKey(kPos), findsOneWidget);
});
testWidgets('max ctor', (WidgetTester tester) async {
await tester.pumpWidget(WellFormed.app([NumField(key: kMax)]));
expect(find.byKey(kMax), findsOneWidget);
});
testWidgets('neg ctor', (WidgetTester tester) async {
await tester.pumpWidget(WellFormed.app([NumField.neg(key: kNeg)]));
expect(find.byKey(kNeg), findsOneWidget);
});
testWidgets('range ctor', (WidgetTester tester) async {
await tester
.pumpWidget(WellFormed.app([NumField.range(1, 5, key: kRange)]));
expect(find.byKey(kRange), findsOneWidget);
});
});
testWidgets('blank', (WidgetTester tester) async {
await tester.pumpWidget(
WellFormed.app([
NumField(blank: blank, initialValue: init),
NumField.min(1, blank: blank, initialValue: initMin),
NumField.pos(blank: blank, initialValue: initPos),
NumField.max(15, blank: blank, initialValue: initMax),
NumField.neg(blank: blank, initialValue: initNeg),
NumField.range(1, 15, blank: blank, initialValue: initRange),
]),
);
for (final init in inits) {
final elem = tester.widget(find.widgetWithText(TextFormField, init));
final val = (elem as TextFormField).validator!;
group('blank', () {
testWidgets('default ctor', (WidgetTester tester) async {
final getVal = GetVal(tester);
final val = await getVal(NumField(blank: blank));
expect(val(null), blank);
expect(val(init), null);
}
expect(val('0.0'), null);
});
testWidgets('min ctor', (WidgetTester tester) async {
final getVal = GetVal(tester);
final val = await getVal(NumField.min(1.0, blank: blank));
expect(val(null), blank);
expect(val('1.1'), null);
});
testWidgets('pos ctor', (WidgetTester tester) async {
final getVal = GetVal(tester);
final val = await getVal(NumField.pos(blank: blank));
expect(val(null), blank);
expect(val('0.0'), null);
});
testWidgets('max ctor', (WidgetTester tester) async {
final getVal = GetVal(tester);
final val = await getVal(NumField.max(1.0, blank: blank));
expect(val(null), blank);
expect(val('0.99'), null);
});
testWidgets('neg ctor', (WidgetTester tester) async {
final getVal = GetVal(tester);
final val = await getVal(NumField(key: kDef, blank: blank));
expect(val(null), blank);
expect(val('-0.001'), null);
});
testWidgets('range ctor', (WidgetTester tester) async {
final getVal = GetVal(tester);
final val =
await getVal(NumField.range(-5, 5, key: kDef, blank: blank));
expect(val(null), blank);
expect(val('-4.99'), null);
expect(val('+4.99'), null);
});
});
group('validator', () {
const error = 'cannot have odd digits';
Expand Down

0 comments on commit a5bfa93

Please sign in to comment.