TF-2717 Write widget test for text overflow of label tag

This commit is contained in:
dab246
2024-03-27 01:19:39 +07:00
committed by Dat H. Pham
parent 87f41fc4ea
commit 85e6f6952b
@@ -358,5 +358,91 @@ void main() {
expect(prefixRecipientComposerWidgetFinder, findsOneWidget);
expect(recipientTagItemWidgetFinder, findsNWidgets(2));
});
testWidgets('WHEN EmailAddress has address is too long AND display name is NULL\n'
'RecipientTagItemWidget SHOULD have text that overflows', (tester) async {
final listEmailAddress = <EmailAddress>[
EmailAddress(null, 'test12345678901234567890@example.com'),
];
final widget = makeTestableWidget(
child: RecipientComposerWidget(
prefix: prefix,
listEmailAddress: listEmailAddress,
imagePaths: imagePaths,
maxWidth: 360,
keyTagEditor: keyEmailTagEditor,
),
);
await tester.pumpWidget(widget);
await tester.pumpAndSettle();
final labelRecipientTagItemWidgetFinder = find.byKey(Key('label_recipient_tag_item_${prefix.name}_0'));
final labelRecipientTagItemWidget = tester.widget<Text>(labelRecipientTagItemWidgetFinder);
final labelTagWidth = tester.getSize(labelRecipientTagItemWidgetFinder).width;
expect(labelRecipientTagItemWidget.overflow, equals(TextOverflow.ellipsis));
final TextPainter textPainter = TextPainter(
maxLines: labelRecipientTagItemWidget.maxLines,
textDirection: labelRecipientTagItemWidget.textDirection ?? TextDirection.ltr,
text: TextSpan(
text: labelRecipientTagItemWidget.data,
style: labelRecipientTagItemWidget.style,
locale: labelRecipientTagItemWidget.locale
),
);
textPainter.layout(maxWidth: labelTagWidth);
bool isExceededTextOverflow = textPainter.didExceedMaxLines;
log('recipient_composer_widget_test::main: LABEL_TAB_WIDTH = $labelTagWidth | TextPainterWidth = ${textPainter.width} | isExceededTextOverflow = $isExceededTextOverflow');
expect(isExceededTextOverflow, equals(true));
});
testWidgets('WHEN EmailAddress has address is too long AND display name is NULL\n'
'RecipientTagItemWidget SHOULD have text display full', (tester) async {
final listEmailAddress = <EmailAddress>[
EmailAddress(null, 'test123@example.com'),
];
final widget = makeTestableWidget(
child: RecipientComposerWidget(
prefix: prefix,
listEmailAddress: listEmailAddress,
imagePaths: imagePaths,
maxWidth: 360,
keyTagEditor: keyEmailTagEditor,
),
);
await tester.pumpWidget(widget);
await tester.pumpAndSettle();
final labelRecipientTagItemWidgetFinder = find.byKey(Key('label_recipient_tag_item_${prefix.name}_0'));
final labelRecipientTagItemWidget = tester.widget<Text>(labelRecipientTagItemWidgetFinder);
final labelTagWidth = tester.getSize(labelRecipientTagItemWidgetFinder).width;
expect(labelRecipientTagItemWidget.overflow, equals(TextOverflow.ellipsis));
final TextPainter textPainter = TextPainter(
maxLines: labelRecipientTagItemWidget.maxLines,
textDirection: labelRecipientTagItemWidget.textDirection ?? TextDirection.ltr,
text: TextSpan(
text: labelRecipientTagItemWidget.data,
style: labelRecipientTagItemWidget.style,
locale: labelRecipientTagItemWidget.locale
),
);
textPainter.layout(maxWidth: labelTagWidth);
bool isExceededTextOverflow = textPainter.didExceedMaxLines;
log('recipient_composer_widget_test::main: LABEL_TAB_WIDTH = $labelTagWidth | TextPainterWidth = ${textPainter.width} | isExceededTextOverflow = $isExceededTextOverflow');
expect(isExceededTextOverflow, equals(false));
});
});
}