mirror of
https://github.com/halejohn/Cloudreve.git
synced 2026-01-26 09:34:57 +08:00
test: fix failed test in model/file/deleteFile
This commit is contained in:
2
assets
2
assets
Submodule assets updated: da7a3a38bf...dd539f606a
@@ -225,17 +225,17 @@ func DeleteFiles(files []*File, uid uint) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
result := tx.Unscoped().Where("size = ?", file.Size).Delete(file)
|
result := tx.Unscoped().Where("size = ?", file.Size).Delete(file)
|
||||||
|
if result.Error != nil {
|
||||||
|
tx.Rollback()
|
||||||
|
return result.Error
|
||||||
|
}
|
||||||
|
|
||||||
if result.RowsAffected == 0 {
|
if result.RowsAffected == 0 {
|
||||||
tx.Rollback()
|
tx.Rollback()
|
||||||
return errors.New("file size is dirty")
|
return errors.New("file size is dirty")
|
||||||
}
|
}
|
||||||
|
|
||||||
size += file.Size
|
size += file.Size
|
||||||
|
|
||||||
if result.Error != nil {
|
|
||||||
tx.Rollback()
|
|
||||||
return result.Error
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := user.ChangeStorage(tx, "-", size); err != nil {
|
if err := user.ChangeStorage(tx, "-", size); err != nil {
|
||||||
|
|||||||
@@ -339,7 +339,7 @@ func TestDeleteFiles(t *testing.T) {
|
|||||||
// uid 不一致
|
// uid 不一致
|
||||||
{
|
{
|
||||||
err := DeleteFiles([]*File{{}}, 1)
|
err := DeleteFiles([]*File{{}}, 1)
|
||||||
a.Contains("User id not consistent", err.Error())
|
a.Contains("user id not consistent", err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除失败
|
// 删除失败
|
||||||
@@ -365,14 +365,26 @@ func TestDeleteFiles(t *testing.T) {
|
|||||||
a.Error(err)
|
a.Error(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 成功,其中一个文件已经不存在
|
// 文件脏读
|
||||||
{
|
{
|
||||||
mock.ExpectBegin()
|
mock.ExpectBegin()
|
||||||
mock.ExpectExec("DELETE(.+)").
|
mock.ExpectExec("DELETE(.+)").
|
||||||
WillReturnResult(sqlmock.NewResult(1, 0))
|
WillReturnResult(sqlmock.NewResult(1, 0))
|
||||||
|
mock.ExpectRollback()
|
||||||
|
err := DeleteFiles([]*File{{Size: 1}, {Size: 2}}, 0)
|
||||||
|
a.NoError(mock.ExpectationsWereMet())
|
||||||
|
a.Error(err)
|
||||||
|
a.Contains("file size is dirty", err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
|
// 成功
|
||||||
|
{
|
||||||
|
mock.ExpectBegin()
|
||||||
mock.ExpectExec("DELETE(.+)").
|
mock.ExpectExec("DELETE(.+)").
|
||||||
WillReturnResult(sqlmock.NewResult(2, 1))
|
WillReturnResult(sqlmock.NewResult(2, 1))
|
||||||
mock.ExpectExec("UPDATE(.+)storage(.+)").WithArgs(uint64(2), sqlmock.AnyArg()).WillReturnResult(sqlmock.NewResult(1, 1))
|
mock.ExpectExec("DELETE(.+)").
|
||||||
|
WillReturnResult(sqlmock.NewResult(2, 1))
|
||||||
|
mock.ExpectExec("UPDATE(.+)storage(.+)").WithArgs(uint64(3), sqlmock.AnyArg()).WillReturnResult(sqlmock.NewResult(1, 1))
|
||||||
mock.ExpectCommit()
|
mock.ExpectCommit()
|
||||||
err := DeleteFiles([]*File{{Size: 1}, {Size: 2}}, 0)
|
err := DeleteFiles([]*File{{Size: 1}, {Size: 2}}, 0)
|
||||||
a.NoError(mock.ExpectationsWereMet())
|
a.NoError(mock.ExpectationsWereMet())
|
||||||
|
|||||||
Reference in New Issue
Block a user