summaryrefslogtreecommitdiffstats
path: root/models/consistency_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'models/consistency_test.go')
-rw-r--r--models/consistency_test.go44
1 files changed, 44 insertions, 0 deletions
diff --git a/models/consistency_test.go b/models/consistency_test.go
index 1593500361..fb946b2fb7 100644
--- a/models/consistency_test.go
+++ b/models/consistency_test.go
@@ -11,6 +11,7 @@ import (
issues_model "code.gitea.io/gitea/models/issues"
repo_model "code.gitea.io/gitea/models/repo"
"code.gitea.io/gitea/models/unittest"
+ "code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/timeutil"
"github.com/stretchr/testify/assert"
@@ -103,3 +104,46 @@ func TestUpdateMilestoneCounters(t *testing.T) {
assert.NoError(t, issues_model.UpdateMilestoneCounters(db.DefaultContext, issue.MilestoneID))
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{})
+}