// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved. //go:build script // +build script package js_test import ( "github.com/TeaOSLab/EdgeNode/internal/js" "github.com/iwind/TeaGo/types" "testing" "time" ) func TestJSNetHTTPResponseLibrary(t *testing.T) { isolate, err := js.NewIsolateWithContexts(1) if err != nil { t.Fatal(err) } defer isolate.Dispose() ctx, err := isolate.GetContext() if err != nil { t.Fatal(err) } var before = time.Now() defer func() { t.Log(time.Since(before).Seconds()*1000, "ms") }() js.SharedJSConsoleLogLibrary.JSSetTesting(t) var req = &FakeResponse{} var objId = ctx.AddGoObject(req) defer isolate.PutContext(ctx) v, err := ctx.Run(` let resp = new gojs.net.http.Response() resp.setGoObject(`+types.String(objId)+`) // user codes resp.setHeader("Server", "goedge/1.0") resp.setHeader("Hello", "World") resp.setHeader("Hello-Deleted", "World") resp.setHeader("Content-Length", [1024]) resp.setHeader("Set-Cookie", ["a=1", "b=2"]) resp.deleteHeader("Hello-Deleted") console.log("header", resp.header) resp.send(200, "Hello, From Javascript") `, "req.js") if err != nil { t.Fatal(ctx.WrapJSErr(err)) } _ = v }