From d99751a24394484f9a4c31d4e66664ba41c6f4b5 Mon Sep 17 00:00:00 2001 From: Dimitri Dessus <dimitri.dessus@gmail.com> Date: Fri, 15 Mar 2024 09:52:36 +0100 Subject: [PATCH 1/6] chore: upgrade package info plus --- templates/flutter/pubspec.yaml.twig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/flutter/pubspec.yaml.twig b/templates/flutter/pubspec.yaml.twig index 5b0137296..17dd91a84 100644 --- a/templates/flutter/pubspec.yaml.twig +++ b/templates/flutter/pubspec.yaml.twig @@ -22,7 +22,7 @@ dependencies: device_info_plus: ^9.0.2 flutter_web_auth_2: ^3.0.0 http: '>=0.13.6 <2.0.0' - package_info_plus: ^4.0.2 + package_info_plus: ^5.0.1 path_provider: ^2.0.15 web_socket_channel: ^2.4.0 universal_html: ^2.2.2 From c94d74bdfed930fba8a086760a1208183ab6f125 Mon Sep 17 00:00:00 2001 From: Dimitri Dessus <dimitri.dessus@gmail.com> Date: Wed, 20 Mar 2024 08:00:55 +0100 Subject: [PATCH 2/6] chore: update query test --- templates/dart/test/query_test.dart.twig | 93 +++++++++++++++++++----- 1 file changed, 74 insertions(+), 19 deletions(-) diff --git a/templates/dart/test/query_test.dart.twig b/templates/dart/test/query_test.dart.twig index cbe838079..e430f44e5 100644 --- a/templates/dart/test/query_test.dart.twig +++ b/templates/dart/test/query_test.dart.twig @@ -1,3 +1,5 @@ +import 'dart:convert'; + import 'package:{{ language.params.packageName }}/{{ language.params.packageName }}.dart'; {% if 'dart' in language.params.packageName %} import 'package:test/test.dart'; @@ -5,10 +7,10 @@ import 'package:test/test.dart'; import 'package:flutter_test/flutter_test.dart'; {% endif %} -class BasicFilterQueryTest { +class BasicFilterQueryTest<V> { final String description; - final dynamic value; - final String expectedValues; + final V value; + final List<V> expectedValues; BasicFilterQueryTest({ required this.description, @@ -17,39 +19,44 @@ class BasicFilterQueryTest { }); } +extension StringJSON on String { + Map<String, dynamic> toJson() => jsonDecode(this); +} + void main() { group('basic filter tests', () { final tests = [ - BasicFilterQueryTest( + BasicFilterQueryTest<String>( description: 'with a string', value: 's', - expectedValues: ["s"], + expectedValues: ['s'], ), - BasicFilterQueryTest( + BasicFilterQueryTest<int>( description: 'with an integer', value: 1, expectedValues: [1], ), - BasicFilterQueryTest( + BasicFilterQueryTest<double>( description: 'with a double', value: 1.2, expectedValues: [1.2], ), - BasicFilterQueryTest( + BasicFilterQueryTest<double>( description: 'with a whole number double', value: 1.0, expectedValues: [1.0], ), - BasicFilterQueryTest( + BasicFilterQueryTest<bool>( description: 'with a bool', value: false, expectedValues: [false], ), - BasicFilterQueryTest( - description: 'with a list', - value: ['a', 'b', 'c'], - expectedValues: ["a","b","c"], - ), + // FIXME: seems to be not working for now... bug? + // BasicFilterQueryTest<List<String>>( + // description: 'with a list', + // value: ['a', 'b', 'c'], + // expectedValues: [['a', 'b', 'c']], + // ), ]; group('equal()', () { @@ -61,6 +68,14 @@ void main() { expect(query['method'], 'equal'); }); } + + test('with a list', () { + final query = Query.equal('attr', ['a', 'b', 'c']).toJson(); + print(query); + expect(query['attribute'], 'attr'); + expect(query['values'], ['a', 'b', 'c']); + expect(query['method'], 'equal'); + }); }); group('notEqual()', () { @@ -72,6 +87,14 @@ void main() { expect(query['method'], 'notEqual'); }); } + + test('with a list', () { + final query = Query.notEqual('attr', ['a', 'b', 'c']).toJson(); + print(query); + expect(query['attribute'], 'attr'); + expect(query['values'], [['a', 'b', 'c']]); // Is there a bug here? + expect(query['method'], 'notEqual'); + }); }); group('lessThan()', () { @@ -83,6 +106,14 @@ void main() { expect(query['method'], 'lessThan'); }); } + + test('with a list', () { + final query = Query.lessThan('attr', ['a', 'b', 'c']).toJson(); + print(query); + expect(query['attribute'], 'attr'); + expect(query['values'], ['a', 'b', 'c']); + expect(query['method'], 'lessThan'); + }); }); group('lessThanEqual()', () { @@ -94,6 +125,14 @@ void main() { expect(query['method'], 'lessThanEqual'); }); } + + test('with a list', () { + final query = Query.lessThanEqual('attr', ['a', 'b', 'c']).toJson(); + print(query); + expect(query['attribute'], 'attr'); + expect(query['values'], ['a', 'b', 'c']); + expect(query['method'], 'lessThanEqual'); + }); }); group('greaterThan()', () { @@ -105,6 +144,14 @@ void main() { expect(query['method'], 'greaterThan'); }); } + + test('with a list', () { + final query = Query.greaterThan('attr', ['a', 'b', 'c']).toJson(); + print(query); + expect(query['attribute'], 'attr'); + expect(query['values'], ['a', 'b', 'c']); + expect(query['method'], 'greaterThan'); + }); }); group('greaterThanEqual()', () { @@ -116,6 +163,14 @@ void main() { expect(query['method'], 'greaterThanEqual'); }); } + + test('with a list', () { + final query = Query.greaterThanEqual('attr', ['a', 'b', 'c']).toJson(); + print(query); + expect(query['attribute'], 'attr'); + expect(query['values'], ['a', 'b', 'c']); + expect(query['method'], 'greaterThanEqual'); + }); }); }); @@ -134,7 +189,7 @@ void main() { }); test('returns isNotNull', () { - final query = Query.isNotNull('attr', 'keyword1 keyword2').toJson(); + final query = Query.isNotNull('attr').toJson(); expect(query['attribute'], 'attr'); expect(query['values'], null); expect(query['method'], 'isNotNull'); @@ -187,28 +242,28 @@ void main() { test('returns cursorBefore', () { final query = Query.cursorBefore('custom').toJson(); expect(query['attribute'], null); - expect(query['values'], 'custom'); + expect(query['values'], ['custom']); expect(query['method'], 'cursorBefore'); }); test('returns cursorAfter', () { final query = Query.cursorAfter('custom').toJson(); expect(query['attribute'], null); - expect(query['values'], 'custom'); + expect(query['values'], ['custom']); expect(query['method'], 'cursorAfter'); }); test('returns limit', () { final query = Query.limit(1).toJson(); expect(query['attribute'], null); - expect(query['values'], 1); + expect(query['values'], [1]); expect(query['method'], 'limit'); }); test('returns offset', () { final query = Query.offset(1).toJson(); expect(query['attribute'], null); - expect(query['values'], 1); + expect(query['values'], [1]); expect(query['method'], 'offset'); }); } From 7ac70c5859de2d4eaa4893841f0928d32ed1c344 Mon Sep 17 00:00:00 2001 From: Dimitri Dessus <dimitri.dessus@gmail.com> Date: Thu, 18 Apr 2024 07:42:21 +0200 Subject: [PATCH 3/6] =?UTF-8?q?=F0=9F=90=9B=20Fix=20basic=20filter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- templates/dart/test/query_test.dart.twig | 25 ++++++++++++------------ 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/templates/dart/test/query_test.dart.twig b/templates/dart/test/query_test.dart.twig index e430f44e5..f743c374e 100644 --- a/templates/dart/test/query_test.dart.twig +++ b/templates/dart/test/query_test.dart.twig @@ -7,10 +7,10 @@ import 'package:test/test.dart'; import 'package:flutter_test/flutter_test.dart'; {% endif %} -class BasicFilterQueryTest<V> { +class BasicFilterQueryTest<V, E> { final String description; final V value; - final List<V> expectedValues; + final E expectedValues; BasicFilterQueryTest({ required this.description, @@ -26,37 +26,36 @@ extension StringJSON on String { void main() { group('basic filter tests', () { final tests = [ - BasicFilterQueryTest<String>( + BasicFilterQueryTest<String, List<String>>( description: 'with a string', value: 's', expectedValues: ['s'], ), - BasicFilterQueryTest<int>( + BasicFilterQueryTest<int, List<int>>( description: 'with an integer', value: 1, expectedValues: [1], ), - BasicFilterQueryTest<double>( + BasicFilterQueryTest<double, List<double>>( description: 'with a double', value: 1.2, expectedValues: [1.2], ), - BasicFilterQueryTest<double>( + BasicFilterQueryTest<double, List<double>>( description: 'with a whole number double', value: 1.0, expectedValues: [1.0], ), - BasicFilterQueryTest<bool>( + BasicFilterQueryTest<bool, List<bool>>( description: 'with a bool', value: false, expectedValues: [false], ), - // FIXME: seems to be not working for now... bug? - // BasicFilterQueryTest<List<String>>( - // description: 'with a list', - // value: ['a', 'b', 'c'], - // expectedValues: [['a', 'b', 'c']], - // ), + BasicFilterQueryTest<List<String>, List<String>>( + description: 'with a list', + value: ['a', 'b', 'c'], + expectedValues: ['a', 'b', 'c'], + ), ]; group('equal()', () { From 414e5f7c961bf240e0661198d3c77b3676a0a1d5 Mon Sep 17 00:00:00 2001 From: Dimitri Dessus <dimitri.dessus@gmail.com> Date: Thu, 18 Apr 2024 07:46:52 +0200 Subject: [PATCH 4/6] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Revert=20String=20exte?= =?UTF-8?q?nsion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- templates/dart/test/query_test.dart.twig | 54 +++++++++++------------- 1 file changed, 25 insertions(+), 29 deletions(-) diff --git a/templates/dart/test/query_test.dart.twig b/templates/dart/test/query_test.dart.twig index f743c374e..0e38daf28 100644 --- a/templates/dart/test/query_test.dart.twig +++ b/templates/dart/test/query_test.dart.twig @@ -19,10 +19,6 @@ class BasicFilterQueryTest<V, E> { }); } -extension StringJSON on String { - Map<String, dynamic> toJson() => jsonDecode(this); -} - void main() { group('basic filter tests', () { final tests = [ @@ -61,7 +57,7 @@ void main() { group('equal()', () { for (var t in tests) { test(t.description, () { - final query = Query.equal('attr', t.value).toJson(); + final query = jsonDecode(Query.equal('attr', t.value)); expect(query['attribute'], 'attr'); expect(query['values'], t.expectedValues); expect(query['method'], 'equal'); @@ -69,7 +65,7 @@ void main() { } test('with a list', () { - final query = Query.equal('attr', ['a', 'b', 'c']).toJson(); + final query = jsonDecode(Query.equal('attr', ['a', 'b', 'c'])); print(query); expect(query['attribute'], 'attr'); expect(query['values'], ['a', 'b', 'c']); @@ -80,7 +76,7 @@ void main() { group('notEqual()', () { for (var t in tests) { test(t.description, () { - final query = Query.notEqual('attr', t.value).toJson(); + final query = jsonDecode(Query.notEqual('attr', t.value)); expect(query['attribute'], 'attr'); expect(query['values'], t.expectedValues); expect(query['method'], 'notEqual'); @@ -88,7 +84,7 @@ void main() { } test('with a list', () { - final query = Query.notEqual('attr', ['a', 'b', 'c']).toJson(); + final query = jsonDecode(Query.notEqual('attr', ['a', 'b', 'c'])); print(query); expect(query['attribute'], 'attr'); expect(query['values'], [['a', 'b', 'c']]); // Is there a bug here? @@ -99,7 +95,7 @@ void main() { group('lessThan()', () { for (var t in tests) { test(t.description, () { - final query = Query.lessThan('attr', t.value).toJson(); + final query = jsonDecode(Query.lessThan('attr', t.value)); expect(query['attribute'], 'attr'); expect(query['values'], t.expectedValues); expect(query['method'], 'lessThan'); @@ -107,7 +103,7 @@ void main() { } test('with a list', () { - final query = Query.lessThan('attr', ['a', 'b', 'c']).toJson(); + final query = jsonDecode(Query.lessThan('attr', ['a', 'b', 'c'])); print(query); expect(query['attribute'], 'attr'); expect(query['values'], ['a', 'b', 'c']); @@ -118,7 +114,7 @@ void main() { group('lessThanEqual()', () { for (var t in tests) { test(t.description, () { - final query = Query.lessThanEqual('attr', t.value).toJson(); + final query = jsonDecode(Query.lessThanEqual('attr', t.value)); expect(query['attribute'], 'attr'); expect(query['values'], t.expectedValues); expect(query['method'], 'lessThanEqual'); @@ -126,7 +122,7 @@ void main() { } test('with a list', () { - final query = Query.lessThanEqual('attr', ['a', 'b', 'c']).toJson(); + final query = jsonDecode(Query.lessThanEqual('attr', ['a', 'b', 'c'])); print(query); expect(query['attribute'], 'attr'); expect(query['values'], ['a', 'b', 'c']); @@ -137,7 +133,7 @@ void main() { group('greaterThan()', () { for (var t in tests) { test(t.description, () { - final query = Query.greaterThan('attr', t.value).toJson(); + final query = jsonDecode(Query.greaterThan('attr', t.value).toJson()); expect(query['attribute'], 'attr'); expect(query['values'], t.expectedValues); expect(query['method'], 'greaterThan'); @@ -145,7 +141,7 @@ void main() { } test('with a list', () { - final query = Query.greaterThan('attr', ['a', 'b', 'c']).toJson(); + final query = jsonDecode(Query.greaterThan('attr', ['a', 'b', 'c'])); print(query); expect(query['attribute'], 'attr'); expect(query['values'], ['a', 'b', 'c']); @@ -156,7 +152,7 @@ void main() { group('greaterThanEqual()', () { for (var t in tests) { test(t.description, () { - final query = Query.greaterThanEqual('attr', t.value).toJson(); + final query = jsonDecode(Query.greaterThanEqual('attr', t.value)); expect(query['attribute'], 'attr'); expect(query['values'], t.expectedValues); expect(query['method'], 'greaterThanEqual'); @@ -164,7 +160,7 @@ void main() { } test('with a list', () { - final query = Query.greaterThanEqual('attr', ['a', 'b', 'c']).toJson(); + final query = jsonDecode(Query.greaterThanEqual('attr', ['a', 'b', 'c'])); print(query); expect(query['attribute'], 'attr'); expect(query['values'], ['a', 'b', 'c']); @@ -174,21 +170,21 @@ void main() { }); test('returns search', () { - final query = Query.search('attr', 'keyword1 keyword2').toJson(); + final query = jsonDecode(Query.search('attr', 'keyword1 keyword2')); expect(query['attribute'], 'attr'); expect(query['values'], ['keyword1 keyword2']); expect(query['method'], 'search'); }); test('returns isNull', () { - final query = Query.isNull('attr').toJson(); + final query = jsonDecode(Query.isNull('attr')); expect(query['attribute'], 'attr'); expect(query['values'], null); expect(query['method'], 'isNull'); }); test('returns isNotNull', () { - final query = Query.isNotNull('attr').toJson(); + final query = jsonDecode(Query.isNotNull('attr')); expect(query['attribute'], 'attr'); expect(query['values'], null); expect(query['method'], 'isNotNull'); @@ -196,21 +192,21 @@ void main() { group('between()', () { test('with integers', () { - final query = Query.between('attr', 1, 2).toJson(); + final query = jsonDecode(Query.between('attr', 1, 2)); expect(query['attribute'], 'attr'); expect(query['values'], [1, 2]); expect(query['method'], 'between'); }); test('with doubles', () { - final query = Query.between('attr', 1.0, 2.0).toJson(); + final query = jsonDecode(Query.between('attr', 1.0, 2.0)); expect(query['attribute'], 'attr'); expect(query['values'], [1.0, 2.0]); expect(query['method'], 'between'); }); test('with strings', () { - final query = Query.between('attr', 'a', 'z').toJson(); + final query = jsonDecode(Query.between('attr', 'a', 'z')); expect(query['attribute'], 'attr'); expect(query['values'], ['a', 'z']); expect(query['method'], 'between'); @@ -218,49 +214,49 @@ void main() { }); test('returns select', () { - final query = Query.select(['attr1', 'attr2']).toJson(); + final query = jsonDecode(Query.select(['attr1', 'attr2'])); expect(query['attribute'], null); expect(query['values'], ['attr1', 'attr2']); expect(query['method'], 'select'); }); test('returns orderAsc', () { - final query = Query.orderAsc('attr').toJson(); + final query = jsonDecode(Query.orderAsc('attr')); expect(query['attribute'], 'attr'); expect(query['values'], null); expect(query['method'], 'orderAsc'); }); test('returns orderDesc', () { - final query = Query.orderDesc('attr').toJson(); + final query = jsonDecode(Query.orderDesc('attr')); expect(query['attribute'], 'attr'); expect(query['values'], null); expect(query['method'], 'orderDesc'); }); test('returns cursorBefore', () { - final query = Query.cursorBefore('custom').toJson(); + final query = jsonDecode(Query.cursorBefore('custom')); expect(query['attribute'], null); expect(query['values'], ['custom']); expect(query['method'], 'cursorBefore'); }); test('returns cursorAfter', () { - final query = Query.cursorAfter('custom').toJson(); + final query = jsonDecode(Query.cursorAfter('custom')); expect(query['attribute'], null); expect(query['values'], ['custom']); expect(query['method'], 'cursorAfter'); }); test('returns limit', () { - final query = Query.limit(1).toJson(); + final query = jsonDecode(Query.limit(1)); expect(query['attribute'], null); expect(query['values'], [1]); expect(query['method'], 'limit'); }); test('returns offset', () { - final query = Query.offset(1).toJson(); + final query = jsonDecode(Query.offset(1)); expect(query['attribute'], null); expect(query['values'], [1]); expect(query['method'], 'offset'); From b920510bb78d44c26a84aa634161062ce512f77b Mon Sep 17 00:00:00 2001 From: Dimitri Dessus <dimitri.dessus@gmail.com> Date: Thu, 18 Apr 2024 07:47:04 +0200 Subject: [PATCH 5/6] =?UTF-8?q?=E2=AC=87=EF=B8=8F=20Revert=20package=5Finf?= =?UTF-8?q?o=5Fplus=20upgrade?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- templates/flutter/pubspec.yaml.twig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/flutter/pubspec.yaml.twig b/templates/flutter/pubspec.yaml.twig index 17dd91a84..5b0137296 100644 --- a/templates/flutter/pubspec.yaml.twig +++ b/templates/flutter/pubspec.yaml.twig @@ -22,7 +22,7 @@ dependencies: device_info_plus: ^9.0.2 flutter_web_auth_2: ^3.0.0 http: '>=0.13.6 <2.0.0' - package_info_plus: ^5.0.1 + package_info_plus: ^4.0.2 path_provider: ^2.0.15 web_socket_channel: ^2.4.0 universal_html: ^2.2.2 From 6953ec73bae8f0c327a879bbb2645f0727d8b43e Mon Sep 17 00:00:00 2001 From: Dimitri Dessus <dimitri.dessus@gmail.com> Date: Fri, 19 Apr 2024 13:24:42 +0200 Subject: [PATCH 6/6] fix: tests --- templates/dart/test/query_test.dart.twig | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/templates/dart/test/query_test.dart.twig b/templates/dart/test/query_test.dart.twig index 0e38daf28..106262c10 100644 --- a/templates/dart/test/query_test.dart.twig +++ b/templates/dart/test/query_test.dart.twig @@ -63,14 +63,6 @@ void main() { expect(query['method'], 'equal'); }); } - - test('with a list', () { - final query = jsonDecode(Query.equal('attr', ['a', 'b', 'c'])); - print(query); - expect(query['attribute'], 'attr'); - expect(query['values'], ['a', 'b', 'c']); - expect(query['method'], 'equal'); - }); }); group('notEqual()', () { @@ -133,7 +125,7 @@ void main() { group('greaterThan()', () { for (var t in tests) { test(t.description, () { - final query = jsonDecode(Query.greaterThan('attr', t.value).toJson()); + final query = jsonDecode(Query.greaterThan('attr', t.value)); expect(query['attribute'], 'attr'); expect(query['values'], t.expectedValues); expect(query['method'], 'greaterThan');