Files
ent/entc/integration/plugin/plugin_test.go
facebook-github-bot 267e3c15bd Initial commit
fbshipit-source-id: c79a38536e3c128dce1b2948615b72ec9779ed22
2019-06-16 04:37:51 -07:00

39 lines
866 B
Go

package plugin
import (
"bytes"
"fmt"
"os"
"os/exec"
"testing"
"github.com/stretchr/testify/require"
)
func TestPlugin(t *testing.T) {
plg := "printer.so"
// build entc plugin.
cmd := exec.Command("go", "build", "-o", plg, "-buildmode", "plugin", "./testdata")
_, err := run(cmd)
require.NoError(t, err)
defer os.Remove(plg)
// execute entc generate and expect the plugin to be executed.
cmd = exec.Command("go", "run", "../../cmd/entc/entc.go", "generate", "--plugin", plg, "./ent/schema")
out, err := run(cmd)
require.NoError(t, err)
require.Equal(t, "Boring\n", out, "printer plugin should print node names")
}
func run(cmd *exec.Cmd) (string, error) {
out := bytes.NewBuffer(nil)
cmd.Stderr = out
cmd.Stdout = out
if err := cmd.Run(); err != nil {
return "", fmt.Errorf("integration/plugin: %s", out)
}
return out.String(), nil
}