aboutsummaryrefslogtreecommitdiff
path: root/internal/db/migrations/v20_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/db/migrations/v20_test.go')
-rw-r--r--internal/db/migrations/v20_test.go70
1 files changed, 70 insertions, 0 deletions
diff --git a/internal/db/migrations/v20_test.go b/internal/db/migrations/v20_test.go
new file mode 100644
index 00000000..b95360de
--- /dev/null
+++ b/internal/db/migrations/v20_test.go
@@ -0,0 +1,70 @@
+// Copyright 2022 The Gogs Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package migrations
+
+import (
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/require"
+
+ "gogs.io/gogs/internal/dbtest"
+)
+
+type accessTokenPreV20 struct {
+ ID int64
+ UserID int64 `gorm:"COLUMN:uid;INDEX"`
+ Name string
+ Sha1 string `gorm:"TYPE:VARCHAR(40);UNIQUE"`
+ CreatedUnix int64
+ UpdatedUnix int64
+}
+
+func (*accessTokenPreV20) TableName() string {
+ return "access_token"
+}
+
+type accessTokenV20 struct {
+ ID int64
+ UserID int64 `gorm:"column:uid;index"`
+ Name string
+ Sha1 string `gorm:"type:VARCHAR(40);unique"`
+ SHA256 string `gorm:"type:VARCHAR(64);unique;not null"`
+ CreatedUnix int64
+ UpdatedUnix int64
+}
+
+func (*accessTokenV20) TableName() string {
+ return "access_token"
+}
+
+func TestMigrateAccessTokenToSHA256(t *testing.T) {
+ if testing.Short() {
+ t.Skip()
+ }
+ t.Parallel()
+
+ db := dbtest.NewDB(t, "migrateAccessTokenToSHA256", new(accessTokenPreV20))
+ err := db.Create(
+ &accessTokenPreV20{
+ ID: 1,
+ UserID: 1,
+ Name: "test",
+ Sha1: "73da7bb9d2a475bbc2ab79da7d4e94940cb9f9d5",
+ CreatedUnix: db.NowFunc().Unix(),
+ UpdatedUnix: db.NowFunc().Unix(),
+ },
+ ).Error
+ require.NoError(t, err)
+
+ err = migrateAccessTokenToSHA256(db)
+ require.NoError(t, err)
+
+ var got accessTokenV20
+ err = db.Where("id = ?", 1).First(&got).Error
+ require.NoError(t, err)
+ assert.Equal(t, "73da7bb9d2a475bbc2ab79da7d4e94940cb9f9d5", got.Sha1)
+ assert.Equal(t, "ab144c7bd170691bb9bb995f1541c608e33a78b40174f30fc8a1616c0bc3a477", got.SHA256)
+}