diff options
Diffstat (limited to 'internal/db/bundb/relationship_test.go')
-rw-r--r-- | internal/db/bundb/relationship_test.go | 128 |
1 files changed, 126 insertions, 2 deletions
diff --git a/internal/db/bundb/relationship_test.go b/internal/db/bundb/relationship_test.go index 3df16e2f3..fa0f2f1bc 100644 --- a/internal/db/bundb/relationship_test.go +++ b/internal/db/bundb/relationship_test.go @@ -47,7 +47,7 @@ func (suite *RelationshipTestSuite) TestIsBlocked() { suite.False(blocked) // have account1 block account2 - if err := suite.db.Put(ctx, >smodel.Block{ + if err := suite.db.PutBlock(ctx, >smodel.Block{ ID: "01G202BCSXXJZ70BHB5KCAHH8C", URI: "http://localhost:8080/some_block_uri_1", AccountID: account1, @@ -81,7 +81,7 @@ func (suite *RelationshipTestSuite) TestGetBlock() { account1 := suite.testAccounts["local_account_1"].ID account2 := suite.testAccounts["local_account_2"].ID - if err := suite.db.Put(ctx, >smodel.Block{ + if err := suite.db.PutBlock(ctx, >smodel.Block{ ID: "01G202BCSXXJZ70BHB5KCAHH8C", URI: "http://localhost:8080/some_block_uri_1", AccountID: account1, @@ -96,6 +96,130 @@ func (suite *RelationshipTestSuite) TestGetBlock() { suite.Equal("01G202BCSXXJZ70BHB5KCAHH8C", block.ID) } +func (suite *RelationshipTestSuite) TestDeleteBlockByID() { + ctx := context.Background() + + // put a block in first + account1 := suite.testAccounts["local_account_1"].ID + account2 := suite.testAccounts["local_account_2"].ID + if err := suite.db.PutBlock(ctx, >smodel.Block{ + ID: "01G202BCSXXJZ70BHB5KCAHH8C", + URI: "http://localhost:8080/some_block_uri_1", + AccountID: account1, + TargetAccountID: account2, + }); err != nil { + suite.FailNow(err.Error()) + } + + // make sure the block is in the db + block, err := suite.db.GetBlock(ctx, account1, account2) + suite.NoError(err) + suite.NotNil(block) + suite.Equal("01G202BCSXXJZ70BHB5KCAHH8C", block.ID) + + // delete the block by ID + err = suite.db.DeleteBlockByID(ctx, "01G202BCSXXJZ70BHB5KCAHH8C") + suite.NoError(err) + + // block should be gone + block, err = suite.db.GetBlock(ctx, account1, account2) + suite.ErrorIs(err, db.ErrNoEntries) + suite.Nil(block) +} + +func (suite *RelationshipTestSuite) TestDeleteBlockByURI() { + ctx := context.Background() + + // put a block in first + account1 := suite.testAccounts["local_account_1"].ID + account2 := suite.testAccounts["local_account_2"].ID + if err := suite.db.PutBlock(ctx, >smodel.Block{ + ID: "01G202BCSXXJZ70BHB5KCAHH8C", + URI: "http://localhost:8080/some_block_uri_1", + AccountID: account1, + TargetAccountID: account2, + }); err != nil { + suite.FailNow(err.Error()) + } + + // make sure the block is in the db + block, err := suite.db.GetBlock(ctx, account1, account2) + suite.NoError(err) + suite.NotNil(block) + suite.Equal("01G202BCSXXJZ70BHB5KCAHH8C", block.ID) + + // delete the block by uri + err = suite.db.DeleteBlockByURI(ctx, "http://localhost:8080/some_block_uri_1") + suite.NoError(err) + + // block should be gone + block, err = suite.db.GetBlock(ctx, account1, account2) + suite.ErrorIs(err, db.ErrNoEntries) + suite.Nil(block) +} + +func (suite *RelationshipTestSuite) TestDeleteBlocksByOriginAccountID() { + ctx := context.Background() + + // put a block in first + account1 := suite.testAccounts["local_account_1"].ID + account2 := suite.testAccounts["local_account_2"].ID + if err := suite.db.PutBlock(ctx, >smodel.Block{ + ID: "01G202BCSXXJZ70BHB5KCAHH8C", + URI: "http://localhost:8080/some_block_uri_1", + AccountID: account1, + TargetAccountID: account2, + }); err != nil { + suite.FailNow(err.Error()) + } + + // make sure the block is in the db + block, err := suite.db.GetBlock(ctx, account1, account2) + suite.NoError(err) + suite.NotNil(block) + suite.Equal("01G202BCSXXJZ70BHB5KCAHH8C", block.ID) + + // delete the block by originAccountID + err = suite.db.DeleteBlocksByOriginAccountID(ctx, account1) + suite.NoError(err) + + // block should be gone + block, err = suite.db.GetBlock(ctx, account1, account2) + suite.ErrorIs(err, db.ErrNoEntries) + suite.Nil(block) +} + +func (suite *RelationshipTestSuite) TestDeleteBlocksByTargetAccountID() { + ctx := context.Background() + + // put a block in first + account1 := suite.testAccounts["local_account_1"].ID + account2 := suite.testAccounts["local_account_2"].ID + if err := suite.db.PutBlock(ctx, >smodel.Block{ + ID: "01G202BCSXXJZ70BHB5KCAHH8C", + URI: "http://localhost:8080/some_block_uri_1", + AccountID: account1, + TargetAccountID: account2, + }); err != nil { + suite.FailNow(err.Error()) + } + + // make sure the block is in the db + block, err := suite.db.GetBlock(ctx, account1, account2) + suite.NoError(err) + suite.NotNil(block) + suite.Equal("01G202BCSXXJZ70BHB5KCAHH8C", block.ID) + + // delete the block by targetAccountID + err = suite.db.DeleteBlocksByTargetAccountID(ctx, account2) + suite.NoError(err) + + // block should be gone + block, err = suite.db.GetBlock(ctx, account1, account2) + suite.ErrorIs(err, db.ErrNoEntries) + suite.Nil(block) +} + func (suite *RelationshipTestSuite) TestGetRelationship() { requestingAccount := suite.testAccounts["local_account_1"] targetAccount := suite.testAccounts["admin_account"] |