MCPcopy Create free account
hub / github.com/buke/quickjs-go / TestValueHasInstanceDataFailClosedOnMissingOwnerContext

Function TestValueHasInstanceDataFailClosedOnMissingOwnerContext

value_test.go:1879–1905  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1877}
1878
1879func TestValueHasInstanceDataFailClosedOnMissingOwnerContext(t *testing.T) {
1880 rt := NewRuntime()
1881 defer rt.Close()
1882 ctx := rt.NewContext()
1883 defer ctx.Close()
1884
1885 constructor, _ := NewClassBuilder("MissingOwnerCtxClass").
1886 Constructor(func(ctx *Context, instance *Value, args []*Value) (interface{}, error) {
1887 return map[string]int{"value": 1}, nil
1888 }).
1889 Build(ctx)
1890 require.False(t, constructor.IsException())
1891 ctx.Globals().Set("MissingOwnerCtxClass", constructor)
1892
1893 instance := ctx.Eval(`new MissingOwnerCtxClass()`)
1894 defer instance.Free()
1895 require.False(t, instance.IsException())
1896 require.True(t, instance.HasInstanceData())
1897
1898 rt.contextsByID.Delete(ctx.contextID)
1899 require.False(t, instance.HasInstanceData())
1900 _, err := instance.GetGoObject()
1901 require.Error(t, err)
1902 require.Contains(t, err.Error(), "instance data not found in handle store")
1903
1904 rt.contextsByID.Store(ctx.contextID, ctx)
1905}
1906
1907// TestValueCallConstructorEdgeCases tests edge cases and error conditions in CallConstructor
1908// MODIFIED FOR SCHEME C: Removed all NewInstance tests, enhanced CallConstructor coverage

Callers

nothing calls this directly

Calls 15

CloseMethod · 0.95
NewContextMethod · 0.95
CloseMethod · 0.95
GlobalsMethod · 0.95
EvalMethod · 0.95
NewRuntimeFunction · 0.85
NewClassBuilderFunction · 0.85
ConstructorMethod · 0.80
IsExceptionMethod · 0.80
SetMethod · 0.80
HasInstanceDataMethod · 0.80
GetGoObjectMethod · 0.80

Tested by

no test coverage detected