Connection via DSN

This commit is contained in:
vetcher 2021-08-30 15:09:09 +03:00 committed by go-jet
parent b0838999d6
commit 5b7c34e333
8 changed files with 220 additions and 54 deletions

View file

@ -1,14 +1,16 @@
package mysql
import (
"github.com/go-jet/jet/v2/generator/mysql"
"github.com/go-jet/jet/v2/internal/testutils"
"github.com/go-jet/jet/v2/tests/dbconfig"
"github.com/stretchr/testify/require"
"fmt"
"io/ioutil"
"os"
"os/exec"
"testing"
"github.com/go-jet/jet/v2/generator/mysql"
"github.com/go-jet/jet/v2/internal/testutils"
"github.com/go-jet/jet/v2/tests/dbconfig"
"github.com/stretchr/testify/require"
)
const genTestDirRoot = "./.gentestdata3"
@ -30,6 +32,21 @@ func TestGenerator(t *testing.T) {
assertGeneratedFiles(t)
}
for i := 0; i < 3; i++ {
dsn := fmt.Sprintf("%[1]s:%[2]s@tcp(%[3]s:%[4]d)/%[5]s",
dbconfig.MySQLUser,
dbconfig.MySQLPassword,
dbconfig.MySqLHost,
dbconfig.MySQLPort,
"dvds",
)
err := mysql.GenerateDSN(dsn, genTestDir3)
require.NoError(t, err)
assertGeneratedFiles(t)
}
err := os.RemoveAll(genTestDirRoot)
require.NoError(t, err)
}
@ -51,6 +68,25 @@ func TestCmdGenerator(t *testing.T) {
err = os.RemoveAll(genTestDirRoot)
require.NoError(t, err)
// check that generation via DSN works
dsn := fmt.Sprintf("mysql://%[1]s:%[2]s@tcp(%[3]s:%[4]d)/%[5]s",
dbconfig.MySQLUser,
dbconfig.MySQLPassword,
dbconfig.MySqLHost,
dbconfig.MySQLPort,
"dvds",
)
cmd = exec.Command("jet", "-dsn="+dsn, "-path="+genTestDir3)
cmd.Stderr = os.Stderr
cmd.Stdout = os.Stdout
err = cmd.Run()
require.NoError(t, err)
err = os.RemoveAll(genTestDirRoot)
require.NoError(t, err)
}
func assertGeneratedFiles(t *testing.T) {