@@ -979,6 +979,68 @@ describe('crud operations', () => {
979
979
await expect ( getRepost3 ) . resolves . toBeDefined ( )
980
980
} )
981
981
982
+ it ( 'prevents duplicate blocks' , async ( ) => {
983
+ const now = new Date ( ) . toISOString ( )
984
+
985
+ const { data : block1 } = await aliceAgent . api . com . atproto . repo . createRecord (
986
+ {
987
+ repo : alice . did ,
988
+ collection : 'app.bsky.graph.block' ,
989
+ record : {
990
+ $type : 'app.bsky.graph.block' ,
991
+ subject : bob . did ,
992
+ createdAt : now ,
993
+ } ,
994
+ } ,
995
+ )
996
+
997
+ const { data : block2 } = await bobAgent . api . com . atproto . repo . createRecord ( {
998
+ repo : bob . did ,
999
+ collection : 'app.bsky.graph.block' ,
1000
+ record : {
1001
+ $type : 'app.bsky.graph.block' ,
1002
+ subject : alice . did ,
1003
+ createdAt : now ,
1004
+ } ,
1005
+ } )
1006
+
1007
+ const { data : block3 } = await aliceAgent . api . com . atproto . repo . createRecord (
1008
+ {
1009
+ repo : alice . did ,
1010
+ collection : 'app.bsky.graph.block' ,
1011
+ record : {
1012
+ $type : 'app.bsky.graph.block' ,
1013
+ subject : bob . did ,
1014
+ createdAt : now ,
1015
+ } ,
1016
+ } ,
1017
+ )
1018
+
1019
+ const getBlock1 = aliceAgent . api . com . atproto . repo . getRecord ( {
1020
+ repo : alice . did ,
1021
+ collection : 'app.bsky.graph.block' ,
1022
+ rkey : new AtUri ( block1 . uri ) . rkey ,
1023
+ } )
1024
+
1025
+ await expect ( getBlock1 ) . rejects . toThrow ( 'Could not locate record:' )
1026
+
1027
+ const getBlock2 = aliceAgent . api . com . atproto . repo . getRecord ( {
1028
+ repo : bob . did ,
1029
+ collection : 'app.bsky.graph.block' ,
1030
+ rkey : new AtUri ( block2 . uri ) . rkey ,
1031
+ } )
1032
+
1033
+ await expect ( getBlock2 ) . resolves . toBeDefined ( )
1034
+
1035
+ const getBlock3 = aliceAgent . api . com . atproto . repo . getRecord ( {
1036
+ repo : alice . did ,
1037
+ collection : 'app.bsky.graph.block' ,
1038
+ rkey : new AtUri ( block3 . uri ) . rkey ,
1039
+ } )
1040
+
1041
+ await expect ( getBlock3 ) . resolves . toBeDefined ( )
1042
+ } )
1043
+
982
1044
it ( 'prevents duplicate follows' , async ( ) => {
983
1045
const now = new Date ( ) . toISOString ( )
984
1046
0 commit comments