The checker runs node-tools' Go level and its npm test; what the script said was NOT TESTED HERE is a skip naming the missing node or @novox/mesh-sdk.
39 lines
1.3 KiB
Go
39 lines
1.3 KiB
Go
package meshtest
|
|
|
|
import (
|
|
"os"
|
|
"os/exec"
|
|
"path/filepath"
|
|
"runtime"
|
|
"testing"
|
|
)
|
|
|
|
// bundlesWhy returns the reason bundles cannot be launched from a checkout rooted at root, or "" when they can: the
|
|
// TypeScript and Python bundles the runtime and the console launch need node and the package
|
|
// @novox/mesh-sdk, which comes from the package registry and is installed beside node-tools/package.json
|
|
// (novox/hq ADR 0529 clause 1: what merge-check.sh said "NOT TESTED HERE" about is a skip with its reason).
|
|
func bundlesWhy(root string, haveNode bool) string {
|
|
if !haveNode {
|
|
return "node is not installed"
|
|
}
|
|
if _, err := os.Stat(filepath.Join(root, "node_modules", "@novox", "mesh-sdk")); err != nil {
|
|
return "@novox/mesh-sdk is not installed in " + filepath.Join(root, "node_modules")
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// NeedBundles skips the test, saying why, where the bundles it launches cannot run here.
|
|
func NeedBundles(t *testing.T) {
|
|
t.Helper()
|
|
_, err := exec.LookPath("node")
|
|
if why := bundlesWhy(moduleRoot(), err == nil); why != "" {
|
|
t.Skip("NOT TESTED HERE: this test launches bundles, and " + why)
|
|
}
|
|
}
|
|
|
|
// moduleRoot is node-tools/, where package.json and node_modules are.
|
|
func moduleRoot() string {
|
|
_, here, _, _ := runtime.Caller(0)
|
|
return filepath.Join(filepath.Dir(here), "..", "..")
|
|
}
|