56 lines
1.2 KiB
Go
56 lines
1.2 KiB
Go
|
package testkit
|
||
|
|
||
|
import "fmt"
|
||
|
|
||
|
type RoleName = string
|
||
|
|
||
|
var DefaultRoles = map[RoleName]func(*TestEnvironment) error{
|
||
|
"bootstrapper": func(t *TestEnvironment) error {
|
||
|
b, err := PrepareBootstrapper(t)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
return b.RunDefault()
|
||
|
},
|
||
|
"miner": func(t *TestEnvironment) error {
|
||
|
m, err := PrepareMiner(t)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
return m.RunDefault()
|
||
|
},
|
||
|
"client": func(t *TestEnvironment) error {
|
||
|
c, err := PrepareClient(t)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
return c.RunDefault()
|
||
|
},
|
||
|
"drand": func(t *TestEnvironment) error {
|
||
|
d, err := PrepareDrandInstance(t)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
return d.RunDefault()
|
||
|
},
|
||
|
"pubsub-tracer": func(t *TestEnvironment) error {
|
||
|
tr, err := PreparePubsubTracer(t)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
return tr.RunDefault()
|
||
|
},
|
||
|
}
|
||
|
|
||
|
// HandleDefaultRole handles a role by running its default behaviour.
|
||
|
//
|
||
|
// This function is suitable to forward to when a test case doesn't need to
|
||
|
// explicitly handle/alter a role.
|
||
|
func HandleDefaultRole(t *TestEnvironment) error {
|
||
|
f, ok := DefaultRoles[t.Role]
|
||
|
if !ok {
|
||
|
panic(fmt.Sprintf("unrecognized role: %s", t.Role))
|
||
|
}
|
||
|
return f(t)
|
||
|
}
|