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:
@@ -225,17 +225,17 @@ func DeleteFiles(files []*File, uid uint) error {
|
||||
}
|
||||
|
||||
result := tx.Unscoped().Where("size = ?", file.Size).Delete(file)
|
||||
if result.Error != nil {
|
||||
tx.Rollback()
|
||||
return result.Error
|
||||
}
|
||||
|
||||
if result.RowsAffected == 0 {
|
||||
tx.Rollback()
|
||||
return errors.New("file size is dirty")
|
||||
}
|
||||
|
||||
size += file.Size
|
||||
|
||||
if result.Error != nil {
|
||||
tx.Rollback()
|
||||
return result.Error
|
||||
}
|
||||
}
|
||||
|
||||
if err := user.ChangeStorage(tx, "-", size); err != nil {
|
||||
|
||||
@@ -339,7 +339,7 @@ func TestDeleteFiles(t *testing.T) {
|
||||
// uid 不一致
|
||||
{
|
||||
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)
|
||||
}
|
||||
|
||||
// 成功,其中一个文件已经不存在
|
||||
// 文件脏读
|
||||
{
|
||||
mock.ExpectBegin()
|
||||
mock.ExpectExec("DELETE(.+)").
|
||||
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(.+)").
|
||||
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()
|
||||
err := DeleteFiles([]*File{{Size: 1}, {Size: 2}}, 0)
|
||||
a.NoError(mock.ExpectationsWereMet())
|
||||
|
||||
Reference in New Issue
Block a user