mirror of
https://github.com/mentos1386/zdravko.git
synced 2024-11-26 01:07:52 +00:00
60 lines
1.3 KiB
Go
60 lines
1.3 KiB
Go
package zdravko
|
|
|
|
import (
|
|
"go.k6.io/k6/js/modules"
|
|
)
|
|
|
|
func init() {
|
|
modules.Register("k6/x/zdravko", New())
|
|
}
|
|
|
|
type (
|
|
// RootModule is the global module instance that will create module
|
|
// instances for each VU.
|
|
RootModule struct{}
|
|
|
|
// ModuleInstance represents an instance of the JS module.
|
|
ModuleInstance struct {
|
|
// vu provides methods for accessing internal k6 objects for a VU
|
|
vu modules.VU
|
|
// comparator is the exported type
|
|
zdravko *Zdravko
|
|
}
|
|
)
|
|
|
|
// Ensure the interfaces are implemented correctly.
|
|
var (
|
|
_ modules.Instance = &ModuleInstance{}
|
|
_ modules.Module = &RootModule{}
|
|
)
|
|
|
|
// New returns a pointer to a new RootModule instance.
|
|
func New() *RootModule {
|
|
return &RootModule{}
|
|
}
|
|
|
|
// NewModuleInstance implements the modules.Module interface returning a new instance for each VU.
|
|
func (*RootModule) NewModuleInstance(vu modules.VU) modules.Instance {
|
|
return &ModuleInstance{
|
|
vu: vu,
|
|
zdravko: &Zdravko{vu: vu},
|
|
}
|
|
}
|
|
|
|
type Target struct {
|
|
Name string
|
|
Group string
|
|
Metadata map[string]interface{}
|
|
}
|
|
|
|
type Zdravko struct {
|
|
vu modules.VU
|
|
Targets []Target
|
|
}
|
|
|
|
// Exports implements the modules.Instance interface and returns the exported types for the JS module.
|
|
func (mi *ModuleInstance) Exports() modules.Exports {
|
|
return modules.Exports{
|
|
Default: mi.zdravko,
|
|
}
|
|
}
|