From 7de9356f2510a7c640e2498553173d41c3ee96c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gast=C3=B3n=20Thea?= Date: Mon, 14 Aug 2023 17:22:41 -0300 Subject: [PATCH 1/2] Add config in platform (#83) --- splitio_platform_interface/lib/split_configuration.dart | 7 +++++++ splitio_platform_interface/pubspec.yaml | 2 +- .../test/splitio_configuration_test.dart | 2 ++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/splitio_platform_interface/lib/split_configuration.dart b/splitio_platform_interface/lib/split_configuration.dart index 0ee7d2b..4f3189e 100644 --- a/splitio_platform_interface/lib/split_configuration.dart +++ b/splitio_platform_interface/lib/split_configuration.dart @@ -42,6 +42,8 @@ class SplitConfiguration { /// [encryptionEnabled] If set to true, the local database contents is encrypted. Defaults to false. /// /// [logLevel] Enables logging according to the level specified. Options are [SplitLogLevel.verbose], [SplitLogLevel.none], [SplitLogLevel.debug], [SplitLogLevel.info], [SplitLogLevel.warning], and [SplitLogLevel.error]. + /// + /// [readyTimeout] Maximum amount of time in seconds to wait before firing the SDK_READY_TIMED_OUT event. If not set, the SDK will wait indefinitely. SplitConfiguration({ int? featuresRefreshRate, int? segmentsRefreshRate, @@ -67,6 +69,7 @@ class SplitConfiguration { UserConsent? userConsent, bool? encryptionEnabled, SplitLogLevel? logLevel, + int? readyTimeout, }) { if (featuresRefreshRate != null) { configurationMap['featuresRefreshRate'] = featuresRefreshRate; @@ -167,6 +170,10 @@ class SplitConfiguration { if (logLevel != null) { configurationMap['logLevel'] = logLevel.name; } + + if (readyTimeout != null) { + configurationMap['readyTimeout'] = readyTimeout; + } } } diff --git a/splitio_platform_interface/pubspec.yaml b/splitio_platform_interface/pubspec.yaml index 710ce64..412af1f 100644 --- a/splitio_platform_interface/pubspec.yaml +++ b/splitio_platform_interface/pubspec.yaml @@ -2,7 +2,7 @@ name: splitio_platform_interface description: A common platform interface for the splitio plugin. # NOTE: We strongly prefer non-breaking changes, even at the expense of a # less-clean API. See https://flutter.dev/go/platform-interface-breaking-changes -version: 1.2.0 +version: 1.3.0-rc.1 repository: https://github.com/splitio/flutter-sdk-plugin/tree/main/splitio_platform_interface environment: diff --git a/splitio_platform_interface/test/splitio_configuration_test.dart b/splitio_platform_interface/test/splitio_configuration_test.dart index 5348041..3b69395 100644 --- a/splitio_platform_interface/test/splitio_configuration_test.dart +++ b/splitio_platform_interface/test/splitio_configuration_test.dart @@ -29,6 +29,7 @@ void main() { userConsent: UserConsent.declined, encryptionEnabled: true, logLevel: SplitLogLevel.debug, + readyTimeout: 1 ); expect(config.configurationMap['eventFlushInterval'], 2000); @@ -61,6 +62,7 @@ void main() { expect(config.configurationMap['userConsent'], 'declined'); expect(config.configurationMap['encryptionEnabled'], true); expect(config.configurationMap['logLevel'], 'debug'); + expect(config.configurationMap['readyTimeout'], 1); }); test('noSpecialValuesLeavesMapEmpty', () async { From 067e268257ecda0fc268c9106c02bfad946aba7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gast=C3=B3n=20Thea?= Date: Tue, 15 Aug 2023 14:59:41 -0300 Subject: [PATCH 2/2] Configuration implementation (#84) --- splitio/example/pubspec.lock | 131 ++++++++++-------- splitio/lib/splitio.dart | 6 +- splitio/pubspec.yaml | 11 +- splitio/test/splitio_test.dart | 8 +- .../splitio/SplitClientConfigHelper.java | 7 + splitio_android/pubspec.yaml | 5 +- .../test/splitio_android_test.dart | 4 +- .../SplitClientConfigHelperTests.swift | 4 +- .../ios/Classes/SplitClientConfigHelper.swift | 5 + splitio_ios/pubspec.yaml | 5 +- .../lib/method_channel_platform.dart | 2 +- .../lib/split_configuration.dart | 4 +- .../test/method_channel_platform_test.dart | 6 +- .../test/splitio_configuration_test.dart | 3 +- 14 files changed, 120 insertions(+), 81 deletions(-) diff --git a/splitio/example/pubspec.lock b/splitio/example/pubspec.lock index 9c2f871..cad1492 100644 --- a/splitio/example/pubspec.lock +++ b/splitio/example/pubspec.lock @@ -5,58 +5,58 @@ packages: dependency: transitive description: name: async - url: "https://pub.dartlang.org" + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + url: "https://pub.dev" source: hosted - version: "2.8.2" + version: "2.11.0" boolean_selector: dependency: transitive description: name: boolean_selector - url: "https://pub.dartlang.org" + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.1" characters: dependency: transitive description: name: characters - url: "https://pub.dartlang.org" - source: hosted - version: "1.2.0" - charcode: - dependency: transitive - description: - name: charcode - url: "https://pub.dartlang.org" + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + url: "https://pub.dev" source: hosted - version: "1.3.1" + version: "1.3.0" clock: dependency: transitive description: name: clock - url: "https://pub.dartlang.org" + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.1.1" collection: dependency: transitive description: name: collection - url: "https://pub.dartlang.org" + sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" + url: "https://pub.dev" source: hosted - version: "1.15.0" + version: "1.17.1" cupertino_icons: dependency: "direct main" description: name: cupertino_icons - url: "https://pub.dartlang.org" + sha256: "1989d917fbe8e6b39806207df5a3fdd3d816cbd090fac2ce26fb45e9a71476e5" + url: "https://pub.dev" source: hosted version: "1.0.4" fake_async: dependency: transitive description: name: fake_async - url: "https://pub.dartlang.org" + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.3.1" flutter: dependency: "direct main" description: flutter @@ -66,7 +66,8 @@ packages: dependency: "direct dev" description: name: flutter_lints - url: "https://pub.dartlang.org" + sha256: b543301ad291598523947dc534aaddc5aaad597b709d2426d3a0e0d44c5cb493 + url: "https://pub.dev" source: hosted version: "1.0.4" flutter_test: @@ -74,48 +75,62 @@ packages: description: flutter source: sdk version: "0.0.0" + js: + dependency: transitive + description: + name: js + sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 + url: "https://pub.dev" + source: hosted + version: "0.6.7" lints: dependency: transitive description: name: lints - url: "https://pub.dartlang.org" + sha256: a2c3d198cb5ea2e179926622d433331d8b58374ab8f29cdda6e863bd62fd369c + url: "https://pub.dev" source: hosted version: "1.0.1" matcher: dependency: transitive description: name: matcher - url: "https://pub.dartlang.org" + sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb" + url: "https://pub.dev" source: hosted - version: "0.12.11" + version: "0.12.15" material_color_utilities: dependency: transitive description: name: material_color_utilities - url: "https://pub.dartlang.org" + sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 + url: "https://pub.dev" source: hosted - version: "0.1.3" + version: "0.2.0" meta: dependency: transitive description: name: meta - url: "https://pub.dartlang.org" + sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" + url: "https://pub.dev" source: hosted - version: "1.7.0" + version: "1.9.1" path: dependency: transitive description: name: path - url: "https://pub.dartlang.org" + sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" + url: "https://pub.dev" source: hosted - version: "1.8.0" + version: "1.8.3" plugin_platform_interface: dependency: transitive description: name: plugin_platform_interface - url: "https://pub.dartlang.org" + sha256: "43798d895c929056255600343db8f049921cbec94d31ec87f1dc5c16c01935dd" + url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.5" sky_engine: dependency: transitive description: flutter @@ -125,86 +140,86 @@ packages: dependency: transitive description: name: source_span - url: "https://pub.dartlang.org" + sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 + url: "https://pub.dev" source: hosted - version: "1.8.1" + version: "1.9.1" splitio: dependency: "direct main" description: path: ".." relative: true source: path - version: "0.1.2" + version: "0.1.6-rc.1" splitio_android: dependency: transitive description: path: "../../splitio_android" relative: true source: path - version: "0.1.2" + version: "0.1.6-rc.1" splitio_ios: dependency: transitive description: path: "../../splitio_ios" relative: true source: path - version: "0.1.2" + version: "0.1.6-rc.1" splitio_platform_interface: dependency: transitive description: path: "../../splitio_platform_interface" relative: true source: path - version: "1.0.0" + version: "1.3.0-rc.1" stack_trace: dependency: transitive description: name: stack_trace - url: "https://pub.dartlang.org" + sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 + url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.11.0" stream_channel: dependency: transitive description: name: stream_channel - url: "https://pub.dartlang.org" + sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" + url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.1" string_scanner: dependency: transitive description: name: string_scanner - url: "https://pub.dartlang.org" + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.2.0" term_glyph: dependency: transitive description: name: term_glyph - url: "https://pub.dartlang.org" + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.2.1" test_api: dependency: transitive description: name: test_api - url: "https://pub.dartlang.org" + sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb + url: "https://pub.dev" source: hosted - version: "0.4.8" - typed_data: - dependency: transitive - description: - name: typed_data - url: "https://pub.dartlang.org" - source: hosted - version: "1.3.0" + version: "0.5.1" vector_math: dependency: transitive description: name: vector_math - url: "https://pub.dartlang.org" + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.4" sdks: - dart: ">=2.16.2 <3.0.0" + dart: ">=3.0.0-0 <4.0.0" flutter: ">=2.5.0" diff --git a/splitio/lib/splitio.dart b/splitio/lib/splitio.dart index f20b066..0c2c2d6 100644 --- a/splitio/lib/splitio.dart +++ b/splitio/lib/splitio.dart @@ -36,7 +36,11 @@ class Splitio { Splitio(this._sdkKey, this._defaultMatchingKey, {String? bucketingKey, SplitConfiguration? configuration}) { _defaultBucketingKey = bucketingKey; - _splitConfiguration = configuration; + if (configuration != null) { + _splitConfiguration = configuration; + } else { + _splitConfiguration = SplitConfiguration(); + } _init(); } diff --git a/splitio/pubspec.yaml b/splitio/pubspec.yaml index ea88246..5f9c68d 100644 --- a/splitio/pubspec.yaml +++ b/splitio/pubspec.yaml @@ -1,6 +1,6 @@ name: splitio description: Official plugin for split.io, the platform for controlled rollouts, which serves features to your users via feature flags to manage your complete customer experience. -version: 0.1.5 +version: 0.1.6-rc.1 homepage: https://split.io/ repository: https://github.com/splitio/flutter-sdk-plugin/tree/main/splitio/ @@ -19,9 +19,12 @@ flutter: dependencies: flutter: sdk: flutter - splitio_android: ^0.1.5 - splitio_ios: ^0.1.5 - splitio_platform_interface: ^1.2.0 + splitio_android: #^0.1.6-rc.1 + path: ../splitio_android + splitio_ios: #^0.1.6-rc.1 + path: ../splitio_ios + splitio_platform_interface: #^1.3.0-rc.1 + path: ../splitio_platform_interface dev_dependencies: flutter_test: diff --git a/splitio/test/splitio_test.dart b/splitio/test/splitio_test.dart index 87ad6e4..e6627f2 100644 --- a/splitio/test/splitio_test.dart +++ b/splitio/test/splitio_test.dart @@ -17,7 +17,7 @@ void main() { expect(_platform.methodArguments, { 'apiKey': 'api-key', 'matchingKey': 'matching-key', - 'sdkConfiguration': {} + 'sdkConfiguration': {'readyTimeout': 10} }); }); @@ -28,7 +28,7 @@ void main() { 'apiKey': 'api-key', 'matchingKey': 'matching-key', 'bucketingKey': 'bucketing-key', - 'sdkConfiguration': {} + 'sdkConfiguration': {'readyTimeout': 10} }); }); @@ -42,7 +42,7 @@ void main() { 'apiKey': 'api-key', 'matchingKey': 'matching-key', 'bucketingKey': 'bucketing-key', - 'sdkConfiguration': {'logLevel': 'debug', 'streamingEnabled': false}, + 'sdkConfiguration': {'logLevel': 'debug', 'streamingEnabled': false, 'readyTimeout': 10}, }); }); }); @@ -118,7 +118,7 @@ void main() { expect(_platform.methodArguments, { 'matchingKey': 'matching-key', 'apiKey': 'api-key', - 'sdkConfiguration': {}, + 'sdkConfiguration': {'readyTimeout': 10}, 'value': true, }); }); diff --git a/splitio_android/android/src/main/java/io/split/splitio/SplitClientConfigHelper.java b/splitio_android/android/src/main/java/io/split/splitio/SplitClientConfigHelper.java index 825550e..80f58cc 100644 --- a/splitio_android/android/src/main/java/io/split/splitio/SplitClientConfigHelper.java +++ b/splitio_android/android/src/main/java/io/split/splitio/SplitClientConfigHelper.java @@ -6,6 +6,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.TimeUnit; import io.split.android.client.ServiceEndpoints; import io.split.android.client.SplitClientConfig; @@ -43,6 +44,7 @@ class SplitClientConfigHelper { private static final String USER_CONSENT = "userConsent"; private static final String ENCRYPTION_ENABLED = "encryptionEnabled"; private static final String LOG_LEVEL = "logLevel"; + private static final String READY_TIMEOUT = "readyTimeout"; /** * Creates a {@link SplitClientConfig} object from a map. @@ -206,6 +208,11 @@ static SplitClientConfig fromMap(@NonNull Map configurationMap, } } + Integer readyTimeout = getInteger(configurationMap, READY_TIMEOUT); + if (readyTimeout != null) { + builder.ready((int) TimeUnit.SECONDS.toMillis(readyTimeout)); // Android SDK uses this parameter in millis + } + return builder.serviceEndpoints(serviceEndpointsBuilder.build()).build(); } diff --git a/splitio_android/pubspec.yaml b/splitio_android/pubspec.yaml index 05ed5c1..778eada 100644 --- a/splitio_android/pubspec.yaml +++ b/splitio_android/pubspec.yaml @@ -1,7 +1,7 @@ name: splitio_android description: The official Android implementation of splitio Flutter plugin. repository: https://github.com/splitio/flutter-sdk-plugin/tree/main/splitio_android -version: 0.1.5 +version: 0.1.6-rc.1 environment: sdk: ">=2.16.2 <4.0.0" @@ -19,7 +19,8 @@ flutter: dependencies: flutter: sdk: flutter - splitio_platform_interface: ^1.2.0 + splitio_platform_interface: #^1.3.0-rc.1 + path: ../splitio_platform_interface dev_dependencies: flutter_test: diff --git a/splitio_android/test/splitio_android_test.dart b/splitio_android/test/splitio_android_test.dart index 34d65a4..7cc1f68 100644 --- a/splitio_android/test/splitio_android_test.dart +++ b/splitio_android/test/splitio_android_test.dart @@ -373,13 +373,13 @@ void main() { matchingKey: 'matching-key', bucketingKey: 'bucketing-key', sdkConfiguration: - SplitConfiguration(logLevel: SplitLogLevel.error, streamingEnabled: false)); + SplitConfiguration(logLevel: SplitLogLevel.error, streamingEnabled: false, readyTimeout: 1)); expect(methodName, 'init'); expect(methodArguments, { 'apiKey': 'api-key', 'matchingKey': 'matching-key', 'bucketingKey': 'bucketing-key', - 'sdkConfiguration': {'logLevel': 'error', 'streamingEnabled': false}, + 'sdkConfiguration': {'logLevel': 'error', 'streamingEnabled': false, 'readyTimeout': 1}, }); }); }); diff --git a/splitio_ios/example/ios/SplitTests/SplitClientConfigHelperTests.swift b/splitio_ios/example/ios/SplitTests/SplitClientConfigHelperTests.swift index beaa317..e107644 100644 --- a/splitio_ios/example/ios/SplitTests/SplitClientConfigHelperTests.swift +++ b/splitio_ios/example/ios/SplitTests/SplitClientConfigHelperTests.swift @@ -26,7 +26,8 @@ class SplitClientConfigHelperTests: XCTestCase { "syncEnabled": false, "userConsent": "declined", "encryptionEnabled": true, - "logLevel": "verbose" + "logLevel": "verbose", + "readyTimeout": 10 ] let splitClientConfig = SplitClientConfigHelper.fromMap(configurationMap: configValues, impressionListener: nil) @@ -47,6 +48,7 @@ class SplitClientConfigHelperTests: XCTestCase { XCTAssertEqual(.declined, splitClientConfig.userConsent) XCTAssertTrue(splitClientConfig.encryptionEnabled) XCTAssertEqual(.verbose, splitClientConfig.logLevel) + XCTAssertEqual(10000, splitClientConfig.sdkReadyTimeOut) } func testEnableDebugLogLevelIsMappedCorrectly() { diff --git a/splitio_ios/ios/Classes/SplitClientConfigHelper.swift b/splitio_ios/ios/Classes/SplitClientConfigHelper.swift index 6d03b98..2febd19 100644 --- a/splitio_ios/ios/Classes/SplitClientConfigHelper.swift +++ b/splitio_ios/ios/Classes/SplitClientConfigHelper.swift @@ -29,6 +29,7 @@ class SplitClientConfigHelper { static private let USER_CONSENT = "userConsent" static private let ENCRYPTION_ENABLED = "encryptionEnabled" static private let LOG_LEVEL = "logLevel" + static private let READY_TIMEOUT = "readyTimeout" static func fromMap(configurationMap: [String: Any?], impressionListener: SplitImpressionListener?) -> SplitClientConfig { let config = SplitClientConfig() @@ -200,6 +201,10 @@ class SplitClientConfigHelper { } } + if let readyTimeout = configurationMap[READY_TIMEOUT] as? Int { + config.sdkReadyTimeOut = readyTimeout * 1000 // iOS SDK uses this parameter in millis + } + config.serviceEndpoints = serviceEndpointsBuilder.build() return config diff --git a/splitio_ios/pubspec.yaml b/splitio_ios/pubspec.yaml index 571b0dd..1a179bf 100644 --- a/splitio_ios/pubspec.yaml +++ b/splitio_ios/pubspec.yaml @@ -1,7 +1,7 @@ name: splitio_ios description: The official iOS implementation of splitio Flutter plugin. repository: https://github.com/splitio/flutter-sdk-plugin/tree/main/splitio_ios -version: 0.1.5 +version: 0.1.6-rc.1 environment: sdk: ">=2.16.2 <4.0.0" @@ -18,7 +18,8 @@ flutter: dependencies: flutter: sdk: flutter - splitio_platform_interface: ^1.2.0 + splitio_platform_interface: #^1.3.0-rc.1 + path: ../splitio_platform_interface dev_dependencies: flutter_test: diff --git a/splitio_platform_interface/lib/method_channel_platform.dart b/splitio_platform_interface/lib/method_channel_platform.dart index 7199c5b..4bc0400 100644 --- a/splitio_platform_interface/lib/method_channel_platform.dart +++ b/splitio_platform_interface/lib/method_channel_platform.dart @@ -33,7 +33,7 @@ class MethodChannelPlatform extends SplitioPlatform { Map arguments = { 'apiKey': apiKey, 'matchingKey': matchingKey, - 'sdkConfiguration': sdkConfiguration?.configurationMap ?? {}, + 'sdkConfiguration': sdkConfiguration?.configurationMap ?? SplitConfiguration().configurationMap, // If sdkConfiguration is null, create a new SplitConfiguration to apply default values }; if (bucketingKey != null) { diff --git a/splitio_platform_interface/lib/split_configuration.dart b/splitio_platform_interface/lib/split_configuration.dart index 4f3189e..08496aa 100644 --- a/splitio_platform_interface/lib/split_configuration.dart +++ b/splitio_platform_interface/lib/split_configuration.dart @@ -43,7 +43,7 @@ class SplitConfiguration { /// /// [logLevel] Enables logging according to the level specified. Options are [SplitLogLevel.verbose], [SplitLogLevel.none], [SplitLogLevel.debug], [SplitLogLevel.info], [SplitLogLevel.warning], and [SplitLogLevel.error]. /// - /// [readyTimeout] Maximum amount of time in seconds to wait before firing the SDK_READY_TIMED_OUT event. If not set, the SDK will wait indefinitely. + /// [readyTimeout] Maximum amount of time in seconds to wait before firing the SDK_READY_TIMED_OUT event. Defaults to 10 seconds. SplitConfiguration({ int? featuresRefreshRate, int? segmentsRefreshRate, @@ -69,7 +69,7 @@ class SplitConfiguration { UserConsent? userConsent, bool? encryptionEnabled, SplitLogLevel? logLevel, - int? readyTimeout, + int? readyTimeout = 10, }) { if (featuresRefreshRate != null) { configurationMap['featuresRefreshRate'] = featuresRefreshRate; diff --git a/splitio_platform_interface/test/method_channel_platform_test.dart b/splitio_platform_interface/test/method_channel_platform_test.dart index 21ed1e2..d03c4f5 100644 --- a/splitio_platform_interface/test/method_channel_platform_test.dart +++ b/splitio_platform_interface/test/method_channel_platform_test.dart @@ -351,7 +351,7 @@ void main() { expect(methodArguments, { 'apiKey': 'api-key', 'matchingKey': 'matching-key', - 'sdkConfiguration': {} + 'sdkConfiguration': {'readyTimeout': 10} }); }); @@ -365,7 +365,7 @@ void main() { 'apiKey': 'api-key', 'matchingKey': 'matching-key', 'bucketingKey': 'bucketing-key', - 'sdkConfiguration': {} + 'sdkConfiguration': {'readyTimeout': 10} }); }); @@ -381,7 +381,7 @@ void main() { 'apiKey': 'api-key', 'matchingKey': 'matching-key', 'bucketingKey': 'bucketing-key', - 'sdkConfiguration': {'logLevel': 'debug', 'streamingEnabled': false}, + 'sdkConfiguration': {'logLevel': 'debug', 'streamingEnabled': false, 'readyTimeout' : 10}, }); }); }); diff --git a/splitio_platform_interface/test/splitio_configuration_test.dart b/splitio_platform_interface/test/splitio_configuration_test.dart index 3b69395..0e22f77 100644 --- a/splitio_platform_interface/test/splitio_configuration_test.dart +++ b/splitio_platform_interface/test/splitio_configuration_test.dart @@ -68,6 +68,7 @@ void main() { test('noSpecialValuesLeavesMapEmpty', () async { final SplitConfiguration config = SplitConfiguration(); - expect(config.configurationMap.isEmpty, true); + expect(config.configurationMap.length, 1); + expect(config.configurationMap['readyTimeout'], 10); }); }