From 859df60b779331e6059b3ec0f773596ce17b5b0f Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Thu, 2 Nov 2023 14:50:41 -0300 Subject: [PATCH 1/2] Add flagSets constructor to SplitSyncConfig --- .../lib/split_sync_config.dart | 10 ++++++++++ .../test/split_sync_config_test.dart | 20 +++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 splitio_platform_interface/test/split_sync_config_test.dart diff --git a/splitio_platform_interface/lib/split_sync_config.dart b/splitio_platform_interface/lib/split_sync_config.dart index 6eec23d..d9abc8b 100644 --- a/splitio_platform_interface/lib/split_sync_config.dart +++ b/splitio_platform_interface/lib/split_sync_config.dart @@ -1,15 +1,19 @@ class SyncConfig { late Set _names; late Set _prefixes; + late Set _sets; Set get names => _names; Set get prefixes => _prefixes; + Set get sets => _sets; + SyncConfig( {List names = const [], List prefixes = const []}) { _names = names.toSet(); _prefixes = prefixes.toSet(); + _sets = {}; } SyncConfig.fromSet( @@ -17,4 +21,10 @@ class SyncConfig { _names = names; _prefixes = prefixes; } + + SyncConfig.flagSets({required List sets}) { + _sets = sets.toSet(); + _names = {}; + _prefixes = {}; + } } diff --git a/splitio_platform_interface/test/split_sync_config_test.dart b/splitio_platform_interface/test/split_sync_config_test.dart new file mode 100644 index 0000000..d8ba544 --- /dev/null +++ b/splitio_platform_interface/test/split_sync_config_test.dart @@ -0,0 +1,20 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:splitio_platform_interface/split_sync_config.dart'; + +void main() { + test('names and prefixes can be added simultaneously', () { + var syncConfig = SyncConfig(names: ['name1'], prefixes: ['prefix1']); + + expect(syncConfig.names, ['name1']); + expect(syncConfig.prefixes, ['prefix1']); + expect(syncConfig.sets, []); + }); + + test('flagSets constructor allows only sets', () { + var syncConfig = SyncConfig.flagSets(sets: ['set1','set2']); + + expect(syncConfig.names, []); + expect(syncConfig.prefixes, []); + expect(syncConfig.sets, ['set1','set2']); + }); +} From 1126d811242066214374c79fbf65b815d22e25d5 Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Thu, 2 Nov 2023 15:48:04 -0300 Subject: [PATCH 2/2] Add to SplitConfiguration --- .github/workflows/build.yml | 12 ------------ .../lib/split_configuration.dart | 3 ++- .../lib/split_sync_config.dart | 2 +- .../test/split_sync_config_test.dart | 2 +- .../test/splitio_configuration_test.dart | 15 +++++++++++++-- 5 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fa2869b..a2d5fff 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -41,18 +41,6 @@ jobs: - name: Run Android test run: cd splitio/example/android/; ./gradlew :splitio:testReleaseUnitTest; - build-ios: - name: Build iOS - runs-on: [ macos-latest ] - - steps: - - uses: actions/checkout@v3.5.2 - - uses: subosito/flutter-action@v2.10.0 - with: - channel: 'stable' - - name: Run Build iOS - run: cd splitio/example/ios; flutter build ios --no-codesign; - test-ios: name: Test iOS runs-on: [ macos-latest ] diff --git a/splitio_platform_interface/lib/split_configuration.dart b/splitio_platform_interface/lib/split_configuration.dart index 08496aa..4a56668 100644 --- a/splitio_platform_interface/lib/split_configuration.dart +++ b/splitio_platform_interface/lib/split_configuration.dart @@ -147,7 +147,8 @@ class SplitConfiguration { if (syncConfig != null) { configurationMap['syncConfig'] = { 'syncConfigNames': syncConfig.names.toList(growable: false), - 'syncConfigPrefixes': syncConfig.prefixes.toList(growable: false) + 'syncConfigPrefixes': syncConfig.prefixes.toList(growable: false), + 'syncConfigFlagSets': syncConfig.sets.toList(growable: false) }; } diff --git a/splitio_platform_interface/lib/split_sync_config.dart b/splitio_platform_interface/lib/split_sync_config.dart index d9abc8b..bc47f8d 100644 --- a/splitio_platform_interface/lib/split_sync_config.dart +++ b/splitio_platform_interface/lib/split_sync_config.dart @@ -22,7 +22,7 @@ class SyncConfig { _prefixes = prefixes; } - SyncConfig.flagSets({required List sets}) { + SyncConfig.flagSets(List sets) { _sets = sets.toSet(); _names = {}; _prefixes = {}; diff --git a/splitio_platform_interface/test/split_sync_config_test.dart b/splitio_platform_interface/test/split_sync_config_test.dart index d8ba544..254dd0c 100644 --- a/splitio_platform_interface/test/split_sync_config_test.dart +++ b/splitio_platform_interface/test/split_sync_config_test.dart @@ -11,7 +11,7 @@ void main() { }); test('flagSets constructor allows only sets', () { - var syncConfig = SyncConfig.flagSets(sets: ['set1','set2']); + var syncConfig = SyncConfig.flagSets(['set1','set2']); expect(syncConfig.names, []); expect(syncConfig.prefixes, []); diff --git a/splitio_platform_interface/test/splitio_configuration_test.dart b/splitio_platform_interface/test/splitio_configuration_test.dart index 0e22f77..9921f57 100644 --- a/splitio_platform_interface/test/splitio_configuration_test.dart +++ b/splitio_platform_interface/test/splitio_configuration_test.dart @@ -3,7 +3,7 @@ import 'package:splitio_platform_interface/split_configuration.dart'; import 'package:splitio_platform_interface/split_sync_config.dart'; void main() { - test('valuesAreMappedCorrectly', () async { + test('values are mapped correctly', () async { final SplitConfiguration config = SplitConfiguration( eventFlushInterval: 2000, eventsPerPush: 300, @@ -65,10 +65,21 @@ void main() { expect(config.configurationMap['readyTimeout'], 1); }); - test('noSpecialValuesLeavesMapEmpty', () async { + test('no special values leaves map empty', () async { final SplitConfiguration config = SplitConfiguration(); expect(config.configurationMap.length, 1); expect(config.configurationMap['readyTimeout'], 10); }); + + test('sets values are mapped correctly', () async { + final SplitConfiguration config = SplitConfiguration( + syncConfig: SyncConfig.flagSets(['one', 'two']), + ); + + expect(config.configurationMap['syncConfig']['syncConfigNames'], []); + expect(config.configurationMap['syncConfig']['syncConfigPrefixes'], []); + expect(config.configurationMap['syncConfig']['syncConfigFlagSets'], + ['one', 'two']); + }); }