File tree Expand file tree Collapse file tree 2 files changed +53
-2
lines changed
Sources/Segment/Utilities Expand file tree Collapse file tree 2 files changed +53
-2
lines changed Original file line number Diff line number Diff line change @@ -117,8 +117,9 @@ internal class Storage: Subscriber {
117
117
result = true
118
118
} else {
119
119
switch value {
120
- case is NSNull :
121
- fallthrough
120
+ // NSNull is not valid for UserDefaults
121
+ //case is NSNull:
122
+ // fallthrough
122
123
case is Decimal :
123
124
fallthrough
124
125
case is NSNumber :
Original file line number Diff line number Diff line change @@ -17,6 +17,56 @@ class StorageTests: XCTestCase {
17
17
override func tearDownWithError( ) throws {
18
18
// Put teardown code here. This method is called after the invocation of each test method in the class.
19
19
}
20
+
21
+ func testSettingsWrite( ) throws {
22
+ let dummySettings = """
23
+ {
24
+ " integrations " : {
25
+ " Segment.io " : {
26
+ " apiKey " : " 1234 " ,
27
+ " unbundledIntegrations " : [],
28
+ " addBundledMetadata " : true
29
+ }
30
+ },
31
+ " middlewareSettings " : {
32
+ " routingRules " : [
33
+ {
34
+ " transformers " : [
35
+ [
36
+ {
37
+ " type " : " allow_properties " ,
38
+ " config " : {
39
+ " allow " : {
40
+ " traits " : null,
41
+ " context " : null,
42
+ " _metadata " : null,
43
+ " integrations " : null,
44
+ }
45
+ }
46
+ }
47
+ ]
48
+ ]
49
+ }
50
+ ]
51
+ },
52
+ }
53
+ """
54
+ let jsonData = dummySettings. data ( using: . utf8) !
55
+ let jsonSettings = try ! JSONSerialization . jsonObject ( with: jsonData)
56
+
57
+ let analytics = Analytics ( configuration: Configuration ( writeKey: " test " ) )
58
+ analytics. storage. hardReset ( doYouKnowHowToUseThis: true )
59
+
60
+ // this will crash if it fails.
61
+ let j = try ! JSON ( jsonSettings)
62
+ analytics. storage. write ( . settings, value: j)
63
+
64
+ RunLoop . main. run ( until: Date . distantPast)
65
+
66
+ let result : JSON ? = analytics. storage. read ( . settings)
67
+
68
+ XCTAssertNotNil ( result)
69
+ }
20
70
21
71
func testBasicWriting( ) throws {
22
72
let analytics = Analytics ( configuration: Configuration ( writeKey: " test " ) )
You can’t perform that action at this time.
0 commit comments