@@ -50,6 +50,33 @@ final class PersistentStorageTests: XCTestCase {
5050 persistentStorage. reset ( )
5151 }
5252
53+ func testWriteWithTwoInstances( ) {
54+ let persistentStorage1 = PersistentStorage ( storagePrefix: " xxx-instance " )
55+ try ? persistentStorage1. write (
56+ key: StorageKey . EVENTS,
57+ value: BaseEvent ( eventType: " test1 " )
58+ )
59+ let persistentStorage2 = PersistentStorage ( storagePrefix: " xxx-instance " )
60+ try ? persistentStorage2. write (
61+ key: StorageKey . EVENTS,
62+ value: BaseEvent ( eventType: " test2 " )
63+ )
64+ // Only read from second instance, reading from first instance insert the "]" at the wrong cursor.
65+ let eventFiles2 : [ URL ] ? = persistentStorage2. read ( key: StorageKey . EVENTS)
66+ XCTAssertEqual ( eventFiles2 ? [ 0 ] . absoluteString. contains ( " xxx-instance.events.index " ) , true )
67+ XCTAssertNotEqual ( eventFiles2 ? [ 0 ] . pathExtension, PersistentStorage . TEMP_FILE_EXTENSION)
68+
69+ XCTAssertEqual ( eventFiles2? . count, 1 )
70+
71+ let eventString2 = persistentStorage2. getEventsString ( eventBlock: ( eventFiles2 ? [ 0 ] ) !)
72+ let decodedEvents = BaseEvent . fromArrayString ( jsonString: eventString2!)
73+ XCTAssertEqual ( decodedEvents!. count, 2 )
74+ XCTAssertEqual ( decodedEvents![ 0 ] . eventType, " test1 " )
75+ XCTAssertEqual ( decodedEvents![ 1 ] . eventType, " test2 " )
76+ persistentStorage1. reset ( )
77+ persistentStorage2. reset ( )
78+ }
79+
5380 #if os(macOS)
5481 func testMacOsStorageDirectorySandboxedWhenAppSandboxDisabled( ) {
5582 let persistentStorage = PersistentStorage ( storagePrefix: " mac-instance " )
0 commit comments