How to use generateTestFiles method of generators Package

Best Ginkgo code snippet using generators.generateTestFiles

generate_command.go

Source:generate_command.go Github

copy

Full Screen

...41You can also pass a <filename> of the form "file.go" and generate will emit "file_test.go".`,42		DocLink: "generators",43		Flags:   flags,44		Command: func(args []string, _ []string) {45			generateTestFiles(conf, args)46		},47	}48}49type specData struct {50	Package           string51	Subject           string52	PackageImportPath string53	ImportPackage     bool54	GinkgoImport  string55	GomegaImport  string56	GinkgoPackage string57	GomegaPackage string58}59func generateTestFiles(conf GeneratorsConfig, args []string) {60	subjects := args61	if len(subjects) == 0 {62		subjects = []string{""}63	}64	for _, subject := range subjects {65		generateTestFileForSubject(subject, conf)66	}67}68func generateTestFileForSubject(subject string, conf GeneratorsConfig) {69	packageName, specFilePrefix, formattedName := getPackageAndFormattedName()70	if subject != "" {71		specFilePrefix = formatSubject(subject)72		formattedName = prettifyName(specFilePrefix)73	}...

Full Screen

Full Screen

generator.go

Source:generator.go Github

copy

Full Screen

1package usecase2import (3	"generator/entity"4	"generator/generators"5	"github.com/iancoleman/strcase"6	log "github.com/sirupsen/logrus"7	"os"8	"path/filepath"9	"strconv"10	"time"11)12func GenerateEntity(packageInfo entity.PackageStruct, serviceName string, listOfStruct []entity.Struct, replaceFile bool) {13	servicePath := filepath.FromSlash("./../" + serviceName)14	for _, l := range listOfStruct {15		if l.Type == entity.TypeMain {16			createFunction := false17			updateFunction := false18			// Определяем нужны ли функиции для создания и обновления даннх19			for _, tempStruct := range listOfStruct {20				if tempStruct.Name == "Create"+l.Name+"Request" {21					createFunction = true22				}23				if tempStruct.Name == "Update"+l.Name+"Request" {24					updateFunction = true25				}26			}27			code, err := generators.GenerateEntity(l, packageInfo, createFunction, updateFunction)28			if err != nil {29				log.Error(err)30				continue31			}32			saveFilePath := servicePath + "/entity/" + strcase.ToSnake(l.Name) + ".go"33			if replaceFile {34				err = FileSave(saveFilePath, code)35				if err == nil {36					log.WithField("File", saveFilePath).Println("Entity created")37				}38			}39		}40	}41}42func GenerateServiceFiles(packageInfo entity.PackageStruct, protoInterface entity.ProtoInterface, serviceName string, replaceFile bool) {43	var err error44	servicePath := filepath.FromSlash("./../" + serviceName)45	for _, pi := range protoInterface.Methods {46		// Generate file47		code := ""48		name, action := pi.NameInterface()49		saveFilePath := servicePath + "/service/" + strcase.ToSnake(name) + "_" + strcase.ToSnake(action) + ".go"50		// Если не удалось определить экшн то переходим к следующему методу51		if len(action) == 0 {52			continue53		}54		code, err = generators.GenerateServiceCode(pi, packageInfo, action)55		if err != nil {56			log.Error(err)57			continue58		}59		if replaceFile {60			err := FileSave(saveFilePath, code)61			if err == nil {62				log.WithField("File", saveFilePath).Println("Service file created ", strcase.ToSnake(name)+"_"+strcase.ToSnake(action)+".go")63			}64		}65	}66}67func GenerateTestFiles(packageInfo entity.PackageStruct, protoInterface entity.ProtoInterface, serviceName string, replaceFile bool) {68	var err error69	servicePath := filepath.FromSlash("./../" + serviceName)70	for _, pi := range protoInterface.Methods {71		// Generate file72		name, action := pi.NameInterface()73		// Если не удалось определить экшн то переходим к следующему методу74		if len(action) == 0 {75			continue76		}77		// Generate tests78		saveFileTestPath := servicePath + "/service/" + strcase.ToSnake(name) + "_" + strcase.ToSnake(action) + "_test.go"79		codeTest := ""80		switch action {81		case "Create":82			codeTest, err = generators.GenerateTestCreateCode(pi, packageInfo)83		case "Update":84			codeTest, err = generators.GenerateTestUpdateCode(pi, packageInfo)85		case "Delete":86			codeTest, err = generators.GenerateTestDeleteCode(pi, packageInfo)87		case "Get":88			codeTest, err = generators.GenerateTestGetCode(pi, packageInfo)89		case "List":90			codeTest, err = generators.GenerateTestListCode(pi, packageInfo)91		}92		if len(codeTest) != 0 {93			if err != nil {94				log.Error(err)95				continue96			}97			if replaceFile {98				err = FileSave(saveFileTestPath, codeTest)99				if err == nil {100					log.WithField("File", saveFileTestPath).Println("Test file created ", strcase.ToSnake(name)+"_"+strcase.ToSnake(action)+".go")101				}102			}103		}104	}105}106func GenerateMigrationFile(packageInfo entity.PackageStruct, serviceName string, listOfStruct []entity.Struct, replaceFile bool) {107	servicePath := filepath.FromSlash("./../" + serviceName)108	migration := ""109	for _, l := range listOfStruct {110		if l.Type == entity.TypeMain {111			code, err := generators.GenerateMigration(l, packageInfo)112			if err != nil {113				log.Error(err)114				continue115			}116			migration += code117		}118	}119	now := time.Now()120	saveFilePath := servicePath + "/migrations/" + strconv.Itoa(int(now.Unix())) + "_init.up.sql"121	if replaceFile {122		err := FileSave(saveFilePath, migration)123		if err == nil {124			log.WithField("File", saveFilePath).Println("Entity created")125		}126	}127}128func GenerateGeneralFilesIfNotExist(packageInfo entity.PackageStruct, serviceName string, listOfStruct []entity.Struct, replaceFile bool) {129	type GeneralFile struct {130		FileName string131		Replace  bool132	}133	servicePath := filepath.FromSlash("./../" + serviceName)134	listFiles := []GeneralFile{135		{".gitignore", false},136		{"db.go", false},137		{"envopt.json", false},138		{"envopt_test.json", false},139		{"go.mod", false},140		{"go.sum", false},141		{"main.go", false},142		{"server.go", false},143		{"service/service.go", false},144		{"service/service_test.go", true},145		//{"prometheus.go",false},146	}147	dbList := []string{}148	for _, l := range listOfStruct {149		if l.Type == entity.TypeMain {150			dbList = append(dbList, strcase.ToSnake(l.Name))151		}152	}153	for _, l := range listFiles {154		saveFilePath := servicePath + "/" + strcase.ToSnake(l.FileName)155		// Проверка на то что файл не существует156		if !l.Replace {157			if _, err := os.Stat(saveFilePath); err == nil {158				continue159			}160		}161		code, err := generators.GenerateGeneral(l.FileName, packageInfo, dbList)162		if err != nil {163			log.Error(err)164			continue165		}166		if replaceFile {167			err = FileSave(saveFilePath, code)168			if err == nil {169				log.WithField("File", saveFilePath).Println("Entity created")170			}171		}172	}173}174func GeneratePathProject(serviceName string) {175	servicePath := filepath.FromSlash("./../" + serviceName)176	pathList := []string{177		"entity",178		"migrations",179		"service",180	}181	for _, path := range pathList {182		p := servicePath + "/" + path183		if _, err := os.Stat(p); os.IsNotExist(err) {184			os.Mkdir(p, os.ModePerm)185		}186	}187}...

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful