mirror of
https://github.com/Team254/cheesy-arena-lite.git
synced 2026-03-09 13:46:44 -04:00
Convert ScheduleBlock, SponsorSlide, and UserSession models to use Bolt DB and clean up remaining SQLite artifacts.
This commit is contained in:
@@ -84,10 +84,10 @@ func TestRankingsApi(t *testing.T) {
|
||||
func TestSponsorSlidesApi(t *testing.T) {
|
||||
web := setupTestWeb(t)
|
||||
|
||||
slide1 := model.SponsorSlide{1, "subtitle", "line1", "line2", "image", 2, 0}
|
||||
slide2 := model.SponsorSlide{2, "Chezy Sponsaur", "Teh", "Chezy Pofs", "ejface.jpg", 54, 1}
|
||||
web.arena.Database.CreateSponsorSlide(&slide1)
|
||||
web.arena.Database.CreateSponsorSlide(&slide2)
|
||||
slide1 := model.SponsorSlide{0, "subtitle", "line1", "line2", "image", 2, 1}
|
||||
slide2 := model.SponsorSlide{0, "Chezy Sponsaur", "Teh", "Chezy Pofs", "ejface.jpg", 54, 2}
|
||||
assert.Nil(t, web.arena.Database.CreateSponsorSlide(&slide1))
|
||||
assert.Nil(t, web.arena.Database.CreateSponsorSlide(&slide2))
|
||||
|
||||
recorder := web.getHttpResponse("/api/sponsor_slides")
|
||||
assert.Equal(t, 200, recorder.Code)
|
||||
|
||||
@@ -5,6 +5,9 @@ package web
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"github.com/Team254/cheesy-arena-lite/game"
|
||||
"github.com/Team254/cheesy-arena-lite/model"
|
||||
"github.com/Team254/cheesy-arena-lite/tournament"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"io"
|
||||
"mime/multipart"
|
||||
@@ -44,63 +47,61 @@ func TestSetupSettingsInvalidValues(t *testing.T) {
|
||||
assert.Contains(t, recorder.Body.String(), "must be between 2 and 16")
|
||||
}
|
||||
|
||||
// TODO(pat): Re-enable this test once fully migrated over to Bolt.
|
||||
//func TestSetupSettingsClearDb(t *testing.T) {
|
||||
// web := setupTestWeb(t)
|
||||
//
|
||||
// web.arena.Database.CreateTeam(new(model.Team))
|
||||
// web.arena.Database.CreateMatch(&model.Match{Type: "qualification"})
|
||||
// web.arena.Database.CreateMatchResult(new(model.MatchResult))
|
||||
// web.arena.Database.CreateRanking(new(game.Ranking))
|
||||
// web.arena.Database.CreateAllianceTeam(new(model.AllianceTeam))
|
||||
// recorder := web.postHttpResponse("/setup/db/clear", "")
|
||||
// assert.Equal(t, 303, recorder.Code)
|
||||
//
|
||||
// teams, _ := web.arena.Database.GetAllTeams()
|
||||
// assert.NotEmpty(t, teams)
|
||||
// matches, _ := web.arena.Database.GetMatchesByType("qualification")
|
||||
// assert.Empty(t, matches)
|
||||
// rankings, _ := web.arena.Database.GetAllRankings()
|
||||
// assert.Empty(t, rankings)
|
||||
// tournament.CalculateRankings(web.arena.Database, false)
|
||||
// assert.Empty(t, rankings)
|
||||
// alliances, _ := web.arena.Database.GetAllAlliances()
|
||||
// assert.Empty(t, alliances)
|
||||
//}
|
||||
func TestSetupSettingsClearDb(t *testing.T) {
|
||||
web := setupTestWeb(t)
|
||||
|
||||
// TODO(pat): Re-enable this test once fully migrated over to Bolt.
|
||||
//func TestSetupSettingsBackupRestoreDb(t *testing.T) {
|
||||
// web := setupTestWeb(t)
|
||||
//
|
||||
// // Modify a parameter so that we know when the database has been restored.
|
||||
// web.arena.EventSettings.Name = "Chezy Champs"
|
||||
// assert.Nil(t, web.arena.Database.UpdateEventSettings(web.arena.EventSettings))
|
||||
//
|
||||
// // Back up the database.
|
||||
// recorder := web.getHttpResponse("/setup/db/save")
|
||||
// assert.Equal(t, 200, recorder.Code)
|
||||
// assert.Equal(t, "application/octet-stream", recorder.HeaderMap["Content-Type"][0])
|
||||
// backupBody := recorder.Body
|
||||
//
|
||||
// // Wipe the database to reset the defaults.
|
||||
// web = setupTestWeb(t)
|
||||
// assert.NotEqual(t, "Chezy Champs", web.arena.EventSettings.Name)
|
||||
//
|
||||
// // Check restoring with a missing file.
|
||||
// recorder = web.postHttpResponse("/setup/db/restore", "")
|
||||
// assert.Contains(t, recorder.Body.String(), "No database backup file was specified")
|
||||
// assert.NotEqual(t, "Chezy Champs", web.arena.EventSettings.Name)
|
||||
//
|
||||
// // Check restoring with a corrupt file.
|
||||
// recorder = web.postFileHttpResponse("/setup/db/restore", "databaseFile",
|
||||
// bytes.NewBufferString("invalid"))
|
||||
// assert.Contains(t, recorder.Body.String(), "Could not read uploaded database backup file")
|
||||
// assert.NotEqual(t, "Chezy Champs", web.arena.EventSettings.Name)
|
||||
//
|
||||
// // Check restoring with the backup retrieved before.
|
||||
// recorder = web.postFileHttpResponse("/setup/db/restore", "databaseFile", backupBody)
|
||||
// assert.Equal(t, "Chezy Champs", web.arena.EventSettings.Name)
|
||||
//}
|
||||
assert.Nil(t, web.arena.Database.CreateTeam(&model.Team{Id: 254}))
|
||||
assert.Nil(t, web.arena.Database.CreateMatch(&model.Match{Type: "qualification"}))
|
||||
assert.Nil(t, web.arena.Database.CreateMatchResult(new(model.MatchResult)))
|
||||
assert.Nil(t, web.arena.Database.CreateRanking(&game.Ranking{TeamId: 254}))
|
||||
assert.Nil(t, web.arena.Database.CreateAllianceTeam(new(model.AllianceTeam)))
|
||||
recorder := web.postHttpResponse("/setup/db/clear", "")
|
||||
assert.Equal(t, 303, recorder.Code)
|
||||
|
||||
teams, _ := web.arena.Database.GetAllTeams()
|
||||
assert.NotEmpty(t, teams)
|
||||
matches, _ := web.arena.Database.GetMatchesByType("qualification")
|
||||
assert.Empty(t, matches)
|
||||
rankings, _ := web.arena.Database.GetAllRankings()
|
||||
assert.Empty(t, rankings)
|
||||
tournament.CalculateRankings(web.arena.Database, false)
|
||||
assert.Empty(t, rankings)
|
||||
alliances, _ := web.arena.Database.GetAllAlliances()
|
||||
assert.Empty(t, alliances)
|
||||
}
|
||||
|
||||
func TestSetupSettingsBackupRestoreDb(t *testing.T) {
|
||||
web := setupTestWeb(t)
|
||||
|
||||
// Modify a parameter so that we know when the database has been restored.
|
||||
web.arena.EventSettings.Name = "Chezy Champs"
|
||||
assert.Nil(t, web.arena.Database.UpdateEventSettings(web.arena.EventSettings))
|
||||
|
||||
// Back up the database.
|
||||
recorder := web.getHttpResponse("/setup/db/save")
|
||||
assert.Equal(t, 200, recorder.Code)
|
||||
assert.Equal(t, "application/octet-stream", recorder.HeaderMap["Content-Type"][0])
|
||||
backupBody := recorder.Body
|
||||
|
||||
// Wipe the database to reset the defaults.
|
||||
web = setupTestWeb(t)
|
||||
assert.NotEqual(t, "Chezy Champs", web.arena.EventSettings.Name)
|
||||
|
||||
// Check restoring with a missing file.
|
||||
recorder = web.postHttpResponse("/setup/db/restore", "")
|
||||
assert.Contains(t, recorder.Body.String(), "No database backup file was specified")
|
||||
assert.NotEqual(t, "Chezy Champs", web.arena.EventSettings.Name)
|
||||
|
||||
// Check restoring with a corrupt file.
|
||||
recorder = web.postFileHttpResponse("/setup/db/restore", "databaseFile",
|
||||
bytes.NewBufferString("invalid"))
|
||||
assert.Contains(t, recorder.Body.String(), "Could not read uploaded database backup file")
|
||||
assert.NotEqual(t, "Chezy Champs", web.arena.EventSettings.Name)
|
||||
|
||||
// Check restoring with the backup retrieved before.
|
||||
recorder = web.postFileHttpResponse("/setup/db/restore", "databaseFile", backupBody)
|
||||
assert.Equal(t, "Chezy Champs", web.arena.EventSettings.Name)
|
||||
}
|
||||
|
||||
func (web *Web) postFileHttpResponse(path string, paramName string, file *bytes.Buffer) *httptest.ResponseRecorder {
|
||||
body := new(bytes.Buffer)
|
||||
|
||||
@@ -56,7 +56,7 @@ func (web *Web) sponsorSlidesPostHandler(w http.ResponseWriter, r *http.Request)
|
||||
}
|
||||
switch r.PostFormValue("action") {
|
||||
case "delete":
|
||||
err := web.arena.Database.DeleteSponsorSlide(sponsorSlide)
|
||||
err := web.arena.Database.DeleteSponsorSlide(sponsorSlide.Id)
|
||||
if err != nil {
|
||||
handleWebErr(w, err)
|
||||
return
|
||||
@@ -76,7 +76,7 @@ func (web *Web) sponsorSlidesPostHandler(w http.ResponseWriter, r *http.Request)
|
||||
sponsorSlide.Line2 = r.PostFormValue("line2")
|
||||
sponsorSlide.Image = r.PostFormValue("image")
|
||||
sponsorSlide.DisplayTimeSec = displayTimeSec
|
||||
err = web.arena.Database.SaveSponsorSlide(sponsorSlide)
|
||||
err = web.arena.Database.UpdateSponsorSlide(sponsorSlide)
|
||||
}
|
||||
if err != nil {
|
||||
handleWebErr(w, err)
|
||||
@@ -133,11 +133,11 @@ func (web *Web) reorderSponsorSlide(id int, moveUp bool) error {
|
||||
// Swap their display orders and save.
|
||||
sponsorSlide.DisplayOrder, adjacentSponsorSlide.DisplayOrder =
|
||||
adjacentSponsorSlide.DisplayOrder, sponsorSlide.DisplayOrder
|
||||
err = web.arena.Database.SaveSponsorSlide(sponsorSlide)
|
||||
err = web.arena.Database.UpdateSponsorSlide(sponsorSlide)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = web.arena.Database.SaveSponsorSlide(adjacentSponsorSlide)
|
||||
err = web.arena.Database.UpdateSponsorSlide(adjacentSponsorSlide)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user