69 lines
1.3 KiB
Go
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])
|
||
|
}
|
||
|
}
|
||
|
}
|