dev
dart 23 lines 1.21 KB
Raw
1 import 'package:flutter_test/flutter_test.dart';
2
3 void main() {
4 group('lightning matchers', () {
5 final RegExp lightningInvoiceRegex =
6 RegExp(r'^(lightning:)?(lnbc|lntb|lnbs|lnbcrt)[a-z0-9]+$', caseSensitive: false);
7
8 test('Valid invoice', () {
9 final content =
10 "lnbc2500u1pvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdq5xysxxatsyp3k7enxv4jsxqzpuaztrnwngzn3kdzw508d6qejxtdg4y5r3zarvary0c5xw7kpqdxssqfsqqqyqqqqlgqqqqqeqqjq9qrsgq9qrsgq9qrsgq9qrsgq9qrsgq9qrsgq9qrsgq9qrsgq9qrsgq9qrsgq9qrsgq9qrsgq9qrsgq9qrsgq9qrsgq9qrsgq9qrsgq9qrsgq9qrsgq9qrsgq9qrsgqfsqqqyqqqqlgqqqqqeqqjq9qrsgq";
11 expect(lightningInvoiceRegex.hasMatch(content), true);
12 });
13 test('Valid invoice with prefix', () {
14 final content =
15 "lightning:lnbc2500u1pvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdq5xysxxatsyp3k7enxv4jsxqzpuaztrnwngzn3kdzw508d6qejxtdg4y5r3zarvary0c5xw7kpqdxssqfsqqqyqqqqlgqqqqqeqqjq9qrsgq";
16 expect(lightningInvoiceRegex.hasMatch(content), true);
17 });
18 test('Invalid invoice', () {
19 final content = "bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq"; // This is a Bitcoin address
20 expect(lightningInvoiceRegex.hasMatch(content), false);
21 });
22 });
23 }