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) }