@@ -23,6 +23,32 @@ const MemoryLive = MessageStorage.layerMemory.pipe(
2323
2424describe ( "MessageStorage" , ( ) => {
2525 describe ( "memory" , ( ) => {
26+ it . effect ( "removes the primary-key index when clearing an address" , ( ) =>
27+ Effect . gen ( function * ( ) {
28+ const driver = yield * MessageStorage . MemoryDriver
29+ const address = EntityAddress . make ( {
30+ shardId : ShardId . make ( "default" , 1 ) ,
31+ entityType : EntityType . make ( "Repro" ) ,
32+ entityId : EntityId . make ( "one" )
33+ } )
34+ const envelope : Envelope . PartialRequestEncoded = {
35+ _tag : "Request" ,
36+ requestId : "1" ,
37+ address : { shardId : { group : "default" , id : 1 } , entityType : "Repro" , entityId : "one" } ,
38+ tag : "Repro" ,
39+ payload : { } ,
40+ headers : { }
41+ }
42+ yield * driver . encoded . saveEnvelope ( { envelope, primaryKey : "dedup-key" , deliverAt : null } )
43+ yield * driver . encoded . clearAddress ( address )
44+ const result = yield * driver . encoded . saveEnvelope ( {
45+ envelope : { ...envelope , requestId : "2" } ,
46+ primaryKey : "dedup-key" ,
47+ deliverAt : null
48+ } )
49+ expect ( result . _tag ) . toEqual ( "Success" )
50+ } ) . pipe ( Effect . provide ( MessageStorage . MemoryDriver . layer ) ) )
51+
2652 it . effect ( "saves a request" , ( ) =>
2753 Effect . gen ( function * ( ) {
2854 const storage = yield * MessageStorage . MessageStorage
0 commit comments