mirror of
https://github.com/Eggbertx/gochan.git
synced 2025-08-02 15:06:23 -07:00
Add tests for announcement migration
This commit is contained in:
parent
5c4e200631
commit
2f39e9d7cc
3 changed files with 59 additions and 21 deletions
|
@ -17,33 +17,14 @@ func (m *Pre2021Migrator) migrateAnnouncementsInPlace() error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
var staffIDs []int
|
var err error
|
||||||
rows, err := m.db.QuerySQL("SELECT id FROM DBPREFIXstaff")
|
|
||||||
if err != nil {
|
|
||||||
errEv.Err(err).Caller().Msg("Failed to get staff IDs")
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
defer rows.Close()
|
|
||||||
for rows.Next() {
|
|
||||||
var id int
|
|
||||||
if err = rows.Scan(&id); err != nil {
|
|
||||||
errEv.Err(err).Caller().Msg("Failed to scan staff ID")
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
staffIDs = append(staffIDs, id)
|
|
||||||
}
|
|
||||||
if err = rows.Close(); err != nil {
|
|
||||||
errEv.Err(err).Caller().Msg("Failed to close staff ID rows")
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
m.migrationUser, err = m.getMigrationUser(errEv)
|
m.migrationUser, err = m.getMigrationUser(errEv)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
errEv.Err(err).Caller().Msg("Failed to get migration user")
|
errEv.Err(err).Caller().Msg("Failed to get migration user")
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
rows, err = m.db.QuerySQL("SELECT poster FROM DBPREFIXannouncements")
|
rows, err := m.db.QuerySQL("SELECT poster FROM DBPREFIXannouncements")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
errEv.Err(err).Caller().Msg("Failed to get announcements")
|
errEv.Err(err).Caller().Msg("Failed to get announcements")
|
||||||
return err
|
return err
|
||||||
|
@ -111,6 +92,7 @@ func (m *Pre2021Migrator) migrateAnnouncementsToNewDB() error {
|
||||||
// user doesn't exist, use migration user
|
// user doesn't exist, use migration user
|
||||||
common.LogWarning().Str("staff", staff).Msg("Staff username not found in database")
|
common.LogWarning().Str("staff", staff).Msg("Staff username not found in database")
|
||||||
message += "\n(originally by " + staff + ")"
|
message += "\n(originally by " + staff + ")"
|
||||||
|
staffID = m.migrationUser.ID
|
||||||
} else if err != nil {
|
} else if err != nil {
|
||||||
errEv.Err(err).Caller().Str("staff", staff).Msg("Failed to get staff ID")
|
errEv.Err(err).Caller().Str("staff", staff).Msg("Failed to get staff ID")
|
||||||
return err
|
return err
|
||||||
|
|
56
cmd/gochan-migration/internal/pre2021/announcements_test.go
Normal file
56
cmd/gochan-migration/internal/pre2021/announcements_test.go
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
package pre2021
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/gochan-org/gochan/pkg/gcsql"
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestMigrateAnnouncementsToNewDB(t *testing.T) {
|
||||||
|
outDir := t.TempDir()
|
||||||
|
migrator := setupMigrationTest(t, outDir, false)
|
||||||
|
if !assert.False(t, migrator.IsMigratingInPlace(), "This test should not be migrating in place") {
|
||||||
|
t.FailNow()
|
||||||
|
}
|
||||||
|
|
||||||
|
if !assert.NoError(t, migrator.MigrateBoards()) {
|
||||||
|
t.FailNow()
|
||||||
|
}
|
||||||
|
|
||||||
|
if !assert.NoError(t, migrator.MigrateStaff()) {
|
||||||
|
t.FailNow()
|
||||||
|
}
|
||||||
|
|
||||||
|
if !assert.NoError(t, migrator.MigrateAnnouncements()) {
|
||||||
|
t.FailNow()
|
||||||
|
}
|
||||||
|
|
||||||
|
var numAnnouncements int
|
||||||
|
assert.NoError(t, gcsql.QueryRowSQL("SELECT COUNT(*) FROM DBPREFIXannouncements WHERE staff_id > 0", nil, []any{&numAnnouncements}))
|
||||||
|
assert.Equal(t, 2, numAnnouncements, "Expected to have two announcement")
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestMigrateAnnouncementsInPlace(t *testing.T) {
|
||||||
|
outDir := t.TempDir()
|
||||||
|
migrator := setupMigrationTest(t, outDir, true)
|
||||||
|
if !assert.True(t, migrator.IsMigratingInPlace(), "This test should be migrating in place") {
|
||||||
|
t.FailNow()
|
||||||
|
}
|
||||||
|
|
||||||
|
if !assert.NoError(t, migrator.MigrateBoards()) {
|
||||||
|
t.FailNow()
|
||||||
|
}
|
||||||
|
|
||||||
|
if !assert.NoError(t, migrator.MigrateStaff()) {
|
||||||
|
t.FailNow()
|
||||||
|
}
|
||||||
|
|
||||||
|
if !assert.NoError(t, migrator.MigrateAnnouncements()) {
|
||||||
|
t.FailNow()
|
||||||
|
}
|
||||||
|
|
||||||
|
var numAnnouncements int
|
||||||
|
assert.NoError(t, gcsql.QueryRowSQL("SELECT COUNT(*) FROM DBPREFIXannouncements WHERE staff_id > 0", nil, []any{&numAnnouncements}))
|
||||||
|
assert.Equal(t, 2, numAnnouncements, "Expected to have two announcement")
|
||||||
|
}
|
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue