forked from forgejo/forgejo
[DB] Add test for TestEnsureUpToDate (squash)
- Add a test for the behavior of `EnsureUpToDate`, to ensure it will
error when needed and succeed when the forgejo version is up to date.
- Add forgejo_migrations package to GO_TEST_PACKAGES, to avoid running
it with `test-unit` and instead test it with `test-*-migration`.
(cherry picked from commit b172a50691
)
This commit is contained in:
parent
6d45c37d84
commit
d8af308820
3 changed files with 58 additions and 5 deletions
39
models/forgejo_migrations/migrate_test.go
Normal file
39
models/forgejo_migrations/migrate_test.go
Normal file
|
@ -0,0 +1,39 @@
|
|||
// Copyright 2023 The Forgejo Authors. All rights reserved.
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
package forgejo_migrations //nolint:revive
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"code.gitea.io/gitea/models/migrations/base"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
// TestEnsureUpToDate tests the behavior of EnsureUpToDate.
|
||||
func TestEnsureUpToDate(t *testing.T) {
|
||||
x, deferable := base.PrepareTestEnv(t, 0, new(ForgejoVersion))
|
||||
defer deferable()
|
||||
if x == nil || t.Failed() {
|
||||
return
|
||||
}
|
||||
|
||||
// Ensure error if there's no row in Forgejo Version.
|
||||
err := EnsureUpToDate(x)
|
||||
assert.Error(t, err)
|
||||
|
||||
// Insert 'good' Forgejo Version row.
|
||||
_, err = x.InsertOne(&ForgejoVersion{ID: 1, Version: ExpectedVersion()})
|
||||
assert.NoError(t, err)
|
||||
|
||||
err = EnsureUpToDate(x)
|
||||
assert.NoError(t, err)
|
||||
|
||||
// Modify forgejo version to have a lower version.
|
||||
_, err = x.Exec("UPDATE `forgejo_version` SET version = ? WHERE id = 1", ExpectedVersion()-1)
|
||||
assert.NoError(t, err)
|
||||
|
||||
err = EnsureUpToDate(x)
|
||||
assert.Error(t, err)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue