godog/pkg/formatters/ast/ast_test.go

76 строки
1,4 КиБ
Go

package ast
import (
"os"
"path/filepath"
"git.golang1.ru/softonik/godog"
"git.golang1.ru/softonik/godog/pkg/lib"
. "git.golang1.ru/softonik/godog_and_gomega"
. "github.com/onsi/gomega"
. "github.com/onsi/gomega/format"
)
type testData struct {
tempdir string
params Параметры
}
var (
t *testData
)
func resetTestData() {
t = &testData{}
}
func beforeSuite() {
CharactersAroundMismatchToInclude = 50
}
func afterSuite() {
}
func beforeScenario() {
resetTestData()
createTempDir()
}
func afterScenario() {
rmTempDir()
}
func createTempDir() {
dir := filepath.Clean(os.TempDir())
tempDir, err := os.MkdirTemp(dir, "test-")
Ok(err)
t.tempdir = tempDir
err = os.Chdir(t.tempdir)
Ok(err)
}
func rmTempDir() {
err := os.RemoveAll(t.tempdir)
Ok(err)
}
// -----------------------
func файл(fname string, content *godog.DocString) {
err := lib.WriteFile(fname, content.Content)
Ok(err)
}
func параметр(имя, тип string) {
t.params = append(t.params, Параметр{имя, тип})
}
func добавляетсяФункция(func_name string) {
err := ДобавитьТестовуюФункцию(func_name, t.params)
Ok(err)
}
func файлДолженСодержать(fname string, content *godog.DocString) {
cont, err := lib.ReadFile(fname)
Ok(err)
Ω(cont).To(Be(content.Content))
pkg, err := получитьИмяGoПакетаФайла(fname)
Ok(err)
Ω(pkg).To(Be("mypkg"))
}