ai_old/goja_nodejs/process/module_test.go
Star 767d87ac3e update throw exception
add util.load and util.save
2024-09-24 13:34:32 +08:00

69 lines
1.3 KiB
Go

package process
import (
"fmt"
"os"
"strings"
"testing"
"apigo.cc/ai/ai/goja"
"apigo.cc/ai/ai/goja_nodejs/require"
)
func TestProcessEnvStructure(t *testing.T) {
vm := goja.New()
new(require.Registry).Enable(vm)
Enable(vm)
if c := vm.Get("process"); c == nil {
t.Fatal("process not found")
}
if c, err := vm.RunString("process.env"); c == nil || err != nil {
t.Fatal("error accessing process.env")
}
}
func TestProcessEnvValuesArtificial(t *testing.T) {
os.Setenv("GOJA_IS_AWESOME", "true")
defer os.Unsetenv("GOJA_IS_AWESOME")
vm := goja.New()
new(require.Registry).Enable(vm)
Enable(vm)
jsRes, err := vm.RunString("process.env['GOJA_IS_AWESOME']")
if err != nil {
t.Fatalf("Error executing: %s", err)
}
if jsRes.String() != "true" {
t.Fatalf("Error executing: got %s but expected %s", jsRes, "true")
}
}
func TestProcessEnvValuesBrackets(t *testing.T) {
vm := goja.New()
new(require.Registry).Enable(vm)
Enable(vm)
for _, e := range os.Environ() {
envKeyValue := strings.SplitN(e, "=", 2)
jsExpr := fmt.Sprintf("process.env['%s']", envKeyValue[0])
jsRes, err := vm.RunString(jsExpr)
if err != nil {
t.Fatalf("Error executing %s: %s", jsExpr, err)
}
if jsRes.String() != envKeyValue[1] {
t.Fatalf("Error executing %s: got %s but expected %s", jsExpr, jsRes, envKeyValue[1])
}
}
}