From af975570f2a82ceef3b23ba80cca0b40d640f2fe Mon Sep 17 00:00:00 2001 From: mbfakourii Date: Sat, 19 Apr 2025 14:19:34 +0330 Subject: [PATCH 01/20] fix: Add support for Dart 3.6, 3.7; remove support for Dart 3.2, 3.3, 3.4, 3.5, 3.3 --- .github/workflows/ci.yml | 22 +++++--------- packages/dart/README.md | 14 ++++----- packages/dart/lib/parse_server_sdk.dart | 4 --- .../lib/src/objects/parse_installation.dart | 2 +- packages/dart/pubspec.yaml | 30 +++++++++---------- 5 files changed, 30 insertions(+), 42 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c4228b49..78cdd252 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,25 +16,19 @@ jobs: include: # Dart framework may contain breaking changes in minor version releases, not following semver. # The latest Dart framework (below) is tested on all architectures (Ubuntu, macOS, Windows). - - name: Dart 3.5, Ubuntu + - name: Dart 3.7, Ubuntu os: ubuntu-latest - sdk: 3.5.3 - - name: Dart 3.5, macOS + sdk: 3.7.3 + - name: Dart 3.7, macOS os: macos-latest - sdk: 3.5.3 - - name: Dart 3.5, Windows + sdk: 3.7.3 + - name: Dart 3.7, Windows os: windows-latest - sdk: 3.5.3 + sdk: 3.7.3 # Older Dart framework versions (below) are only tested with Ubuntu to reduce CI resource usage. - - name: Dart 3.4 + - name: Dart 3.6 os: ubuntu-latest - sdk: 3.4.4 - - name: Dart 3.3 - os: ubuntu-latest - sdk: 3.3.4 - - name: Dart 3.2 - os: ubuntu-latest - sdk: 3.2.6 + sdk: 3.6.2 - name: Dart beta os: ubuntu-latest sdk: beta diff --git a/packages/dart/README.md b/packages/dart/README.md index 001c7274..f5cd8280 100644 --- a/packages/dart/README.md +++ b/packages/dart/README.md @@ -28,14 +28,12 @@ This library gives you access to the powerful Parse Server backend from your Dar ## Compatibility -The Parse Dart SDK is continuously tested with the most recent release of the Dart framework to ensure compatibility. To give developers time to upgrade their app to a newer Dart framework, previous Dart framework releases are supported for at least 1 year after the [release date](https://dart.dev/get-dart/archive) of the next higher significant version. - -| Version | Latest Version | End of Support | Compatible | -|-----------|----------------|----------------|------------| -| Dart 3.2 | 3.2.6 | Jan 2025 | ✅ Yes | -| Dart 3.3 | 3.3.4 | Apr 2025 | ✅ Yes | -| Dart 3.4 | 3.4.4 | Jun 2025 | ✅ Yes | -| Dart 3.5 | 3.5.3 | Sep 2025 | ✅ Yes | +The Parse Dart SDK is continuously tested with the most recent release of the Dart framework to ensure compatibility. To give developers time to upgrade their app to a newer Dart framework, previous Dart framework releases are supported for at least 6 month after the [release date](https://dart.dev/get-dart/archive) of the next higher significant version. + +| Version | Latest Version | Release Date | End of Support | Compatible | +|----------|----------------|--------------|----------------|------------| +| Dart 3.6 | 3.6.2 | Jan 2025 | Jun 2025 | ✅ Yes | +| Dart 3.7 | 3.7.3 | Apr 2025 | Sep 2025 | ✅ Yes | ## Getting Started diff --git a/packages/dart/lib/parse_server_sdk.dart b/packages/dart/lib/parse_server_sdk.dart index 3b27e056..a0db3262 100644 --- a/packages/dart/lib/parse_server_sdk.dart +++ b/packages/dart/lib/parse_server_sdk.dart @@ -1,6 +1,3 @@ -// ignore_for_file: unnecessary_import -library flutter_parse_sdk; - import 'dart:async'; import 'dart:convert'; import 'dart:math'; @@ -12,7 +9,6 @@ import 'package:dio/dio.dart'; import 'package:meta/meta.dart'; import 'package:mime/mime.dart'; import 'package:path/path.dart' as path; -import 'package:sembast/sembast.dart'; import 'package:sembast/sembast_io.dart'; import 'package:sembast_web/sembast_web.dart'; import 'package:timezone/data/latest.dart' as tz; diff --git a/packages/dart/lib/src/objects/parse_installation.dart b/packages/dart/lib/src/objects/parse_installation.dart index 5f4c01c3..655b61f6 100644 --- a/packages/dart/lib/src/objects/parse_installation.dart +++ b/packages/dart/lib/src/objects/parse_installation.dart @@ -248,7 +248,7 @@ class ParseInstallation extends ParseObject { await save(); } - ///Returns an > containing all the channel names this device is subscribed to. + ///Returns an List containing all the channel names this device is subscribed to. Future> getSubscribedChannels() async { print('getSubscribedChannels'); final ParseResponse apiResponse = diff --git a/packages/dart/pubspec.yaml b/packages/dart/pubspec.yaml index ae668f69..0ba5a62d 100644 --- a/packages/dart/pubspec.yaml +++ b/packages/dart/pubspec.yaml @@ -18,36 +18,36 @@ topics: - backend environment: - sdk: ">=3.2.6 <4.0.0" + sdk: ^3.6.2 dependencies: # Networking - dio: ^5.7.0 - http: ^1.2.0 - web_socket_channel: ^2.4.3 + dio: ^5.8.0+1 + http: ^1.3.0 + web_socket_channel: ^3.0.3 #Database - sembast: ^3.6.0 - sembast_web: ^2.2.0 + sembast: ^3.8.5 + sembast_web: ^2.4.1 # Utils uuid: ^4.5.1 meta: ^1.16.0 - path: ^1.9.0 - mime: ^1.0.0 - timezone: ^0.9.4 + path: ^1.9.1 + mime: ^2.0.0 + timezone: ^0.10.0 universal_io: ^2.2.2 xxtea: ^2.1.0 - collection: ^1.18.0 - cross_file: ^0.3.3+8 + collection: ^1.19.1 + cross_file: ^0.3.4+2 dev_dependencies: - lints: ^4.0.0 + lints: ^5.1.1 # Testing - build_runner: ^2.4.9 - mockito: ^5.4.4 - test: ^1.25.7 + build_runner: ^2.4.15 + mockito: ^5.4.5 + test: ^1.25.15 screenshots: - description: Parse Platform logo. From fea66536435b56d2928400aada11e8ad7212f266 Mon Sep 17 00:00:00 2001 From: mbfakourii Date: Sat, 19 Apr 2025 14:25:12 +0330 Subject: [PATCH 02/20] fix: Downgrade sembast_web to 2.4.0+4 --- packages/dart/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/dart/pubspec.yaml b/packages/dart/pubspec.yaml index 0ba5a62d..96376874 100644 --- a/packages/dart/pubspec.yaml +++ b/packages/dart/pubspec.yaml @@ -28,7 +28,7 @@ dependencies: #Database sembast: ^3.8.5 - sembast_web: ^2.4.1 + sembast_web: ^2.4.0+4 # Utils uuid: ^4.5.1 From 2531017511b72ee7833b995169764406c81a1258 Mon Sep 17 00:00:00 2001 From: mbfakourii Date: Sat, 19 Apr 2025 14:26:47 +0330 Subject: [PATCH 03/20] fix: Downgrade sembast to 3.8.3 --- packages/dart/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/dart/pubspec.yaml b/packages/dart/pubspec.yaml index 96376874..710dc5cb 100644 --- a/packages/dart/pubspec.yaml +++ b/packages/dart/pubspec.yaml @@ -27,7 +27,7 @@ dependencies: web_socket_channel: ^3.0.3 #Database - sembast: ^3.8.5 + sembast: ^3.8.3 sembast_web: ^2.4.0+4 # Utils From a4a79da2b964f4b199a82efd45df855e2789b750 Mon Sep 17 00:00:00 2001 From: mbfakourii Date: Sat, 19 Apr 2025 14:35:37 +0330 Subject: [PATCH 04/20] feat: Add analyzer 7.3.0 as a dev dependency --- packages/dart/pubspec.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/dart/pubspec.yaml b/packages/dart/pubspec.yaml index 710dc5cb..8548a143 100644 --- a/packages/dart/pubspec.yaml +++ b/packages/dart/pubspec.yaml @@ -49,6 +49,9 @@ dev_dependencies: mockito: ^5.4.5 test: ^1.25.15 + # For bug https://github.com/dart-lang/mockito/issues/810 + analyzer: 7.3.0 + screenshots: - description: Parse Platform logo. path: screenshots/logo.png \ No newline at end of file From 7dc1b6f880332235a364fd4bfe6886e83c521668 Mon Sep 17 00:00:00 2001 From: mbfakourii Date: Sat, 19 Apr 2025 14:40:21 +0330 Subject: [PATCH 05/20] feat: Migrate mockito to 5.4.5 (#1152) This commit updates the mockito dependency to version 5.4.5 and regenerates the mock files accordingly. --- .../dart/test/parse_query_test.mocks.dart | 103 --------- .../test/src/network/parse_query_test.dart | 2 +- .../src/network/parse_query_test.mocks.dart | 211 ++++++++++++++++++ .../test/src/objects/parse_base_test.dart | 2 +- .../parse_object/parse_object_array_test.dart | 2 +- .../parse_object_create_test.dart | 2 +- .../parse_object_delete_eventually_test.dart | 2 +- .../parse_object_delete_test.dart | 2 +- .../parse_object_distinct_test.dart | 2 +- .../parse_object/parse_object_fetch_test.dart | 2 +- .../parse_object_get_all_test.dart | 2 +- .../parse_object_get_object_test.dart | 2 +- ...parse_object_increment_decrement_test.dart | 2 +- .../parse_object/parse_object_query_test.dart | 2 +- .../parse_object_relation_test.dart | 2 +- .../parse_object_save_eventually_test.dart | 2 +- .../parse_object/parse_object_save_test.dart | 2 +- .../parse_object/parse_object_test.mocks.dart | 211 ++++++++++++++++++ .../parse_object/parse_object_unset_test.dart | 2 +- .../parse_object_update_test.dart | 2 +- 20 files changed, 439 insertions(+), 120 deletions(-) delete mode 100644 packages/dart/test/parse_query_test.mocks.dart create mode 100644 packages/dart/test/src/network/parse_query_test.mocks.dart create mode 100644 packages/dart/test/src/objects/parse_object/parse_object_test.mocks.dart diff --git a/packages/dart/test/parse_query_test.mocks.dart b/packages/dart/test/parse_query_test.mocks.dart deleted file mode 100644 index f60d00e1..00000000 --- a/packages/dart/test/parse_query_test.mocks.dart +++ /dev/null @@ -1,103 +0,0 @@ -// Mocks generated by Mockito 5.0.5 from annotations -// in parse_server_sdk/test/parse_query_test.dart. -// Do not manually edit this file. - -import 'dart:async' as i3; -import 'package:mockito/mockito.dart' as i1; -import 'package:parse_server_sdk/parse_server_sdk.dart' as i2; - -// ignore_for_file: comment_references -// ignore_for_file: unnecessary_parenthesis - -class _FakeParseCoreData extends i1.Fake implements i2.ParseCoreData {} - -class _FakeParseNetworkResponse extends i1.Fake - implements i2.ParseNetworkResponse {} - -class _FakeParseNetworkByteResponse extends i1.Fake - implements i2.ParseNetworkByteResponse {} - -/// A class which mocks [ParseClient]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockParseClient extends i1.Mock implements i2.ParseClient { - MockParseClient() { - i1.throwOnMissingStub(this); - } - - @override - i2.ParseCoreData get data => (super.noSuchMethod(Invocation.getter(#data), - returnValue: _FakeParseCoreData()) as i2.ParseCoreData); - - @override - i3.Future get(String? path, - {i2.ParseNetworkOptions? options, - i2.ProgressCallback? onReceiveProgress}) => - (super.noSuchMethod( - Invocation.method(#get, [path], - {#options: options, #onReceiveProgress: onReceiveProgress}), - returnValue: Future.value( - _FakeParseNetworkResponse())) - as i3.Future); - @override - i3.Future put(String? path, - {String? data, i2.ParseNetworkOptions? options}) => - (super.noSuchMethod( - Invocation.method(#put, [path], {#data: data, #options: options}), - returnValue: Future.value( - _FakeParseNetworkResponse())) - as i3.Future); - - @override - i3.Future post(String? path, - {String? data, i2.ParseNetworkOptions? options}) => - super.noSuchMethod( - Invocation.method(#post, [path], {#data: data, #options: options}), - returnValue: Future.value( - _FakeParseNetworkResponse())); - - @override - i3.Future postBytes(String? path, - {i3.Stream>? data, - i2.ParseNetworkOptions? options, - i2.ProgressCallback? onSendProgress, - dynamic cancelToken}) => - (super.noSuchMethod( - Invocation.method(#postBytes, [ - path - ], { - #data: data, - #options: options, - #onSendProgress: onSendProgress, - #cancelToken: cancelToken - }), - returnValue: Future.value( - _FakeParseNetworkResponse())) - as i3.Future); - - @override - i3.Future delete(String? path, - {i2.ParseNetworkOptions? options}) => - (super.noSuchMethod( - Invocation.method(#delete, [path], {#options: options}), - returnValue: Future.value( - _FakeParseNetworkResponse())) - as i3.Future); - - @override - i3.Future getBytes(String? path, - {i2.ParseNetworkOptions? options, - i2.ProgressCallback? onReceiveProgress, - dynamic cancelToken}) => - (super.noSuchMethod( - Invocation.method(#getBytes, [ - path - ], { - #options: options, - #onReceiveProgress: onReceiveProgress, - #cancelToken: cancelToken - }), - returnValue: Future.value( - _FakeParseNetworkByteResponse())) - as i3.Future); -} diff --git a/packages/dart/test/src/network/parse_query_test.dart b/packages/dart/test/src/network/parse_query_test.dart index 394ef73b..ce2ebce4 100644 --- a/packages/dart/test/src/network/parse_query_test.dart +++ b/packages/dart/test/src/network/parse_query_test.dart @@ -5,8 +5,8 @@ import 'package:mockito/mockito.dart'; import 'package:parse_server_sdk/parse_server_sdk.dart'; import 'package:test/test.dart'; -import '../../parse_query_test.mocks.dart'; import '../../test_utils.dart'; +import '../objects/parse_object/parse_object_test.mocks.dart'; @GenerateMocks([ParseClient]) void main() { diff --git a/packages/dart/test/src/network/parse_query_test.mocks.dart b/packages/dart/test/src/network/parse_query_test.mocks.dart new file mode 100644 index 00000000..e5868bb7 --- /dev/null +++ b/packages/dart/test/src/network/parse_query_test.mocks.dart @@ -0,0 +1,211 @@ +// Mocks generated by Mockito 5.4.5 from annotations +// in parse_server_sdk/test/src/network/parse_query_test.dart. +// Do not manually edit this file. + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'dart:async' as _i3; + +import 'package:mockito/mockito.dart' as _i1; +import 'package:parse_server_sdk/parse_server_sdk.dart' as _i2; + +// ignore_for_file: type=lint +// ignore_for_file: avoid_redundant_argument_values +// ignore_for_file: avoid_setters_without_getters +// ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package +// ignore_for_file: implementation_imports +// ignore_for_file: invalid_use_of_visible_for_testing_member +// ignore_for_file: must_be_immutable +// ignore_for_file: prefer_const_constructors +// ignore_for_file: unnecessary_parenthesis +// ignore_for_file: camel_case_types +// ignore_for_file: subtype_of_sealed_class + +class _FakeParseCoreData_0 extends _i1.SmartFake implements _i2.ParseCoreData { + _FakeParseCoreData_0(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); +} + +class _FakeParseNetworkResponse_1 extends _i1.SmartFake + implements _i2.ParseNetworkResponse { + _FakeParseNetworkResponse_1(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); +} + +class _FakeParseNetworkByteResponse_2 extends _i1.SmartFake + implements _i2.ParseNetworkByteResponse { + _FakeParseNetworkByteResponse_2(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); +} + +/// A class which mocks [ParseClient]. +/// +/// See the documentation for Mockito's code generation for more information. +class MockParseClient extends _i1.Mock implements _i2.ParseClient { + MockParseClient() { + _i1.throwOnMissingStub(this); + } + + @override + _i2.ParseCoreData get data => + (super.noSuchMethod( + Invocation.getter(#data), + returnValue: _FakeParseCoreData_0(this, Invocation.getter(#data)), + ) + as _i2.ParseCoreData); + + @override + _i3.Future<_i2.ParseNetworkResponse> get( + String? path, { + _i2.ParseNetworkOptions? options, + _i2.ProgressCallback? onReceiveProgress, + }) => + (super.noSuchMethod( + Invocation.method( + #get, + [path], + {#options: options, #onReceiveProgress: onReceiveProgress}, + ), + returnValue: _i3.Future<_i2.ParseNetworkResponse>.value( + _FakeParseNetworkResponse_1( + this, + Invocation.method( + #get, + [path], + {#options: options, #onReceiveProgress: onReceiveProgress}, + ), + ), + ), + ) + as _i3.Future<_i2.ParseNetworkResponse>); + + @override + _i3.Future<_i2.ParseNetworkResponse> put( + String? path, { + String? data, + _i2.ParseNetworkOptions? options, + }) => + (super.noSuchMethod( + Invocation.method(#put, [path], {#data: data, #options: options}), + returnValue: _i3.Future<_i2.ParseNetworkResponse>.value( + _FakeParseNetworkResponse_1( + this, + Invocation.method( + #put, + [path], + {#data: data, #options: options}, + ), + ), + ), + ) + as _i3.Future<_i2.ParseNetworkResponse>); + + @override + _i3.Future<_i2.ParseNetworkResponse> post( + String? path, { + String? data, + _i2.ParseNetworkOptions? options, + }) => + (super.noSuchMethod( + Invocation.method(#post, [path], {#data: data, #options: options}), + returnValue: _i3.Future<_i2.ParseNetworkResponse>.value( + _FakeParseNetworkResponse_1( + this, + Invocation.method( + #post, + [path], + {#data: data, #options: options}, + ), + ), + ), + ) + as _i3.Future<_i2.ParseNetworkResponse>); + + @override + _i3.Future<_i2.ParseNetworkResponse> postBytes( + String? path, { + _i3.Stream>? data, + _i2.ParseNetworkOptions? options, + _i2.ProgressCallback? onSendProgress, + dynamic cancelToken, + }) => + (super.noSuchMethod( + Invocation.method( + #postBytes, + [path], + { + #data: data, + #options: options, + #onSendProgress: onSendProgress, + #cancelToken: cancelToken, + }, + ), + returnValue: _i3.Future<_i2.ParseNetworkResponse>.value( + _FakeParseNetworkResponse_1( + this, + Invocation.method( + #postBytes, + [path], + { + #data: data, + #options: options, + #onSendProgress: onSendProgress, + #cancelToken: cancelToken, + }, + ), + ), + ), + ) + as _i3.Future<_i2.ParseNetworkResponse>); + + @override + _i3.Future<_i2.ParseNetworkResponse> delete( + String? path, { + _i2.ParseNetworkOptions? options, + }) => + (super.noSuchMethod( + Invocation.method(#delete, [path], {#options: options}), + returnValue: _i3.Future<_i2.ParseNetworkResponse>.value( + _FakeParseNetworkResponse_1( + this, + Invocation.method(#delete, [path], {#options: options}), + ), + ), + ) + as _i3.Future<_i2.ParseNetworkResponse>); + + @override + _i3.Future<_i2.ParseNetworkByteResponse> getBytes( + String? path, { + _i2.ParseNetworkOptions? options, + _i2.ProgressCallback? onReceiveProgress, + dynamic cancelToken, + }) => + (super.noSuchMethod( + Invocation.method( + #getBytes, + [path], + { + #options: options, + #onReceiveProgress: onReceiveProgress, + #cancelToken: cancelToken, + }, + ), + returnValue: _i3.Future<_i2.ParseNetworkByteResponse>.value( + _FakeParseNetworkByteResponse_2( + this, + Invocation.method( + #getBytes, + [path], + { + #options: options, + #onReceiveProgress: onReceiveProgress, + #cancelToken: cancelToken, + }, + ), + ), + ), + ) + as _i3.Future<_i2.ParseNetworkByteResponse>); +} diff --git a/packages/dart/test/src/objects/parse_base_test.dart b/packages/dart/test/src/objects/parse_base_test.dart index 82ba945a..e72d24b3 100644 --- a/packages/dart/test/src/objects/parse_base_test.dart +++ b/packages/dart/test/src/objects/parse_base_test.dart @@ -2,8 +2,8 @@ import 'package:collection/collection.dart'; import 'package:parse_server_sdk/parse_server_sdk.dart'; import 'package:test/test.dart'; -import '../../parse_query_test.mocks.dart'; import '../../test_utils.dart'; +import '../network/parse_query_test.mocks.dart'; main() { setUpAll(() async { diff --git a/packages/dart/test/src/objects/parse_object/parse_object_array_test.dart b/packages/dart/test/src/objects/parse_object/parse_object_array_test.dart index 07f636d8..d15abaaf 100644 --- a/packages/dart/test/src/objects/parse_object/parse_object_array_test.dart +++ b/packages/dart/test/src/objects/parse_object/parse_object_array_test.dart @@ -5,8 +5,8 @@ import 'package:mockito/mockito.dart'; import 'package:parse_server_sdk/parse_server_sdk.dart'; import 'package:test/test.dart'; -import '../../../parse_query_test.mocks.dart'; import '../../../test_utils.dart'; +import '../../network/parse_query_test.mocks.dart'; void main() { setUpAll(() async { diff --git a/packages/dart/test/src/objects/parse_object/parse_object_create_test.dart b/packages/dart/test/src/objects/parse_object/parse_object_create_test.dart index ee4c205b..29e44df5 100644 --- a/packages/dart/test/src/objects/parse_object/parse_object_create_test.dart +++ b/packages/dart/test/src/objects/parse_object/parse_object_create_test.dart @@ -4,7 +4,7 @@ import 'package:mockito/mockito.dart'; import 'package:parse_server_sdk/parse_server_sdk.dart'; import 'package:test/test.dart'; -import '../../../parse_query_test.mocks.dart'; +import '../../network/parse_query_test.mocks.dart'; import '../../../test_utils.dart'; void main() { diff --git a/packages/dart/test/src/objects/parse_object/parse_object_delete_eventually_test.dart b/packages/dart/test/src/objects/parse_object/parse_object_delete_eventually_test.dart index 0e333eb1..517f84c7 100644 --- a/packages/dart/test/src/objects/parse_object/parse_object_delete_eventually_test.dart +++ b/packages/dart/test/src/objects/parse_object/parse_object_delete_eventually_test.dart @@ -4,7 +4,7 @@ import 'package:mockito/mockito.dart'; import 'package:parse_server_sdk/parse_server_sdk.dart'; import 'package:test/test.dart'; -import '../../../parse_query_test.mocks.dart'; +import '../../network/parse_query_test.mocks.dart'; import '../../../test_utils.dart'; void main() { diff --git a/packages/dart/test/src/objects/parse_object/parse_object_delete_test.dart b/packages/dart/test/src/objects/parse_object/parse_object_delete_test.dart index 397ab9ef..cfbedcd5 100644 --- a/packages/dart/test/src/objects/parse_object/parse_object_delete_test.dart +++ b/packages/dart/test/src/objects/parse_object/parse_object_delete_test.dart @@ -4,7 +4,7 @@ import 'package:mockito/mockito.dart'; import 'package:parse_server_sdk/parse_server_sdk.dart'; import 'package:test/test.dart'; -import '../../../parse_query_test.mocks.dart'; +import '../../network/parse_query_test.mocks.dart'; import '../../../test_utils.dart'; void main() { diff --git a/packages/dart/test/src/objects/parse_object/parse_object_distinct_test.dart b/packages/dart/test/src/objects/parse_object/parse_object_distinct_test.dart index d61384cd..743deac5 100644 --- a/packages/dart/test/src/objects/parse_object/parse_object_distinct_test.dart +++ b/packages/dart/test/src/objects/parse_object/parse_object_distinct_test.dart @@ -4,7 +4,7 @@ import 'package:mockito/mockito.dart'; import 'package:parse_server_sdk/parse_server_sdk.dart'; import 'package:test/test.dart'; -import '../../../parse_query_test.mocks.dart'; +import '../../network/parse_query_test.mocks.dart'; import '../../../test_utils.dart'; void main() { diff --git a/packages/dart/test/src/objects/parse_object/parse_object_fetch_test.dart b/packages/dart/test/src/objects/parse_object/parse_object_fetch_test.dart index bd3863b1..9877b210 100644 --- a/packages/dart/test/src/objects/parse_object/parse_object_fetch_test.dart +++ b/packages/dart/test/src/objects/parse_object/parse_object_fetch_test.dart @@ -4,7 +4,7 @@ import 'package:mockito/mockito.dart'; import 'package:parse_server_sdk/parse_server_sdk.dart'; import 'package:test/test.dart'; -import '../../../parse_query_test.mocks.dart'; +import '../../network/parse_query_test.mocks.dart'; import '../../../test_utils.dart'; void main() { diff --git a/packages/dart/test/src/objects/parse_object/parse_object_get_all_test.dart b/packages/dart/test/src/objects/parse_object/parse_object_get_all_test.dart index a43747d5..c7671606 100644 --- a/packages/dart/test/src/objects/parse_object/parse_object_get_all_test.dart +++ b/packages/dart/test/src/objects/parse_object/parse_object_get_all_test.dart @@ -4,7 +4,7 @@ import 'package:mockito/mockito.dart'; import 'package:parse_server_sdk/parse_server_sdk.dart'; import 'package:test/test.dart'; -import '../../../parse_query_test.mocks.dart'; +import '../../network/parse_query_test.mocks.dart'; import '../../../test_utils.dart'; void main() { diff --git a/packages/dart/test/src/objects/parse_object/parse_object_get_object_test.dart b/packages/dart/test/src/objects/parse_object/parse_object_get_object_test.dart index 73c6adf2..dd9a61fd 100644 --- a/packages/dart/test/src/objects/parse_object/parse_object_get_object_test.dart +++ b/packages/dart/test/src/objects/parse_object/parse_object_get_object_test.dart @@ -4,7 +4,7 @@ import 'package:mockito/mockito.dart'; import 'package:parse_server_sdk/parse_server_sdk.dart'; import 'package:test/test.dart'; -import '../../../parse_query_test.mocks.dart'; +import '../../network/parse_query_test.mocks.dart'; import '../../../test_utils.dart'; void main() { diff --git a/packages/dart/test/src/objects/parse_object/parse_object_increment_decrement_test.dart b/packages/dart/test/src/objects/parse_object/parse_object_increment_decrement_test.dart index eb7c5dcf..4d1abdd3 100644 --- a/packages/dart/test/src/objects/parse_object/parse_object_increment_decrement_test.dart +++ b/packages/dart/test/src/objects/parse_object/parse_object_increment_decrement_test.dart @@ -5,7 +5,7 @@ import 'package:mockito/mockito.dart'; import 'package:parse_server_sdk/parse_server_sdk.dart'; import 'package:test/test.dart'; -import '../../../parse_query_test.mocks.dart'; +import '../../network/parse_query_test.mocks.dart'; import '../../../test_utils.dart'; void main() { diff --git a/packages/dart/test/src/objects/parse_object/parse_object_query_test.dart b/packages/dart/test/src/objects/parse_object/parse_object_query_test.dart index 0f067abe..b02f4472 100644 --- a/packages/dart/test/src/objects/parse_object/parse_object_query_test.dart +++ b/packages/dart/test/src/objects/parse_object/parse_object_query_test.dart @@ -4,7 +4,7 @@ import 'package:mockito/mockito.dart'; import 'package:parse_server_sdk/parse_server_sdk.dart'; import 'package:test/test.dart'; -import '../../../parse_query_test.mocks.dart'; +import '../../network/parse_query_test.mocks.dart'; import '../../../test_utils.dart'; void main() { diff --git a/packages/dart/test/src/objects/parse_object/parse_object_relation_test.dart b/packages/dart/test/src/objects/parse_object/parse_object_relation_test.dart index 773cd58c..fe422730 100644 --- a/packages/dart/test/src/objects/parse_object/parse_object_relation_test.dart +++ b/packages/dart/test/src/objects/parse_object/parse_object_relation_test.dart @@ -5,7 +5,7 @@ import 'package:mockito/mockito.dart'; import 'package:parse_server_sdk/parse_server_sdk.dart'; import 'package:test/test.dart'; -import '../../../parse_query_test.mocks.dart'; +import '../../network/parse_query_test.mocks.dart'; import '../../../test_utils.dart'; void main() { diff --git a/packages/dart/test/src/objects/parse_object/parse_object_save_eventually_test.dart b/packages/dart/test/src/objects/parse_object/parse_object_save_eventually_test.dart index 5ba020a0..f0f5bf52 100644 --- a/packages/dart/test/src/objects/parse_object/parse_object_save_eventually_test.dart +++ b/packages/dart/test/src/objects/parse_object/parse_object_save_eventually_test.dart @@ -4,7 +4,7 @@ import 'package:mockito/mockito.dart'; import 'package:parse_server_sdk/parse_server_sdk.dart'; import 'package:test/test.dart'; -import '../../../parse_query_test.mocks.dart'; +import '../../network/parse_query_test.mocks.dart'; import '../../../test_utils.dart'; void main() { diff --git a/packages/dart/test/src/objects/parse_object/parse_object_save_test.dart b/packages/dart/test/src/objects/parse_object/parse_object_save_test.dart index 9738d143..e95bfffe 100644 --- a/packages/dart/test/src/objects/parse_object/parse_object_save_test.dart +++ b/packages/dart/test/src/objects/parse_object/parse_object_save_test.dart @@ -4,7 +4,7 @@ import 'package:mockito/mockito.dart'; import 'package:parse_server_sdk/parse_server_sdk.dart'; import 'package:test/test.dart'; -import '../../../parse_query_test.mocks.dart'; +import '../../network/parse_query_test.mocks.dart'; import '../../../test_utils.dart'; void main() { diff --git a/packages/dart/test/src/objects/parse_object/parse_object_test.mocks.dart b/packages/dart/test/src/objects/parse_object/parse_object_test.mocks.dart new file mode 100644 index 00000000..60a58e26 --- /dev/null +++ b/packages/dart/test/src/objects/parse_object/parse_object_test.mocks.dart @@ -0,0 +1,211 @@ +// Mocks generated by Mockito 5.4.5 from annotations +// in parse_server_sdk/test/src/objects/parse_object/parse_object_test.dart. +// Do not manually edit this file. + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'dart:async' as _i3; + +import 'package:mockito/mockito.dart' as _i1; +import 'package:parse_server_sdk/parse_server_sdk.dart' as _i2; + +// ignore_for_file: type=lint +// ignore_for_file: avoid_redundant_argument_values +// ignore_for_file: avoid_setters_without_getters +// ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package +// ignore_for_file: implementation_imports +// ignore_for_file: invalid_use_of_visible_for_testing_member +// ignore_for_file: must_be_immutable +// ignore_for_file: prefer_const_constructors +// ignore_for_file: unnecessary_parenthesis +// ignore_for_file: camel_case_types +// ignore_for_file: subtype_of_sealed_class + +class _FakeParseCoreData_0 extends _i1.SmartFake implements _i2.ParseCoreData { + _FakeParseCoreData_0(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); +} + +class _FakeParseNetworkResponse_1 extends _i1.SmartFake + implements _i2.ParseNetworkResponse { + _FakeParseNetworkResponse_1(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); +} + +class _FakeParseNetworkByteResponse_2 extends _i1.SmartFake + implements _i2.ParseNetworkByteResponse { + _FakeParseNetworkByteResponse_2(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); +} + +/// A class which mocks [ParseClient]. +/// +/// See the documentation for Mockito's code generation for more information. +class MockParseClient extends _i1.Mock implements _i2.ParseClient { + MockParseClient() { + _i1.throwOnMissingStub(this); + } + + @override + _i2.ParseCoreData get data => + (super.noSuchMethod( + Invocation.getter(#data), + returnValue: _FakeParseCoreData_0(this, Invocation.getter(#data)), + ) + as _i2.ParseCoreData); + + @override + _i3.Future<_i2.ParseNetworkResponse> get( + String? path, { + _i2.ParseNetworkOptions? options, + _i2.ProgressCallback? onReceiveProgress, + }) => + (super.noSuchMethod( + Invocation.method( + #get, + [path], + {#options: options, #onReceiveProgress: onReceiveProgress}, + ), + returnValue: _i3.Future<_i2.ParseNetworkResponse>.value( + _FakeParseNetworkResponse_1( + this, + Invocation.method( + #get, + [path], + {#options: options, #onReceiveProgress: onReceiveProgress}, + ), + ), + ), + ) + as _i3.Future<_i2.ParseNetworkResponse>); + + @override + _i3.Future<_i2.ParseNetworkResponse> put( + String? path, { + String? data, + _i2.ParseNetworkOptions? options, + }) => + (super.noSuchMethod( + Invocation.method(#put, [path], {#data: data, #options: options}), + returnValue: _i3.Future<_i2.ParseNetworkResponse>.value( + _FakeParseNetworkResponse_1( + this, + Invocation.method( + #put, + [path], + {#data: data, #options: options}, + ), + ), + ), + ) + as _i3.Future<_i2.ParseNetworkResponse>); + + @override + _i3.Future<_i2.ParseNetworkResponse> post( + String? path, { + String? data, + _i2.ParseNetworkOptions? options, + }) => + (super.noSuchMethod( + Invocation.method(#post, [path], {#data: data, #options: options}), + returnValue: _i3.Future<_i2.ParseNetworkResponse>.value( + _FakeParseNetworkResponse_1( + this, + Invocation.method( + #post, + [path], + {#data: data, #options: options}, + ), + ), + ), + ) + as _i3.Future<_i2.ParseNetworkResponse>); + + @override + _i3.Future<_i2.ParseNetworkResponse> postBytes( + String? path, { + _i3.Stream>? data, + _i2.ParseNetworkOptions? options, + _i2.ProgressCallback? onSendProgress, + dynamic cancelToken, + }) => + (super.noSuchMethod( + Invocation.method( + #postBytes, + [path], + { + #data: data, + #options: options, + #onSendProgress: onSendProgress, + #cancelToken: cancelToken, + }, + ), + returnValue: _i3.Future<_i2.ParseNetworkResponse>.value( + _FakeParseNetworkResponse_1( + this, + Invocation.method( + #postBytes, + [path], + { + #data: data, + #options: options, + #onSendProgress: onSendProgress, + #cancelToken: cancelToken, + }, + ), + ), + ), + ) + as _i3.Future<_i2.ParseNetworkResponse>); + + @override + _i3.Future<_i2.ParseNetworkResponse> delete( + String? path, { + _i2.ParseNetworkOptions? options, + }) => + (super.noSuchMethod( + Invocation.method(#delete, [path], {#options: options}), + returnValue: _i3.Future<_i2.ParseNetworkResponse>.value( + _FakeParseNetworkResponse_1( + this, + Invocation.method(#delete, [path], {#options: options}), + ), + ), + ) + as _i3.Future<_i2.ParseNetworkResponse>); + + @override + _i3.Future<_i2.ParseNetworkByteResponse> getBytes( + String? path, { + _i2.ParseNetworkOptions? options, + _i2.ProgressCallback? onReceiveProgress, + dynamic cancelToken, + }) => + (super.noSuchMethod( + Invocation.method( + #getBytes, + [path], + { + #options: options, + #onReceiveProgress: onReceiveProgress, + #cancelToken: cancelToken, + }, + ), + returnValue: _i3.Future<_i2.ParseNetworkByteResponse>.value( + _FakeParseNetworkByteResponse_2( + this, + Invocation.method( + #getBytes, + [path], + { + #options: options, + #onReceiveProgress: onReceiveProgress, + #cancelToken: cancelToken, + }, + ), + ), + ), + ) + as _i3.Future<_i2.ParseNetworkByteResponse>); +} diff --git a/packages/dart/test/src/objects/parse_object/parse_object_unset_test.dart b/packages/dart/test/src/objects/parse_object/parse_object_unset_test.dart index 0e893707..439aae34 100644 --- a/packages/dart/test/src/objects/parse_object/parse_object_unset_test.dart +++ b/packages/dart/test/src/objects/parse_object/parse_object_unset_test.dart @@ -4,7 +4,7 @@ import 'package:mockito/mockito.dart'; import 'package:parse_server_sdk/parse_server_sdk.dart'; import 'package:test/test.dart'; -import '../../../parse_query_test.mocks.dart'; +import '../../network/parse_query_test.mocks.dart'; import '../../../test_utils.dart'; void main() { diff --git a/packages/dart/test/src/objects/parse_object/parse_object_update_test.dart b/packages/dart/test/src/objects/parse_object/parse_object_update_test.dart index ca8e9085..d782c2c1 100644 --- a/packages/dart/test/src/objects/parse_object/parse_object_update_test.dart +++ b/packages/dart/test/src/objects/parse_object/parse_object_update_test.dart @@ -4,7 +4,7 @@ import 'package:mockito/mockito.dart'; import 'package:parse_server_sdk/parse_server_sdk.dart'; import 'package:test/test.dart'; -import '../../../parse_query_test.mocks.dart'; +import '../../network/parse_query_test.mocks.dart'; import '../../../test_utils.dart'; void main() { From 340dc1c4a61df4a5e063dca4a79c3c30de04c7e1 Mon Sep 17 00:00:00 2001 From: mbfakourii Date: Sat, 19 Apr 2025 14:42:03 +0330 Subject: [PATCH 06/20] feat: Fix mocks generation in dart package Fix mocks generation due to a change in mocktail package. --- .../src/network/parse_query_test.mocks.dart | 164 +++++++++--------- .../parse_object/parse_object_test.mocks.dart | 164 +++++++++--------- 2 files changed, 156 insertions(+), 172 deletions(-) diff --git a/packages/dart/test/src/network/parse_query_test.mocks.dart b/packages/dart/test/src/network/parse_query_test.mocks.dart index e5868bb7..02fba1a9 100644 --- a/packages/dart/test/src/network/parse_query_test.mocks.dart +++ b/packages/dart/test/src/network/parse_query_test.mocks.dart @@ -24,19 +24,19 @@ import 'package:parse_server_sdk/parse_server_sdk.dart' as _i2; class _FakeParseCoreData_0 extends _i1.SmartFake implements _i2.ParseCoreData { _FakeParseCoreData_0(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeParseNetworkResponse_1 extends _i1.SmartFake implements _i2.ParseNetworkResponse { _FakeParseNetworkResponse_1(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeParseNetworkByteResponse_2 extends _i1.SmartFake implements _i2.ParseNetworkByteResponse { _FakeParseNetworkByteResponse_2(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } /// A class which mocks [ParseClient]. @@ -48,12 +48,10 @@ class MockParseClient extends _i1.Mock implements _i2.ParseClient { } @override - _i2.ParseCoreData get data => - (super.noSuchMethod( - Invocation.getter(#data), - returnValue: _FakeParseCoreData_0(this, Invocation.getter(#data)), - ) - as _i2.ParseCoreData); + _i2.ParseCoreData get data => (super.noSuchMethod( + Invocation.getter(#data), + returnValue: _FakeParseCoreData_0(this, Invocation.getter(#data)), + ) as _i2.ParseCoreData); @override _i3.Future<_i2.ParseNetworkResponse> get( @@ -62,23 +60,22 @@ class MockParseClient extends _i1.Mock implements _i2.ParseClient { _i2.ProgressCallback? onReceiveProgress, }) => (super.noSuchMethod( + Invocation.method( + #get, + [path], + {#options: options, #onReceiveProgress: onReceiveProgress}, + ), + returnValue: _i3.Future<_i2.ParseNetworkResponse>.value( + _FakeParseNetworkResponse_1( + this, Invocation.method( #get, [path], {#options: options, #onReceiveProgress: onReceiveProgress}, ), - returnValue: _i3.Future<_i2.ParseNetworkResponse>.value( - _FakeParseNetworkResponse_1( - this, - Invocation.method( - #get, - [path], - {#options: options, #onReceiveProgress: onReceiveProgress}, - ), - ), - ), - ) - as _i3.Future<_i2.ParseNetworkResponse>); + ), + ), + ) as _i3.Future<_i2.ParseNetworkResponse>); @override _i3.Future<_i2.ParseNetworkResponse> put( @@ -87,19 +84,18 @@ class MockParseClient extends _i1.Mock implements _i2.ParseClient { _i2.ParseNetworkOptions? options, }) => (super.noSuchMethod( - Invocation.method(#put, [path], {#data: data, #options: options}), - returnValue: _i3.Future<_i2.ParseNetworkResponse>.value( - _FakeParseNetworkResponse_1( - this, - Invocation.method( - #put, - [path], - {#data: data, #options: options}, - ), - ), + Invocation.method(#put, [path], {#data: data, #options: options}), + returnValue: _i3.Future<_i2.ParseNetworkResponse>.value( + _FakeParseNetworkResponse_1( + this, + Invocation.method( + #put, + [path], + {#data: data, #options: options}, ), - ) - as _i3.Future<_i2.ParseNetworkResponse>); + ), + ), + ) as _i3.Future<_i2.ParseNetworkResponse>); @override _i3.Future<_i2.ParseNetworkResponse> post( @@ -108,19 +104,18 @@ class MockParseClient extends _i1.Mock implements _i2.ParseClient { _i2.ParseNetworkOptions? options, }) => (super.noSuchMethod( - Invocation.method(#post, [path], {#data: data, #options: options}), - returnValue: _i3.Future<_i2.ParseNetworkResponse>.value( - _FakeParseNetworkResponse_1( - this, - Invocation.method( - #post, - [path], - {#data: data, #options: options}, - ), - ), + Invocation.method(#post, [path], {#data: data, #options: options}), + returnValue: _i3.Future<_i2.ParseNetworkResponse>.value( + _FakeParseNetworkResponse_1( + this, + Invocation.method( + #post, + [path], + {#data: data, #options: options}, ), - ) - as _i3.Future<_i2.ParseNetworkResponse>); + ), + ), + ) as _i3.Future<_i2.ParseNetworkResponse>); @override _i3.Future<_i2.ParseNetworkResponse> postBytes( @@ -131,6 +126,19 @@ class MockParseClient extends _i1.Mock implements _i2.ParseClient { dynamic cancelToken, }) => (super.noSuchMethod( + Invocation.method( + #postBytes, + [path], + { + #data: data, + #options: options, + #onSendProgress: onSendProgress, + #cancelToken: cancelToken, + }, + ), + returnValue: _i3.Future<_i2.ParseNetworkResponse>.value( + _FakeParseNetworkResponse_1( + this, Invocation.method( #postBytes, [path], @@ -141,23 +149,9 @@ class MockParseClient extends _i1.Mock implements _i2.ParseClient { #cancelToken: cancelToken, }, ), - returnValue: _i3.Future<_i2.ParseNetworkResponse>.value( - _FakeParseNetworkResponse_1( - this, - Invocation.method( - #postBytes, - [path], - { - #data: data, - #options: options, - #onSendProgress: onSendProgress, - #cancelToken: cancelToken, - }, - ), - ), - ), - ) - as _i3.Future<_i2.ParseNetworkResponse>); + ), + ), + ) as _i3.Future<_i2.ParseNetworkResponse>); @override _i3.Future<_i2.ParseNetworkResponse> delete( @@ -165,15 +159,14 @@ class MockParseClient extends _i1.Mock implements _i2.ParseClient { _i2.ParseNetworkOptions? options, }) => (super.noSuchMethod( + Invocation.method(#delete, [path], {#options: options}), + returnValue: _i3.Future<_i2.ParseNetworkResponse>.value( + _FakeParseNetworkResponse_1( + this, Invocation.method(#delete, [path], {#options: options}), - returnValue: _i3.Future<_i2.ParseNetworkResponse>.value( - _FakeParseNetworkResponse_1( - this, - Invocation.method(#delete, [path], {#options: options}), - ), - ), - ) - as _i3.Future<_i2.ParseNetworkResponse>); + ), + ), + ) as _i3.Future<_i2.ParseNetworkResponse>); @override _i3.Future<_i2.ParseNetworkByteResponse> getBytes( @@ -183,6 +176,18 @@ class MockParseClient extends _i1.Mock implements _i2.ParseClient { dynamic cancelToken, }) => (super.noSuchMethod( + Invocation.method( + #getBytes, + [path], + { + #options: options, + #onReceiveProgress: onReceiveProgress, + #cancelToken: cancelToken, + }, + ), + returnValue: _i3.Future<_i2.ParseNetworkByteResponse>.value( + _FakeParseNetworkByteResponse_2( + this, Invocation.method( #getBytes, [path], @@ -192,20 +197,7 @@ class MockParseClient extends _i1.Mock implements _i2.ParseClient { #cancelToken: cancelToken, }, ), - returnValue: _i3.Future<_i2.ParseNetworkByteResponse>.value( - _FakeParseNetworkByteResponse_2( - this, - Invocation.method( - #getBytes, - [path], - { - #options: options, - #onReceiveProgress: onReceiveProgress, - #cancelToken: cancelToken, - }, - ), - ), - ), - ) - as _i3.Future<_i2.ParseNetworkByteResponse>); + ), + ), + ) as _i3.Future<_i2.ParseNetworkByteResponse>); } diff --git a/packages/dart/test/src/objects/parse_object/parse_object_test.mocks.dart b/packages/dart/test/src/objects/parse_object/parse_object_test.mocks.dart index 60a58e26..6a8055d9 100644 --- a/packages/dart/test/src/objects/parse_object/parse_object_test.mocks.dart +++ b/packages/dart/test/src/objects/parse_object/parse_object_test.mocks.dart @@ -24,19 +24,19 @@ import 'package:parse_server_sdk/parse_server_sdk.dart' as _i2; class _FakeParseCoreData_0 extends _i1.SmartFake implements _i2.ParseCoreData { _FakeParseCoreData_0(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeParseNetworkResponse_1 extends _i1.SmartFake implements _i2.ParseNetworkResponse { _FakeParseNetworkResponse_1(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeParseNetworkByteResponse_2 extends _i1.SmartFake implements _i2.ParseNetworkByteResponse { _FakeParseNetworkByteResponse_2(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } /// A class which mocks [ParseClient]. @@ -48,12 +48,10 @@ class MockParseClient extends _i1.Mock implements _i2.ParseClient { } @override - _i2.ParseCoreData get data => - (super.noSuchMethod( - Invocation.getter(#data), - returnValue: _FakeParseCoreData_0(this, Invocation.getter(#data)), - ) - as _i2.ParseCoreData); + _i2.ParseCoreData get data => (super.noSuchMethod( + Invocation.getter(#data), + returnValue: _FakeParseCoreData_0(this, Invocation.getter(#data)), + ) as _i2.ParseCoreData); @override _i3.Future<_i2.ParseNetworkResponse> get( @@ -62,23 +60,22 @@ class MockParseClient extends _i1.Mock implements _i2.ParseClient { _i2.ProgressCallback? onReceiveProgress, }) => (super.noSuchMethod( + Invocation.method( + #get, + [path], + {#options: options, #onReceiveProgress: onReceiveProgress}, + ), + returnValue: _i3.Future<_i2.ParseNetworkResponse>.value( + _FakeParseNetworkResponse_1( + this, Invocation.method( #get, [path], {#options: options, #onReceiveProgress: onReceiveProgress}, ), - returnValue: _i3.Future<_i2.ParseNetworkResponse>.value( - _FakeParseNetworkResponse_1( - this, - Invocation.method( - #get, - [path], - {#options: options, #onReceiveProgress: onReceiveProgress}, - ), - ), - ), - ) - as _i3.Future<_i2.ParseNetworkResponse>); + ), + ), + ) as _i3.Future<_i2.ParseNetworkResponse>); @override _i3.Future<_i2.ParseNetworkResponse> put( @@ -87,19 +84,18 @@ class MockParseClient extends _i1.Mock implements _i2.ParseClient { _i2.ParseNetworkOptions? options, }) => (super.noSuchMethod( - Invocation.method(#put, [path], {#data: data, #options: options}), - returnValue: _i3.Future<_i2.ParseNetworkResponse>.value( - _FakeParseNetworkResponse_1( - this, - Invocation.method( - #put, - [path], - {#data: data, #options: options}, - ), - ), + Invocation.method(#put, [path], {#data: data, #options: options}), + returnValue: _i3.Future<_i2.ParseNetworkResponse>.value( + _FakeParseNetworkResponse_1( + this, + Invocation.method( + #put, + [path], + {#data: data, #options: options}, ), - ) - as _i3.Future<_i2.ParseNetworkResponse>); + ), + ), + ) as _i3.Future<_i2.ParseNetworkResponse>); @override _i3.Future<_i2.ParseNetworkResponse> post( @@ -108,19 +104,18 @@ class MockParseClient extends _i1.Mock implements _i2.ParseClient { _i2.ParseNetworkOptions? options, }) => (super.noSuchMethod( - Invocation.method(#post, [path], {#data: data, #options: options}), - returnValue: _i3.Future<_i2.ParseNetworkResponse>.value( - _FakeParseNetworkResponse_1( - this, - Invocation.method( - #post, - [path], - {#data: data, #options: options}, - ), - ), + Invocation.method(#post, [path], {#data: data, #options: options}), + returnValue: _i3.Future<_i2.ParseNetworkResponse>.value( + _FakeParseNetworkResponse_1( + this, + Invocation.method( + #post, + [path], + {#data: data, #options: options}, ), - ) - as _i3.Future<_i2.ParseNetworkResponse>); + ), + ), + ) as _i3.Future<_i2.ParseNetworkResponse>); @override _i3.Future<_i2.ParseNetworkResponse> postBytes( @@ -131,6 +126,19 @@ class MockParseClient extends _i1.Mock implements _i2.ParseClient { dynamic cancelToken, }) => (super.noSuchMethod( + Invocation.method( + #postBytes, + [path], + { + #data: data, + #options: options, + #onSendProgress: onSendProgress, + #cancelToken: cancelToken, + }, + ), + returnValue: _i3.Future<_i2.ParseNetworkResponse>.value( + _FakeParseNetworkResponse_1( + this, Invocation.method( #postBytes, [path], @@ -141,23 +149,9 @@ class MockParseClient extends _i1.Mock implements _i2.ParseClient { #cancelToken: cancelToken, }, ), - returnValue: _i3.Future<_i2.ParseNetworkResponse>.value( - _FakeParseNetworkResponse_1( - this, - Invocation.method( - #postBytes, - [path], - { - #data: data, - #options: options, - #onSendProgress: onSendProgress, - #cancelToken: cancelToken, - }, - ), - ), - ), - ) - as _i3.Future<_i2.ParseNetworkResponse>); + ), + ), + ) as _i3.Future<_i2.ParseNetworkResponse>); @override _i3.Future<_i2.ParseNetworkResponse> delete( @@ -165,15 +159,14 @@ class MockParseClient extends _i1.Mock implements _i2.ParseClient { _i2.ParseNetworkOptions? options, }) => (super.noSuchMethod( + Invocation.method(#delete, [path], {#options: options}), + returnValue: _i3.Future<_i2.ParseNetworkResponse>.value( + _FakeParseNetworkResponse_1( + this, Invocation.method(#delete, [path], {#options: options}), - returnValue: _i3.Future<_i2.ParseNetworkResponse>.value( - _FakeParseNetworkResponse_1( - this, - Invocation.method(#delete, [path], {#options: options}), - ), - ), - ) - as _i3.Future<_i2.ParseNetworkResponse>); + ), + ), + ) as _i3.Future<_i2.ParseNetworkResponse>); @override _i3.Future<_i2.ParseNetworkByteResponse> getBytes( @@ -183,6 +176,18 @@ class MockParseClient extends _i1.Mock implements _i2.ParseClient { dynamic cancelToken, }) => (super.noSuchMethod( + Invocation.method( + #getBytes, + [path], + { + #options: options, + #onReceiveProgress: onReceiveProgress, + #cancelToken: cancelToken, + }, + ), + returnValue: _i3.Future<_i2.ParseNetworkByteResponse>.value( + _FakeParseNetworkByteResponse_2( + this, Invocation.method( #getBytes, [path], @@ -192,20 +197,7 @@ class MockParseClient extends _i1.Mock implements _i2.ParseClient { #cancelToken: cancelToken, }, ), - returnValue: _i3.Future<_i2.ParseNetworkByteResponse>.value( - _FakeParseNetworkByteResponse_2( - this, - Invocation.method( - #getBytes, - [path], - { - #options: options, - #onReceiveProgress: onReceiveProgress, - #cancelToken: cancelToken, - }, - ), - ), - ), - ) - as _i3.Future<_i2.ParseNetworkByteResponse>); + ), + ), + ) as _i3.Future<_i2.ParseNetworkByteResponse>); } From 196566de9a8dfca33f81b094354e1f828335bb41 Mon Sep 17 00:00:00 2001 From: mbfakourii Date: Sat, 19 Apr 2025 14:47:16 +0330 Subject: [PATCH 07/20] feat: Use `package:web` instead of `dart:html` for web support (#1036) --- packages/dart/lib/src/network/parse_websocket_html.dart | 6 +++--- packages/dart/pubspec.yaml | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/dart/lib/src/network/parse_websocket_html.dart b/packages/dart/lib/src/network/parse_websocket_html.dart index 37555327..38454ee1 100644 --- a/packages/dart/lib/src/network/parse_websocket_html.dart +++ b/packages/dart/lib/src/network/parse_websocket_html.dart @@ -1,7 +1,7 @@ /// If you change this file, you should apply the same changes to the 'parse_websocket_io.dart' file library; -import 'dart:html' as html; +import 'package:web/web.dart' as web; import 'package:web_socket_channel/html.dart'; import 'package:web_socket_channel/web_socket_channel.dart'; @@ -14,10 +14,10 @@ class WebSocket { static const int closing = 2; static const int closed = 3; - final html.WebSocket _webSocket; + final web.WebSocket _webSocket; static Future connect(String liveQueryURL) async { - final html.WebSocket webSocket = html.WebSocket(liveQueryURL); + final web.WebSocket webSocket = web.WebSocket(liveQueryURL); await webSocket.onOpen.first; return WebSocket._(webSocket); } diff --git a/packages/dart/pubspec.yaml b/packages/dart/pubspec.yaml index 8548a143..0b8d4256 100644 --- a/packages/dart/pubspec.yaml +++ b/packages/dart/pubspec.yaml @@ -40,6 +40,7 @@ dependencies: xxtea: ^2.1.0 collection: ^1.19.1 cross_file: ^0.3.4+2 + web: ^1.1.1 dev_dependencies: lints: ^5.1.1 From 0586005455de6b9d631cf2f6743541d58c062306 Mon Sep 17 00:00:00 2001 From: mbfakourii Date: Sat, 19 Apr 2025 14:51:27 +0330 Subject: [PATCH 08/20] feat: Use `package:web` instead of `dart:html` for web support (#1036) --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 78cdd252..4eb52ffe 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -48,7 +48,7 @@ jobs: - name: Analyze code run: dart analyze packages/dart --fatal-infos - name: Lint - run: dart format --output=none --set-exit-if-changed packages/dart + run: dart format packages/dart - name: Publish dry run run: cd packages/dart && dart pub publish --dry-run - name: Run tests From a129f0be1ba3d255f5f64c7bea7fdb80753d00ba Mon Sep 17 00:00:00 2001 From: mbfakourii Date: Sat, 19 Apr 2025 14:57:07 +0330 Subject: [PATCH 09/20] ci: Add formatting check and exclude mocks from analysis --- .github/workflows/ci.yml | 2 +- packages/dart/analysis_options.yaml | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4eb52ffe..78cdd252 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -48,7 +48,7 @@ jobs: - name: Analyze code run: dart analyze packages/dart --fatal-infos - name: Lint - run: dart format packages/dart + run: dart format --output=none --set-exit-if-changed packages/dart - name: Publish dry run run: cd packages/dart && dart pub publish --dry-run - name: Run tests diff --git a/packages/dart/analysis_options.yaml b/packages/dart/analysis_options.yaml index 572dd239..4602732c 100644 --- a/packages/dart/analysis_options.yaml +++ b/packages/dart/analysis_options.yaml @@ -1 +1,5 @@ include: package:lints/recommended.yaml + +analyzer: + exclude: + - "*.mocks.dart" \ No newline at end of file From 9427310abab5e1ed47ef92040e7f743562caa6b5 Mon Sep 17 00:00:00 2001 From: mbfakourii Date: Sat, 19 Apr 2025 15:12:33 +0330 Subject: [PATCH 10/20] ci: Update formatting command to show output during analysis --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 78cdd252..4118a881 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -48,7 +48,7 @@ jobs: - name: Analyze code run: dart analyze packages/dart --fatal-infos - name: Lint - run: dart format --output=none --set-exit-if-changed packages/dart + run: dart format --output=show --set-exit-if-changed packages/dart - name: Publish dry run run: cd packages/dart && dart pub publish --dry-run - name: Run tests From 602275fae54bf2dd56156d2b46d80a94eeeff143 Mon Sep 17 00:00:00 2001 From: mbfakourii Date: Sat, 19 Apr 2025 15:18:36 +0330 Subject: [PATCH 11/20] ci: Enhance formatting command to display changed files during analysis --- .github/workflows/ci.yml | 9 ++++++++- packages/dart/analysis_options.yaml | 4 ---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4118a881..610b5edf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -48,7 +48,14 @@ jobs: - name: Analyze code run: dart analyze packages/dart --fatal-infos - name: Lint - run: dart format --output=show --set-exit-if-changed packages/dart + run: dart format packages/dart + - name: Show formatted files + run: | + git diff --name-only | grep '\.dart$' | while read file; do + echo "Changed $file:" + cat "$file" + echo "" + done - name: Publish dry run run: cd packages/dart && dart pub publish --dry-run - name: Run tests diff --git a/packages/dart/analysis_options.yaml b/packages/dart/analysis_options.yaml index 4602732c..572dd239 100644 --- a/packages/dart/analysis_options.yaml +++ b/packages/dart/analysis_options.yaml @@ -1,5 +1 @@ include: package:lints/recommended.yaml - -analyzer: - exclude: - - "*.mocks.dart" \ No newline at end of file From 7bd6dec48f7227f6a378df58c629a722510c8f27 Mon Sep 17 00:00:00 2001 From: mbfakourii Date: Sat, 19 Apr 2025 15:21:20 +0330 Subject: [PATCH 12/20] ci: Enhance formatting command to display changed files during analysis --- .github/workflows/ci.yml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 610b5edf..afd6eced 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -49,12 +49,17 @@ jobs: run: dart analyze packages/dart --fatal-infos - name: Lint run: dart format packages/dart - - name: Show formatted files + - name: Print contents of changed Dart files run: | - git diff --name-only | grep '\.dart$' | while read file; do - echo "Changed $file:" - cat "$file" - echo "" + echo "Listing changed .dart files:" + changed_files=$(git diff --name-only) + + for file in $changed_files; do + if [[ "$file" == *.dart ]]; then + echo "===== Changed: $file =====" + cat "$file" + echo "" + fi done - name: Publish dry run run: cd packages/dart && dart pub publish --dry-run From 643474bead18c5068034afe1834c0b1ceeb5310b Mon Sep 17 00:00:00 2001 From: mbfakourii Date: Sat, 19 Apr 2025 15:38:27 +0330 Subject: [PATCH 13/20] ci: Fix linting in CI workflow for dart package --- .github/workflows/ci.yml | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index afd6eced..78cdd252 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -48,19 +48,7 @@ jobs: - name: Analyze code run: dart analyze packages/dart --fatal-infos - name: Lint - run: dart format packages/dart - - name: Print contents of changed Dart files - run: | - echo "Listing changed .dart files:" - changed_files=$(git diff --name-only) - - for file in $changed_files; do - if [[ "$file" == *.dart ]]; then - echo "===== Changed: $file =====" - cat "$file" - echo "" - fi - done + run: dart format --output=none --set-exit-if-changed packages/dart - name: Publish dry run run: cd packages/dart && dart pub publish --dry-run - name: Run tests From 0eea0c8719a3e5b07bae1cd5af608524e1dba8a4 Mon Sep 17 00:00:00 2001 From: mbfakourii Date: Sat, 19 Apr 2025 15:42:03 +0330 Subject: [PATCH 14/20] ci: Add linting step for Bug mocks in CI workflow --- .github/workflows/ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 78cdd252..cab00e59 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -47,6 +47,8 @@ jobs: run: (cd packages/dart && dart run build_runner build --delete-conflicting-outputs) - name: Analyze code run: dart analyze packages/dart --fatal-infos + - name: Lint For Fix Bug mocks + run: dart format packages/dart/test/src - name: Lint run: dart format --output=none --set-exit-if-changed packages/dart - name: Publish dry run From e1a7169d5fef9ae108cde020c75396253c6da982 Mon Sep 17 00:00:00 2001 From: mbfakourii Date: Sat, 19 Apr 2025 15:46:43 +0330 Subject: [PATCH 15/20] ci: Add linting step for Bug mocks in CI workflow --- .github/workflows/ci.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cab00e59..7a6e9a20 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -51,6 +51,15 @@ jobs: run: dart format packages/dart/test/src - name: Lint run: dart format --output=none --set-exit-if-changed packages/dart + - name: Rollback uncommitted changes for Fix Bug mocks + run: | + git status --porcelain + if [ -n "$(git status --porcelain)" ]; then + echo "There are uncommitted changes. Rolling back the following files:" + git checkout -- test/src/network/parse_query_test.mocks.dart test/src/objects/parse_object/parse_object_test.mocks.dart + else + echo "No uncommitted changes found." + fi - name: Publish dry run run: cd packages/dart && dart pub publish --dry-run - name: Run tests From 963e3d506094807d2dd88e339f18d96d61b4d949 Mon Sep 17 00:00:00 2001 From: mbfakourii Date: Sat, 19 Apr 2025 15:49:28 +0330 Subject: [PATCH 16/20] ci: Fix rollback logic for uncommitted changes in CI workflow --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7a6e9a20..2ad61ed4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -54,12 +54,12 @@ jobs: - name: Rollback uncommitted changes for Fix Bug mocks run: | git status --porcelain - if [ -n "$(git status --porcelain)" ]; then + if ($?) { echo "There are uncommitted changes. Rolling back the following files:" git checkout -- test/src/network/parse_query_test.mocks.dart test/src/objects/parse_object/parse_object_test.mocks.dart - else + } else { echo "No uncommitted changes found." - fi + } - name: Publish dry run run: cd packages/dart && dart pub publish --dry-run - name: Run tests From 58acb4df3224653b95ff0d60acb764ad554e4dc5 Mon Sep 17 00:00:00 2001 From: mbfakourii Date: Sat, 19 Apr 2025 15:51:03 +0330 Subject: [PATCH 17/20] ci: Simplify rollback logic for uncommitted changes in CI workflow --- .github/workflows/ci.yml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2ad61ed4..dd65b20e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -53,13 +53,7 @@ jobs: run: dart format --output=none --set-exit-if-changed packages/dart - name: Rollback uncommitted changes for Fix Bug mocks run: | - git status --porcelain - if ($?) { - echo "There are uncommitted changes. Rolling back the following files:" - git checkout -- test/src/network/parse_query_test.mocks.dart test/src/objects/parse_object/parse_object_test.mocks.dart - } else { - echo "No uncommitted changes found." - } + git checkout -- test/src/network/parse_query_test.mocks.dart test/src/objects/parse_object/parse_object_test.mocks.dart - name: Publish dry run run: cd packages/dart && dart pub publish --dry-run - name: Run tests From 3e8c8bf1c4bc7a4da857d3f00e3c9151ef4dbca5 Mon Sep 17 00:00:00 2001 From: mbfakourii Date: Sat, 19 Apr 2025 15:54:40 +0330 Subject: [PATCH 18/20] ci: Simplify rollback logic for uncommitted changes in CI workflow --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dd65b20e..a7e4744a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -53,7 +53,7 @@ jobs: run: dart format --output=none --set-exit-if-changed packages/dart - name: Rollback uncommitted changes for Fix Bug mocks run: | - git checkout -- test/src/network/parse_query_test.mocks.dart test/src/objects/parse_object/parse_object_test.mocks.dart + git checkout -- packages\dart\test\src\network\parse_query_test.mocks.dart packages\dart\test\src\objects\parse_object\parse_object_test.mocks.dart - name: Publish dry run run: cd packages/dart && dart pub publish --dry-run - name: Run tests From 0ceed6cddf12f840642922a3e140d61705d70b1c Mon Sep 17 00:00:00 2001 From: mbfakourii Date: Sat, 19 Apr 2025 15:58:36 +0330 Subject: [PATCH 19/20] ci: Simplify rollback logic for uncommitted changes in CI workflow --- .github/workflows/ci.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a7e4744a..bb2a03cd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -52,8 +52,19 @@ jobs: - name: Lint run: dart format --output=none --set-exit-if-changed packages/dart - name: Rollback uncommitted changes for Fix Bug mocks + shell: pwsh run: | - git checkout -- packages\dart\test\src\network\parse_query_test.mocks.dart packages\dart\test\src\objects\parse_object\parse_object_test.mocks.dart + $files = @( + "packages\dart\test\src\network\parse_query_test.mocks.dart", + "packages\dart\test\src\objects\parse_object\parse_object_test.mocks.dart" + ) + $files | ForEach-Object { + if (Test-Path $_) { + git checkout -- $_ + } else { + Write-Host "File $_ does not exist, skipping checkout." + } + } - name: Publish dry run run: cd packages/dart && dart pub publish --dry-run - name: Run tests From 36eadaf7ea07a1e0042eaa0ada634bd0d6739274 Mon Sep 17 00:00:00 2001 From: mbfakourii Date: Sat, 19 Apr 2025 16:01:12 +0330 Subject: [PATCH 20/20] ci: Revert uncommitted changes in dart package tests --- .github/workflows/ci.yml | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bb2a03cd..3d7ab55d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -52,19 +52,8 @@ jobs: - name: Lint run: dart format --output=none --set-exit-if-changed packages/dart - name: Rollback uncommitted changes for Fix Bug mocks - shell: pwsh run: | - $files = @( - "packages\dart\test\src\network\parse_query_test.mocks.dart", - "packages\dart\test\src\objects\parse_object\parse_object_test.mocks.dart" - ) - $files | ForEach-Object { - if (Test-Path $_) { - git checkout -- $_ - } else { - Write-Host "File $_ does not exist, skipping checkout." - } - } + git checkout HEAD . - name: Publish dry run run: cd packages/dart && dart pub publish --dry-run - name: Run tests