github.com/go-generalize/volcago@v1.7.0/generator/emulator_test.go (about)

     1  //go:build emulator
     2  // +build emulator
     3  
     4  package generator
     5  
     6  import (
     7  	"os"
     8  	"os/exec"
     9  	"path/filepath"
    10  	"testing"
    11  )
    12  
    13  func execTest(t *testing.T) {
    14  	t.Helper()
    15  
    16  	b, err := exec.Command("go", "test", "./tests", "-v", "-tags", "internal").CombinedOutput()
    17  
    18  	if err != nil {
    19  		t.Fatalf("go test failed: %+v(%s)", err, string(b))
    20  	}
    21  }
    22  
    23  func run(t *testing.T, structName string, subCollection bool) {
    24  	t.Helper()
    25  
    26  	gen, err := NewGenerator(".")
    27  
    28  	if err != nil {
    29  		t.Fatalf("NewGenerator failed: %+v", err)
    30  	}
    31  
    32  	opt := NewDefaultGenerateOption()
    33  	opt.Subcollection = subCollection
    34  
    35  	if err := gen.Generate(structName, opt); err != nil {
    36  		t.Fatalf("Generate failed: %+v", err)
    37  	}
    38  }
    39  
    40  func TestGenerator(t *testing.T) {
    41  	root, err := os.Getwd()
    42  
    43  	if err != nil {
    44  		t.Fatalf("failed to getwd: %+v", err)
    45  	}
    46  
    47  	t.Run("AutomaticIDGeneration", func(tr *testing.T) {
    48  		if err := os.Chdir(filepath.Join(root, "testfiles/auto")); err != nil {
    49  			tr.Fatalf("chdir failed: %+v", err)
    50  		}
    51  
    52  		run(t, "Task", false)
    53  		run(t, "Lock", false)
    54  
    55  		execTest(tr)
    56  	})
    57  
    58  	t.Run("IDSpecified", func(tr *testing.T) {
    59  		if err := os.Chdir(filepath.Join(root, "testfiles/not_auto")); err != nil {
    60  			tr.Fatalf("chdir failed: %+v", err)
    61  		}
    62  
    63  		run(t, "Task", false)
    64  
    65  		run(t, "SubTask", true)
    66  
    67  		execTest(tr)
    68  	})
    69  }