blob: 5413f66c56e492139cfbcbdbec1aea172d9d14f6 [file] [log] [blame]
package alerts
import (
"testing"
"time"
"github.com/stretchr/testify/assert"
"go.skia.org/infra/go/ds"
"go.skia.org/infra/go/ds/testutil"
"go.skia.org/infra/go/testutils/unittest"
)
func TestDS(t *testing.T) {
unittest.ManualTest(t)
cleanup := testutil.InitDatastore(t, ds.ALERT)
defer cleanup()
// Test saving one alert.
a := NewStore()
cfg := NewConfig()
cfg.Query = "source_type=svg"
cfg.DisplayName = "bar"
err := a.Save(cfg)
assert.NoError(t, err)
// Confirm it appears in the list.
cfgs, err := a.List(false)
assert.NoError(t, err)
assert.Len(t, cfgs, 1)
// Delete it.
err = a.Delete(int(cfgs[0].ID))
assert.NoError(t, err)
// Confirm it is still there if we list deleted configs.
cfgs, err = a.List(true)
assert.NoError(t, err)
assert.Len(t, cfgs, 1)
// Confirm it is not there if we don't list deleted configs.
cfgs, err = a.List(false)
assert.NoError(t, err)
assert.Len(t, cfgs, 0)
// Store a second config.
cfg = NewConfig()
cfg.Query = "source_type=skp"
cfg.DisplayName = "foo"
err = a.Save(cfg)
assert.NoError(t, err)
time.Sleep(1)
// Confirm they are both listed when including deleted configs, and they are
// ordered by DisplayName.
cfgs, err = a.List(true)
assert.NoError(t, err)
assert.Len(t, cfgs, 2)
assert.Equal(t, "bar", cfgs[0].DisplayName)
assert.Equal(t, "foo", cfgs[1].DisplayName)
}