Documentation ¶
Overview ¶
Package modulestest contains helpers to test js modules
Index ¶
- type Runtime
- func (r *Runtime) MoveToVUContext(state *lib.State)
- func (r *Runtime) RunOnEventLoop(code string) (value goja.Value, err error)
- func (r *Runtime) SetupModuleSystem(goModules map[string]any, loader modules.FileLoader, c *compiler.Compiler) error
- func (r *Runtime) SetupModuleSystemFromAnother(another *Runtime) error
- type VU
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Runtime ¶ added in v0.40.0
type Runtime struct { VU *VU EventLoop *eventloop.EventLoop CancelContext func() BuiltinMetrics *metrics.BuiltinMetrics // contains filtered or unexported fields }
Runtime is a helper struct that contains what is needed to run a (simple) module test
func NewRuntime ¶ added in v0.40.0
NewRuntime will create a new test runtime and will cancel the context on test/benchmark end
func (*Runtime) MoveToVUContext ¶ added in v0.40.0
MoveToVUContext will set the state and nil the InitEnv just as a real VU
func (*Runtime) RunOnEventLoop ¶ added in v0.46.0
RunOnEventLoop will run the given code on the event loop.
It is meant as a helper to test code that is expected to be run on the event loop, such as code that returns a promise.
A typical usage is to facilitate writing tests for asynchrounous code:
func TestSomething(t *testing.T) { runtime := modulestest.NewRuntime(t) err := runtime.RunOnEventLoop(` doSomethingAsync().then(() => { // do some assertions }); `) require.NoError(t, err) }
func (*Runtime) SetupModuleSystem ¶ added in v0.45.0
func (r *Runtime) SetupModuleSystem(goModules map[string]any, loader modules.FileLoader, c *compiler.Compiler) error
SetupModuleSystem sets up the modules system for the Runtime. See modules.NewModuleResolver for the meaning of the parameters.
func (*Runtime) SetupModuleSystemFromAnother ¶ added in v0.45.0
SetupModuleSystemFromAnother sets up the modules system for the Runtime by using the resolver of another runtime.
type VU ¶ added in v0.35.0
type VU struct { CtxField context.Context InitEnvField *common.InitEnvironment EventsField common.Events StateField *lib.State RuntimeField *goja.Runtime RegisterCallbackField func() func(f func() error) }
VU is a modules.VU implementation meant to be used within tests
func (*VU) Context ¶ added in v0.35.0
Context returns internally set field to conform to modules.VU interface
func (*VU) Events ¶ added in v0.46.0
Events returns internally set field to conform to modules.VU interface
func (*VU) InitEnv ¶ added in v0.35.0
func (m *VU) InitEnv() *common.InitEnvironment
InitEnv returns internally set field to conform to modules.VU interface
func (*VU) RegisterCallback ¶ added in v0.37.0
RegisterCallback is not really implemented