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