| 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 | } |