|
|
@ -11,6 +11,7 @@ import ( |
|
|
|
issues_model "code.gitea.io/gitea/models/issues" |
|
|
|
issues_model "code.gitea.io/gitea/models/issues" |
|
|
|
repo_model "code.gitea.io/gitea/models/repo" |
|
|
|
repo_model "code.gitea.io/gitea/models/repo" |
|
|
|
"code.gitea.io/gitea/models/unittest" |
|
|
|
"code.gitea.io/gitea/models/unittest" |
|
|
|
|
|
|
|
"code.gitea.io/gitea/modules/setting" |
|
|
|
"code.gitea.io/gitea/modules/timeutil" |
|
|
|
"code.gitea.io/gitea/modules/timeutil" |
|
|
|
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert" |
|
|
|
"github.com/stretchr/testify/assert" |
|
|
@ -103,3 +104,46 @@ func TestUpdateMilestoneCounters(t *testing.T) { |
|
|
|
assert.NoError(t, issues_model.UpdateMilestoneCounters(db.DefaultContext, issue.MilestoneID)) |
|
|
|
assert.NoError(t, issues_model.UpdateMilestoneCounters(db.DefaultContext, issue.MilestoneID)) |
|
|
|
unittest.CheckConsistencyFor(t, &issues_model.Milestone{}) |
|
|
|
unittest.CheckConsistencyFor(t, &issues_model.Milestone{}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func TestConsistencyUpdateAction(t *testing.T) { |
|
|
|
|
|
|
|
if !setting.Database.UseSQLite3 { |
|
|
|
|
|
|
|
t.Skip("Test is only for SQLite database.") |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
assert.NoError(t, unittest.PrepareTestDatabase()) |
|
|
|
|
|
|
|
id := 8 |
|
|
|
|
|
|
|
unittest.AssertExistsAndLoadBean(t, &Action{ |
|
|
|
|
|
|
|
ID: int64(id), |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
_, err := db.GetEngine(db.DefaultContext).Exec(`UPDATE action SET created_unix = "" WHERE id = ?`, id) |
|
|
|
|
|
|
|
assert.NoError(t, err) |
|
|
|
|
|
|
|
actions := make([]*Action, 0, 1) |
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// XORM returns an error when created_unix is a string
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
err = db.GetEngine(db.DefaultContext).Where("id = ?", id).Find(&actions) |
|
|
|
|
|
|
|
if assert.Error(t, err) { |
|
|
|
|
|
|
|
assert.Contains(t, err.Error(), "type string to a int64: invalid syntax") |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// Get rid of incorrectly set created_unix
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
count, err := CountActionCreatedUnixString() |
|
|
|
|
|
|
|
assert.NoError(t, err) |
|
|
|
|
|
|
|
assert.EqualValues(t, 1, count) |
|
|
|
|
|
|
|
count, err = FixActionCreatedUnixString() |
|
|
|
|
|
|
|
assert.NoError(t, err) |
|
|
|
|
|
|
|
assert.EqualValues(t, 1, count) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
count, err = CountActionCreatedUnixString() |
|
|
|
|
|
|
|
assert.NoError(t, err) |
|
|
|
|
|
|
|
assert.EqualValues(t, 0, count) |
|
|
|
|
|
|
|
count, err = FixActionCreatedUnixString() |
|
|
|
|
|
|
|
assert.NoError(t, err) |
|
|
|
|
|
|
|
assert.EqualValues(t, 0, count) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// XORM must be happy now
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
assert.NoError(t, db.GetEngine(db.DefaultContext).Where("id = ?", id).Find(&actions)) |
|
|
|
|
|
|
|
unittest.CheckConsistencyFor(t, &Action{}) |
|
|
|
|
|
|
|
} |
|
|
|