github.com/wawandco/ox@v0.13.6-0.20230809142027-913b3d837f2a/plugins/tools/standard/initializer_test.go (about)

     1  package standard_test
     2  
     3  import (
     4  	"context"
     5  	"fmt"
     6  	"os"
     7  	"strings"
     8  	"testing"
     9  
    10  	"github.com/wawandco/ox/internal/runtime"
    11  	"github.com/wawandco/ox/plugins/base/new"
    12  	"github.com/wawandco/ox/plugins/tools/standard"
    13  )
    14  
    15  func TestInitializer(t *testing.T) {
    16  	ini := standard.Initializer{}
    17  
    18  	if ini.Name() != "standard/initializer" {
    19  		t.Errorf("Expected 'standard/initializer' got '%s'", ini.Name())
    20  	}
    21  
    22  	err := os.Chdir(t.TempDir())
    23  	if err != nil {
    24  		t.Fatalf("could not change to temp dir: %s", err)
    25  	}
    26  
    27  	err = ini.Initialize(context.Background(), new.Options{
    28  		Name:   "test",
    29  		Module: "test",
    30  	})
    31  
    32  	if err != nil {
    33  		t.Fatalf("error running initializer: %s", err)
    34  	}
    35  
    36  	if _, err := os.Stat("go.mod"); err != nil {
    37  		t.Fatalf("did not generate go.mod: %s", err)
    38  	}
    39  
    40  	content, err := os.ReadFile("go.mod")
    41  	if err != nil {
    42  		t.Fatalf("could not read go.mod: %s", err)
    43  	}
    44  
    45  	contents := []string{
    46  		"module test",
    47  		fmt.Sprintf("github.com/wawandco/ox %s", runtime.Version),
    48  	}
    49  
    50  	scnt := string(content)
    51  	for _, v := range contents {
    52  		if !strings.Contains(scnt, v) {
    53  			t.Fatalf("'%s' does not contain '%s'", scnt, v)
    54  		}
    55  	}
    56  }