blob: 9d4c24554389420afd37ade7d87d296b777bda7b [file] [log] [blame]
package regression
import (
"testing"
"time"
"github.com/stretchr/testify/assert"
"go.skia.org/infra/go/paramtools"
"go.skia.org/infra/go/testutils/unittest"
"go.skia.org/infra/perf/go/alerts"
)
func TestBuildConfigsAndParamSet(t *testing.T) {
unittest.SmallTest(t)
c := Continuous{
eventDriven: false,
provider: func() ([]*alerts.Config, error) {
// Only fill in ID since we are just testing if ch channel returns
// what we set here.
return []*alerts.Config{
{
ID: 1,
},
{
ID: 3,
},
}, nil
},
paramsProvider: func() paramtools.ParamSet {
return paramtools.ParamSet{
"config": []string{"8888", "565"},
}
},
pollingDelay: time.Nanosecond,
}
// Build channel.
ch := c.buildConfigAndParamsetChannel()
// Read value.
cnp := <-ch
// Confirm it conforms to expectations.
assert.Equal(t, c.paramsProvider(), cnp.paramset)
assert.Len(t, cnp.configs, 2)
ids := []int64{}
for _, cfg := range cnp.configs {
ids = append(ids, cfg.ID)
}
assert.Subset(t, []int64{1, 3}, ids)
// Confirm we continue to get items from the channel.
cnp = <-ch
assert.Equal(t, c.paramsProvider(), cnp.paramset)
}