Skip to content

Commit c91c179

Browse files
authored
Add flagSets constructor to SplitSyncConfig (#89)
Add flagSets constructor to SplitSyncConfig
2 parents bb9ca87 + 1126d81 commit c91c179

File tree

5 files changed

+45
-15
lines changed

5 files changed

+45
-15
lines changed

.github/workflows/build.yml

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -41,18 +41,6 @@ jobs:
4141
- name: Run Android test
4242
run: cd splitio/example/android/; ./gradlew :splitio:testReleaseUnitTest;
4343

44-
build-ios:
45-
name: Build iOS
46-
runs-on: [ macos-latest ]
47-
48-
steps:
49-
- uses: actions/[email protected]
50-
- uses: subosito/[email protected]
51-
with:
52-
channel: 'stable'
53-
- name: Run Build iOS
54-
run: cd splitio/example/ios; flutter build ios --no-codesign;
55-
5644
test-ios:
5745
name: Test iOS
5846
runs-on: [ macos-latest ]

splitio_platform_interface/lib/split_configuration.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,8 @@ class SplitConfiguration {
147147
if (syncConfig != null) {
148148
configurationMap['syncConfig'] = {
149149
'syncConfigNames': syncConfig.names.toList(growable: false),
150-
'syncConfigPrefixes': syncConfig.prefixes.toList(growable: false)
150+
'syncConfigPrefixes': syncConfig.prefixes.toList(growable: false),
151+
'syncConfigFlagSets': syncConfig.sets.toList(growable: false)
151152
};
152153
}
153154

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,30 @@
11
class SyncConfig {
22
late Set<String> _names;
33
late Set<String> _prefixes;
4+
late Set<String> _sets;
45

56
Set<String> get names => _names;
67

78
Set<String> get prefixes => _prefixes;
89

10+
Set<String> get sets => _sets;
11+
912
SyncConfig(
1013
{List<String> names = const [], List<String> prefixes = const []}) {
1114
_names = names.toSet();
1215
_prefixes = prefixes.toSet();
16+
_sets = <String>{};
1317
}
1418

1519
SyncConfig.fromSet(
1620
{Set<String> names = const {}, Set<String> prefixes = const {}}) {
1721
_names = names;
1822
_prefixes = prefixes;
1923
}
24+
25+
SyncConfig.flagSets(List<String> sets) {
26+
_sets = sets.toSet();
27+
_names = <String>{};
28+
_prefixes = <String>{};
29+
}
2030
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import 'package:flutter_test/flutter_test.dart';
2+
import 'package:splitio_platform_interface/split_sync_config.dart';
3+
4+
void main() {
5+
test('names and prefixes can be added simultaneously', () {
6+
var syncConfig = SyncConfig(names: ['name1'], prefixes: ['prefix1']);
7+
8+
expect(syncConfig.names, ['name1']);
9+
expect(syncConfig.prefixes, ['prefix1']);
10+
expect(syncConfig.sets, []);
11+
});
12+
13+
test('flagSets constructor allows only sets', () {
14+
var syncConfig = SyncConfig.flagSets(['set1','set2']);
15+
16+
expect(syncConfig.names, []);
17+
expect(syncConfig.prefixes, []);
18+
expect(syncConfig.sets, ['set1','set2']);
19+
});
20+
}

splitio_platform_interface/test/splitio_configuration_test.dart

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import 'package:splitio_platform_interface/split_configuration.dart';
33
import 'package:splitio_platform_interface/split_sync_config.dart';
44

55
void main() {
6-
test('valuesAreMappedCorrectly', () async {
6+
test('values are mapped correctly', () async {
77
final SplitConfiguration config = SplitConfiguration(
88
eventFlushInterval: 2000,
99
eventsPerPush: 300,
@@ -65,10 +65,21 @@ void main() {
6565
expect(config.configurationMap['readyTimeout'], 1);
6666
});
6767

68-
test('noSpecialValuesLeavesMapEmpty', () async {
68+
test('no special values leaves map empty', () async {
6969
final SplitConfiguration config = SplitConfiguration();
7070

7171
expect(config.configurationMap.length, 1);
7272
expect(config.configurationMap['readyTimeout'], 10);
7373
});
74+
75+
test('sets values are mapped correctly', () async {
76+
final SplitConfiguration config = SplitConfiguration(
77+
syncConfig: SyncConfig.flagSets(['one', 'two']),
78+
);
79+
80+
expect(config.configurationMap['syncConfig']['syncConfigNames'], []);
81+
expect(config.configurationMap['syncConfig']['syncConfigPrefixes'], []);
82+
expect(config.configurationMap['syncConfig']['syncConfigFlagSets'],
83+
['one', 'two']);
84+
});
7485
}

0 commit comments

Comments
 (0)