test: fix failed test in model/file/deleteFile

pull/1217/head
HFO4 2 years ago
parent 18f5bffed1
commit 13d36c25d4

@ -1 +1 @@
Subproject commit da7a3a38bf924d53072a7c56d144b0e777ea0511
Subproject commit dd539f606a1dc7d48a2e745892abef6bbe99405c

@ -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("DELETE(.+)").
WillReturnResult(sqlmock.NewResult(2, 1))
mock.ExpectExec("UPDATE(.+)storage(.+)").WithArgs(uint64(2), sqlmock.AnyArg()).WillReturnResult(sqlmock.NewResult(1, 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())

Loading…
Cancel
Save